14:41:50.761 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 14:41:50.761 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 14:41:50.761 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 14:41:50.763 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 14:41:50.763 [debug] QUERY OK source="oban_jobs" db=0.3ms queue=11.9ms idle=0.0ms UPDATE "oban_jobs" AS o0 SET "state" = ? WHERE (o0."state" = 'executing') ["retryable"] 14:41:50.763 [info] Reset 0 executing jobs 14:41:50.763 [info] Creating blank file: /config/extras/cookies.txt 14:41:50.764 [info] Creating blank file: /config/extras/yt-dlp-configs/base-config.txt 14:41:50.765 [info] Creating blank file and making it executable: /config/extras/user-scripts/lifecycle 14:41:50.766 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version 14:41:50.768 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 14:41:53.277 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version exited: 0 with: 2025.09.26 14:41:53.277 [info] [command_wrapper]: /usr/local/bin/apprise called with: --version 14:41:53.748 [debug] Tzdata polling for update. 14:41:53.958 [info] tzdata release in place is from a file last modified Thu, 16 Jan 2025 17:10:51 GMT. Release file on server was last modified Thu, 23 Apr 2026 11:51:51 GMT. 14:41:53.959 [debug] Tzdata downloading new data from https://data.iana.org/time-zones/tzdata-latest.tar.gz 14:41:54.065 [debug] Tzdata data downloaded. Release version 2026b. 14:41:55.403 [info] Tzdata has updated the release from 2025a to 2026b 14:41:55.403 [debug] Tzdata deleting ETS table for version 2025a 14:41:55.408 [debug] Tzdata deleting ETS table file for version 2025a 14:41:55.477 [debug] [command_wrapper]: /usr/local/bin/apprise called with: --version exited: 0 with: Apprise v1.9.4 Copyright (C) 2025 Chris Caron This code is licensed under the BSD 2-Clause License. 14:41:55.478 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=726.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:41:55.521 [debug] QUERY OK source="settings" db=42.6ms queue=0.1ms idle=727.6ms UPDATE "settings" SET "yt_dlp_version" = ? WHERE "id" = ? ["2025.09.26", 1] 14:41:55.522 [debug] QUERY OK source="settings" db=0.6ms idle=770.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:41:55.522 [debug] QUERY OK source="settings" db=0.1ms idle=771.6ms UPDATE "settings" SET "apprise_version" = ? WHERE "id" = ? ["v1.9.4", 1] 14:41:55.522 [info] User scripts lifecyle file either not present or is empty. Skipping. 14:41:55.526 [info] {"message":"notifier only receiving messages from its own node, functionality may be degraded","source":"oban","event":"notifier:switch","connectivity_status":"solitary"} 14:41:55.535 [info] Running PinchflatWeb.Endpoint with cowboy 2.13.0 at 0.0.0.0:8945 (http) 14:41:55.558 [info] Access PinchflatWeb.Endpoint at http://localhost:8945 14:41:55.565 [info] {"args":{},"id":1,"meta":{},"system_time":1776948115565646955,"max_attempts":20,"queue":"local_data","worker":"Pinchflat.YtDlp.UpdateWorker","source":"oban","event":"job:start","attempt":1,"tags":["local_data"]} 14:41:55.565 [info] Updating yt-dlp 14:41:55.566 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --update 14:42:00.527 [info] {"source":"oban","duration":303,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:42:02.740 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --update exited: 0 with: Current version: stable@2025.09.26 from yt-dlp/yt-dlp Latest version: stable@2026.03.17 from yt-dlp/yt-dlp Current Build Hash: d2f07382138f4bd882254996502636f5a67a8c5ee5ab8a25807e2784a4878642 Updating to stable@2026.03.17 from yt-dlp/yt-dlp ... Updated yt-dlp to stable@2026.03.17 from yt-dlp/yt-dlp 14:42:02.741 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version 14:42:04.124 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version exited: 0 with: 2026.03.17 14:42:04.124 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=1373.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 14:42:04.125 [debug] QUERY OK source="settings" db=0.1ms idle=1374.3ms UPDATE "settings" SET "yt_dlp_version" = ? WHERE "id" = ? ["2026.03.17", 1] 14:42:04.125 [info] {"args":{},"id":1,"meta":{},"state":"success","max_attempts":20,"queue":"local_data","worker":"Pinchflat.YtDlp.UpdateWorker","source":"oban","duration":8559547,"event":"job:stop","queue_time":564426,"attempt":1,"tags":["local_data"]} 14:42:25.529 [info] {"source":"oban","duration":1278,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:42:55.530 [info] {"source":"oban","duration":1049,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:43:00.528 [info] {"source":"oban","duration":262,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:43:25.532 [info] {"source":"oban","duration":1063,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:43:55.534 [info] {"source":"oban","duration":1050,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:44:00.530 [info] {"source":"oban","duration":335,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:44:25.536 [info] {"source":"oban","duration":866,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:44:55.538 [info] {"source":"oban","duration":816,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:45:00.532 [info] {"source":"oban","duration":381,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:45:25.540 [info] {"source":"oban","duration":836,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:45:55.542 [info] {"source":"oban","duration":1094,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:46:00.533 [info] {"source":"oban","duration":371,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:46:25.544 [info] {"source":"oban","duration":1023,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:46:55.546 [info] {"source":"oban","duration":882,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:47:00.534 [info] {"source":"oban","duration":427,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:47:25.548 [info] {"source":"oban","duration":996,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:47:55.550 [info] {"source":"oban","duration":879,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:48:00.536 [info] {"source":"oban","duration":323,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:48:25.552 [info] {"source":"oban","duration":1041,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:48:55.554 [info] {"source":"oban","duration":1016,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 14:49:00.536 [info] {"source":"oban","duration":251,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 14:49:24.946 [notice] SIGTERM received - shutting down 16:26:44.360 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 16:26:44.360 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 16:26:44.361 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 16:26:44.361 [debug] QUERY OK source="oban_jobs" db=0.3ms queue=8.8ms idle=0.0ms UPDATE "oban_jobs" AS o0 SET "state" = ? WHERE (o0."state" = 'executing') ["retryable"] 16:26:44.361 [info] Reset 0 executing jobs 16:26:44.362 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version 16:26:44.364 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 16:26:44.364 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 16:26:46.041 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version exited: 0 with: 2026.03.17 16:26:46.041 [info] [command_wrapper]: /usr/local/bin/apprise called with: --version 16:26:48.172 [debug] [command_wrapper]: /usr/local/bin/apprise called with: --version exited: 0 with: Apprise v1.9.4 Copyright (C) 2025 Chris Caron This code is licensed under the BSD 2-Clause License. 16:26:48.188 [debug] QUERY OK source="settings" db=15.1ms queue=0.1ms idle=1821.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:26:48.188 [debug] QUERY OK source="settings" db=0.2ms idle=1836.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:26:48.189 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:26:48.192 [info] {"message":"notifier only receiving messages from its own node, functionality may be degraded","source":"oban","event":"notifier:switch","connectivity_status":"solitary"} 16:26:48.201 [info] Running PinchflatWeb.Endpoint with cowboy 2.13.0 at 0.0.0.0:8945 (http) 16:26:48.205 [info] Access PinchflatWeb.Endpoint at http://localhost:8945 16:26:48.235 [info] GET / 16:26:48.235 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 16:26:48.236 [debug] QUERY OK source="settings" db=0.2ms idle=1883.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:26:48.236 [debug] QUERY OK source="settings" db=0.2ms idle=1884.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:26:48.237 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=48.3ms SELECT 1 FROM "media_profiles" AS m0 LIMIT 1 [] 16:26:48.237 [debug] QUERY OK source="sources" db=0.0ms idle=48.3ms SELECT 1 FROM "sources" AS s0 LIMIT 1 [] 16:26:48.238 [debug] QUERY OK source="settings" db=0.2ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:26:48.238 [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 [] 16:26:48.241 [info] Sent 200 in 6ms 16:26:48.337 [info] {"args":{},"id":2,"meta":{},"system_time":1776954408337745584,"max_attempts":20,"queue":"local_data","worker":"Pinchflat.YtDlp.UpdateWorker","source":"oban","event":"job:start","attempt":1,"tags":["local_data"]} 16:26:48.338 [info] Updating yt-dlp 16:26:48.338 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --update 16:26:51.326 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --update exited: 0 with: Latest version: stable@2026.03.17 from yt-dlp/yt-dlp yt-dlp is up to date (stable@2026.03.17 from yt-dlp/yt-dlp) 16:26:51.327 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version 16:26:52.676 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version exited: 0 with: 2026.03.17 16:26:52.676 [debug] QUERY OK source="settings" db=0.2ms idle=1123.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:26:52.677 [info] {"args":{},"id":2,"meta":{},"state":"success","max_attempts":20,"queue":"local_data","worker":"Pinchflat.YtDlp.UpdateWorker","source":"oban","duration":4339257,"event":"job:stop","queue_time":336182,"attempt":1,"tags":["local_data"]} 16:27:00.194 [info] {"source":"oban","duration":369,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:27:18.194 [info] {"source":"oban","duration":1080,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:27:48.197 [info] {"source":"oban","duration":1260,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:28:00.195 [info] {"source":"oban","duration":336,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:28:18.199 [info] {"source":"oban","duration":974,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:28:48.201 [info] {"source":"oban","duration":953,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:29:00.196 [info] {"source":"oban","duration":339,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:29:18.202 [info] {"source":"oban","duration":949,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:29:48.205 [info] {"source":"oban","duration":846,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:30:00.197 [info] {"source":"oban","duration":330,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:30:01.189 [info] GET / 16:30:01.189 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 16:30:01.190 [debug] QUERY OK source="settings" db=0.4ms idle=1636.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:30:01.190 [debug] QUERY OK source="settings" db=0.2ms idle=1637.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:30:01.191 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1616.2ms SELECT 1 FROM "media_profiles" AS m0 LIMIT 1 [] 16:30:01.191 [debug] QUERY OK source="sources" db=0.0ms idle=993.9ms SELECT 1 FROM "sources" AS s0 LIMIT 1 [] 16:30:01.191 [debug] QUERY OK source="settings" db=0.2ms idle=615.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:30:01.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 [] 16:30:01.193 [info] Sent 200 in 4ms 16:30:01.694 [info] GET /favicon.png 16:30:01.695 [debug] QUERY OK source="settings" db=0.2ms idle=504.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:30:01.696 [debug] QUERY OK source="settings" db=0.1ms idle=504.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:30:01.696 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 16:30:01.696 [error] #PID<0.2627.0> running PinchflatWeb.Endpoint (connection #PID<0.2626.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /favicon.png ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /favicon (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2626.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/favicon.png", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 45858}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "connection" => "Keep-Alive", "host" => "pinch.msdlx.de", "user-agent" => "okhttp/5.3.0", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.2627.0>, params: %{}, path_info: ["favicon"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"connection", "Keep-Alive"}, {"host", "pinch.msdlx.de"}, {"user-agent", "okhttp/5.3.0"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/favicon.png", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkCy6gEkQ6uyFIAAAOD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2626.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/favicon.png", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 45858}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "connection" => "Keep-Alive", "host" => "pinch.msdlx.de", "user-agent" => "okhttp/5.3.0", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /favicon (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2626.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/favicon.png", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 45858}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "connection" => "Keep-Alive", "host" => "pinch.msdlx.de", "user-agent" => "okhttp/5.3.0", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.2627.0>, params: %{}, path_info: ["favicon"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"connection", "Keep-Alive"}, {"host", "pinch.msdlx.de"}, {"user-agent", "okhttp/5.3.0"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/favicon.png", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkCy6gEkQ6uyFIAAAOD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_ (truncated) 16:30:18.207 [info] {"source":"oban","duration":943,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:30:41.976 [info] GET / 16:30:41.976 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 16:30:41.978 [debug] QUERY OK source="settings" db=1.7ms idle=1321.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:30:41.979 [debug] QUERY OK source="settings" db=0.2ms idle=426.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:30:41.979 [debug] QUERY OK source="media_profiles" db=0.1ms idle=426.5ms SELECT 1 FROM "media_profiles" AS m0 LIMIT 1 [] 16:30:41.979 [debug] QUERY OK source="sources" db=0.0ms idle=426.7ms SELECT 1 FROM "sources" AS s0 LIMIT 1 [] 16:30:41.980 [debug] QUERY OK source="settings" db=0.2ms idle=322.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:30:41.980 [debug] QUERY OK source="settings" db=0.2ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:30:41.982 [info] Sent 200 in 5ms 16:30:48.208 [info] {"source":"oban","duration":988,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:31:00.198 [info] {"source":"oban","duration":269,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:31:18.211 [info] {"source":"oban","duration":955,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:31:48.212 [info] {"source":"oban","duration":937,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:32:00.199 [info] {"source":"oban","duration":282,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:32:18.214 [info] {"source":"oban","duration":872,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:32:48.217 [info] {"source":"oban","duration":912,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:33:00.200 [info] {"source":"oban","duration":275,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:33:18.219 [info] {"source":"oban","duration":935,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:33:48.220 [info] {"source":"oban","duration":952,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:34:00.201 [info] {"source":"oban","duration":347,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:34:18.223 [info] {"source":"oban","duration":939,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:34:24.717 [info] GET / 16:34:24.717 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 16:34:24.718 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=1164.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:34:24.719 [debug] QUERY OK source="settings" db=0.8ms idle=1165.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:34:24.720 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1166.8ms SELECT 1 FROM "media_profiles" AS m0 LIMIT 1 [] 16:34:24.720 [debug] QUERY OK source="sources" db=0.1ms idle=1167.2ms SELECT 1 FROM "sources" AS s0 LIMIT 1 [] 16:34:24.720 [debug] QUERY OK source="settings" db=0.1ms idle=618.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:34:24.721 [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 [] 16:34:24.722 [info] Sent 200 in 5ms 16:34:24.907 [info] GET / 16:34:24.907 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 16:34:24.908 [debug] QUERY OK source="settings" db=0.2ms idle=188.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:34:24.908 [debug] QUERY OK source="settings" db=0.2ms idle=188.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:34:24.908 [debug] QUERY OK source="media_profiles" db=0.1ms idle=188.3ms SELECT 1 FROM "media_profiles" AS m0 LIMIT 1 [] 16:34:24.909 [debug] QUERY OK source="sources" db=0.0ms idle=188.1ms SELECT 1 FROM "sources" AS s0 LIMIT 1 [] 16:34:24.909 [debug] QUERY OK source="settings" db=0.1ms idle=188.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:34:24.909 [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 [] 16:34:24.911 [info] Sent 200 in 3ms 16:34:26.954 [info] GET /media_profiles/new 16:34:26.954 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.new/2 Parameters: %{} Pipelines: [:browser] 16:34:26.955 [debug] QUERY OK source="settings" db=0.6ms idle=849.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:34:26.956 [debug] QUERY OK source="settings" db=0.1ms idle=403.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:34:26.957 [debug] QUERY OK source="settings" db=0.8ms idle=403.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:34:26.958 [debug] QUERY OK source="settings" db=0.1ms idle=404.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:34:26.960 [info] Sent 200 in 5ms 16:34:48.225 [info] {"source":"oban","duration":1351,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:35:00.202 [info] {"source":"oban","duration":326,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:35:18.227 [info] {"source":"oban","duration":921,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:35:18.251 [info] GET / 16:35:18.251 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 16:35:18.252 [debug] QUERY OK source="settings" db=0.2ms idle=1698.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:35:18.252 [debug] QUERY OK source="settings" db=0.1ms idle=988.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:35:18.253 [debug] QUERY OK source="media_profiles" db=0.1ms idle=699.6ms SELECT 1 FROM "media_profiles" AS m0 LIMIT 1 [] 16:35:18.253 [debug] QUERY OK source="sources" db=0.0ms idle=699.8ms SELECT 1 FROM "sources" AS s0 LIMIT 1 [] 16:35:18.253 [debug] QUERY OK source="settings" db=0.1ms idle=26.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:35:18.254 [debug] QUERY OK source="settings" db=0.5ms 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 [] 16:35:18.255 [info] Sent 200 in 4ms 16:35:18.760 [info] GET /favicon.png 16:35:18.762 [debug] QUERY OK source="settings" db=0.9ms idle=508.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:35:18.762 [debug] QUERY OK source="settings" db=0.1ms idle=509.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:35:18.762 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 16:35:18.763 [error] #PID<0.2704.0> running PinchflatWeb.Endpoint (connection #PID<0.2703.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /favicon.png ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /favicon (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2703.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/favicon.png", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 46330}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "connection" => "Keep-Alive", "host" => "pinch.msdlx.de", "user-agent" => "okhttp/5.3.0", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.2704.0>, params: %{}, path_info: ["favicon"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"connection", "Keep-Alive"}, {"host", "pinch.msdlx.de"}, {"user-agent", "okhttp/5.3.0"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/favicon.png", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkDFXqgzmOBotwAAAIB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2703.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/favicon.png", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 46330}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "connection" => "Keep-Alive", "host" => "pinch.msdlx.de", "user-agent" => "okhttp/5.3.0", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /favicon (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2703.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/favicon.png", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 46330}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept-encoding" => "gzip", "connection" => "Keep-Alive", "host" => "pinch.msdlx.de", "user-agent" => "okhttp/5.3.0", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.2704.0>, params: %{}, path_info: ["favicon"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept-encoding", "gzip"}, {"connection", "Keep-Alive"}, {"host", "pinch.msdlx.de"}, {"user-agent", "okhttp/5.3.0"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/favicon.png", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkDFXqgzmOBotwAAAIB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_ (truncated) 16:35:46.044 [info] POST /media_profiles 16:35:46.045 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.create/2 Parameters: %{"_csrf_token" => "FFw-EiIgZlEANn8cRDUVZzF5NwUoRTsBP8zpjbS5CCFStYlSw5FVjsrk", "media_profile" => %{"audio_track" => "", "download_auto_subs" => "false", "download_metadata" => "true", "download_nfo" => "true", "download_source_images" => "true", "download_subs" => "false", "download_thumbnail" => "true", "embed_metadata" => "true", "embed_subs" => "false", "embed_thumbnail" => "true", "livestream_behaviour" => "include", "media_container" => "", "name" => "", "output_path_template" => "/{{ source_custom_name }}/{{ upload_yyyy_mm_dd }} {{ title }}/{{ title }} [{{ id }}].{{ ext }}", "preferred_resolution" => "720p", "redownload_delay_days" => "", "shorts_behaviour" => "include", "sponsorblock_behaviour" => "disabled", "sub_langs" => "en"}, "media_profile_preset" => "media_center"} Pipelines: [:browser] 16:35:46.046 [debug] QUERY OK source="settings" db=0.2ms idle=1492.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:35:46.046 [debug] QUERY OK source="settings" db=0.2ms idle=1493.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:35:46.047 [debug] QUERY OK source="settings" db=0.8ms idle=727.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:35:46.048 [debug] QUERY OK source="settings" db=0.4ms idle=495.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:35:46.050 [info] Sent 200 in 5ms 16:35:48.229 [info] {"source":"oban","duration":940,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:36:00.203 [info] {"source":"oban","duration":358,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:36:03.501 [info] GET / 16:36:03.502 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 16:36:03.503 [debug] QUERY OK source="settings" db=0.9ms idle=1949.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:36:03.503 [debug] QUERY OK source="settings" db=0.1ms idle=1950.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:36:03.503 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1950.7ms SELECT 1 FROM "media_profiles" AS m0 LIMIT 1 [] 16:36:03.504 [debug] QUERY OK source="sources" db=0.0ms idle=1150.2ms SELECT 1 FROM "sources" AS s0 LIMIT 1 [] 16:36:03.504 [debug] QUERY OK source="settings" db=0.1ms 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 [] 16:36:03.504 [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 [] 16:36:03.506 [info] Sent 200 in 4ms 16:36:08.828 [info] POST /media_profiles 16:36:08.828 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.create/2 Parameters: %{"_csrf_token" => "CFU1OiULeyAzEEMJRw1AQTU0IWYbRgEEL1qXmINDpezFwa9usxP5YpHn", "media_profile" => %{"audio_track" => "", "download_auto_subs" => "false", "download_metadata" => "true", "download_nfo" => "true", "download_source_images" => "true", "download_subs" => "false", "download_thumbnail" => "true", "embed_metadata" => "true", "embed_subs" => "false", "embed_thumbnail" => "true", "livestream_behaviour" => "include", "media_container" => "", "name" => "YTDL", "output_path_template" => "/{{ source_custom_name }}/{{ upload_yyyy_mm_dd }} {{ title }}/{{ title }} [{{ id }}].{{ ext }}", "preferred_resolution" => "720p", "redownload_delay_days" => "", "shorts_behaviour" => "include", "sponsorblock_behaviour" => "disabled", "sub_langs" => "en"}, "media_profile_preset" => "media_center"} Pipelines: [:browser] 16:36:08.830 [debug] QUERY OK source="media_profiles" db=0.5ms idle=464.2ms INSERT INTO "media_profiles" ("name","preferred_resolution","download_nfo","download_thumbnail","download_source_images","download_auto_subs","download_metadata","download_subs","embed_metadata","embed_subs","embed_thumbnail","livestream_behaviour","output_path_template","shorts_behaviour","sponsorblock_behaviour","sponsorblock_categories","sub_langs","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18,?19) RETURNING "id" ["YTDL", :"720p", true, true, true, false, true, false, true, false, true, :include, "/{{ source_custom_name }}/{{ upload_yyyy_mm_dd }} {{ title }}/{{ title }} [{{ id }}].{{ ext }}", :include, :disabled, [], "en", ~U[2026-04-23 14:36:08Z], ~U[2026-04-23 14:36:08Z]] 16:36:08.830 [debug] QUERY OK source="settings" db=0.1ms idle=276.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:36:08.830 [info] Sent 302 in 2ms 16:36:08.880 [info] GET / 16:36:08.880 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{"onboarding" => "1"} Pipelines: [:browser] 16:36:08.882 [debug] QUERY OK source="settings" db=1.7ms idle=327.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:36:08.882 [debug] QUERY OK source="media_profiles" db=0.1ms idle=329.1ms SELECT 1 FROM "media_profiles" AS m0 LIMIT 1 [] 16:36:08.883 [debug] QUERY OK source="sources" db=0.1ms idle=329.4ms SELECT 1 FROM "sources" AS s0 LIMIT 1 [] 16:36:08.883 [debug] QUERY OK source="settings" db=0.3ms idle=53.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:36:08.884 [debug] QUERY OK source="settings" db=0.3ms idle=53.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:36:08.885 [info] Sent 200 in 5ms 16:36:11.844 [info] GET /sources/new 16:36:11.844 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 16:36:11.846 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.9ms idle=1292.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" [] 16:36:11.847 [debug] QUERY OK source="settings" db=0.3ms idle=1293.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:36:11.847 [debug] QUERY OK source="settings" db=0.3ms idle=1294.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:36:11.848 [debug] QUERY OK source="settings" db=0.1ms idle=1294.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:36:11.849 [debug] QUERY OK source="settings" db=0.6ms idle=477.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:36:11.853 [info] Sent 200 in 8ms 16:36:18.230 [info] {"source":"oban","duration":938,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:36:48.233 [info] {"source":"oban","duration":970,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:37:00.204 [info] {"source":"oban","duration":293,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:37:05.043 [info] POST /sources 16:37:05.044 [debug] Processing with PinchflatWeb.Sources.SourceController.create/2 Parameters: %{"_csrf_token" => "c1dpLCI0eQcmMXYWWQMbfzcfQSArRxok73-NjvLceDOYiobKqS0siqSN", "download_cutoff_date_preset" => "", "source" => %{"cookie_behaviour" => "disabled", "custom_name" => "", "download_cutoff_date" => "", "download_media" => "true", "fast_index" => "false", "index_frequency_minutes" => "1440", "max_duration_seconds" => "", "media_profile_id" => "1", "min_duration_seconds" => "", "original_url" => "https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA", "output_path_template_override" => "", "retention_period_days" => "", "title_filter_regex" => ""}} Pipelines: [:browser] 16:37:05.044 [debug] Running yt-dlp command for action: get_source_details 16:37:05.046 [debug] QUERY OK source="settings" db=0.2ms idle=1493.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:05.047 [debug] QUERY OK source="settings" db=0.1ms idle=1493.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:05.047 [debug] QUERY OK source="settings" db=0.1ms idle=1493.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:05.047 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/9d/27/9d27b4dead3d5e699937b5b3962cc9a6066d546d0b099fd0e6da11a654e3c615.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:37:13.102 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/9d/27/9d27b4dead3d5e699937b5b3962cc9a6066d546d0b099fd0e6da11a654e3c615.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:37:13.104 [debug] QUERY OK source="sources" db=0.8ms idle=1550.5ms INSERT INTO "sources" ("enabled","uuid","download_media","custom_name","collection_id","collection_type","original_url","fast_index","media_profile_id","collection_name","cookie_behaviour","index_frequency_minutes","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14) RETURNING "id" [true, "7cbab813-adee-4d74-87e4-8c12965489f4", true, "Jeff Su", "UCwAnu01qlnVg1Ai2AbtTMaA", :channel, "https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA", false, 1, "Jeff Su", :disabled, 1440, ~U[2026-04-23 14:37:13Z], ~U[2026-04-23 14:37:13Z]] 16:37:13.105 [debug] QUERY OK source="tasks" db=0.3ms idle=612.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."worker" LIKE ?) AND (o1."state" IN (?,?,?,?)) [1, "%.MediaCollectionIndexingWorker", "available", "scheduled", "retryable", "executing"] 16:37:13.107 [debug] QUERY OK source="tasks" db=0.2ms idle=553.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3, 1, ~U[2026-04-23 14:37:13Z], ~U[2026-04-23 14:37:13Z]] 16:37:13.108 [debug] QUERY OK source="tasks" db=0.2ms idle=2.8ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [4, 1, ~U[2026-04-23 14:37:13Z], ~U[2026-04-23 14:37:13Z]] 16:37:13.108 [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 [] 16:37:13.109 [info] Sent 302 in 8065ms 16:37:13.115 [info] {"args":{"id":1},"id":4,"meta":{},"system_time":1776955033114900779,"max_attempts":3,"queue":"remote_metadata","worker":"Pinchflat.Metadata.SourceMetadataStorageWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","source_metadata","remote_metadata","show_in_dashboard"]} 16:37:13.116 [debug] QUERY OK source="sources" db=0.1ms queue=0.2ms idle=8.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:13.117 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=8.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:37:13.117 [debug] QUERY OK source="source_metadata" db=0.2ms queue=0.2ms idle=8.2ms 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" = ?) [1] 16:37:13.117 [debug] Running yt-dlp command for action: get_source_details 16:37:13.118 [debug] QUERY OK source="settings" db=0.1ms 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 [] 16:37:13.118 [debug] QUERY OK source="settings" db=0.3ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:13.119 [debug] QUERY OK source="settings" db=0.2ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:13.119 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/6d/68/6d68875495f5f8dcab12cbb2b2c5d05ffe0d823eeeea061bf6ad825343e01976.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:37:13.183 [info] GET / 16:37:13.183 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{"onboarding" => "1"} Pipelines: [:browser] 16:37:13.184 [debug] QUERY OK source="settings" db=0.3ms idle=67.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:13.185 [debug] QUERY OK source="media_profiles" db=0.2ms idle=67.6ms SELECT 1 FROM "media_profiles" AS m0 LIMIT 1 [] 16:37:13.185 [debug] QUERY OK source="sources" db=0.1ms idle=66.8ms SELECT 1 FROM "sources" AS s0 LIMIT 1 [] 16:37:13.185 [debug] QUERY OK source="settings" db=0.1ms idle=66.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:13.186 [debug] QUERY OK source="settings" db=0.3ms idle=66.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:13.187 [info] Sent 200 in 4ms 16:37:13.502 [info] {"args":{"id":1},"id":3,"meta":{},"system_time":1776955033501975355,"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"]} 16:37:13.503 [debug] QUERY OK source="sources" db=0.6ms idle=317.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:13.504 [debug] QUERY OK source="settings" db=0.8ms idle=317.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:13.505 [debug] QUERY OK source="media_items" db=0.2ms queue=0.5ms idle=318.6ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 16:37:13.506 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=10.9ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 16:37:13.506 [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] 16:37:13.507 [debug] QUERY OK source="settings" db=0.1ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:13.507 [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 [] 16:37:13.508 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 16:37:13.508 [debug] Current batch of media processed. Will check again in 1000ms 16:37:13.508 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:13.509 [debug] QUERY OK source="settings" db=0.4ms 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 [] 16:37:13.509 [debug] QUERY OK source="settings" db=0.3ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:13.510 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:720,+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/6f/6f/6f6fa611b0c6c1b6567df0ec24c2e85ed88f0cadcc70d1a927f0681997de9c47.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:37:14.508 [debug] Current batch of media processed. Will check again in 1000ms 16:37:15.343 [info] GET / 16:37:15.343 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{"onboarding" => "0"} Pipelines: [:browser] 16:37:15.344 [debug] QUERY OK source="settings" db=0.2ms idle=847.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:15.345 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=791.8ms UPDATE "settings" SET "onboarding" = ? WHERE "id" = ? [false, 1] 16:37:15.346 [debug] QUERY OK source="settings" db=0.4ms idle=792.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:15.347 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.4ms idle=793.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 16:37:15.347 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=794.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 16:37:15.347 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=2.9ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 16:37:15.348 [debug] QUERY OK source="media_items" db=0.0ms queue=0.1ms idle=2.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 16:37:15.348 [debug] QUERY OK source="settings" db=0.3ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:15.349 [debug] QUERY OK source="settings" db=0.3ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:15.350 [debug] QUERY OK source="settings" db=0.4ms 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 [] 16:37:15.351 [debug] QUERY OK source="tasks" db=0.4ms idle=3.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 16:37:15.353 [debug] QUERY OK source="sources" db=0.1ms queue=0.5ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:15.354 [debug] QUERY OK source="media_items" db=0.1ms queue=0.2ms idle=5.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 16:37:15.356 [debug] QUERY OK source="media_items" db=0.4ms queue=0.6ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "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] 16:37:15.358 [debug] QUERY OK source="media_items" db=0.2ms queue=0.8ms idle=6.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 16:37:15.360 [debug] QUERY OK source="media_items" db=0.6ms queue=1.1ms idle=6.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 16:37:15.361 [info] Sent 200 in 17ms 16:37:15.509 [debug] Current batch of media processed. Will check again in 1000ms 16:37:15.542 [info] CONNECTED TO Phoenix.LiveView.Socket in 47µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DBZ0BAIVW1wwEnR_ZgtJcR4COQsmUjkfHr0fJWn8sgM0Vg0EXNHXddpu", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinch.msdlx.de/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinch.msdlx.de/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 16:37:15.590 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "downloaded"} 16:37:15.591 [debug] QUERY OK source="media_items" db=0.2ms idle=236.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)) [] 16:37:15.591 [debug] QUERY OK source="media_items" db=0.4ms idle=235.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] 16:37:15.591 [debug] Replied in 1ms 16:37:15.592 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "pending"} 16:37:15.593 [debug] QUERY OK source="media_items" db=0.3ms idle=234.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"))) [] 16:37:15.594 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=233.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] 16:37:15.594 [debug] Replied in 1ms 16:37:15.595 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:37:15.596 [debug] QUERY OK source="tasks" db=0.4ms idle=97.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"] 16:37:15.597 [debug] QUERY OK source="sources" db=0.1ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:15.597 [debug] Replied in 1ms 16:37:15.598 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:37:15.598 [debug] Replied in 128µs 16:37:16.511 [debug] Current batch of media processed. Will check again in 1000ms 16:37:17.511 [debug] Current batch of media processed. Will check again in 1000ms 16:37:18.234 [info] {"source":"oban","duration":902,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:37:18.512 [debug] Current batch of media processed. Will check again in 1000ms 16:37:19.513 [debug] Current batch of media processed. Will check again in 1000ms 16:37:20.376 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/6d/68/6d68875495f5f8dcab12cbb2b2c5d05ffe0d823eeeea061bf6ad825343e01976.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:37:20.377 [debug] Running yt-dlp command for action: get_source_metadata 16:37:20.378 [debug] QUERY OK source="settings" db=0.2ms idle=870.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:20.378 [debug] QUERY OK source="settings" db=0.1ms idle=825.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:20.378 [debug] QUERY OK source="settings" db=0.1ms idle=825.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:20.379 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA --skip-download --convert-thumbnails jpg --output /tmp/pinchflat/data/e9969fe8877ea451/source_image.%(ext)S --write-all-thumbnails --playlist-items 0 --print-to-file playlist:%()j /tmp/pinchflat/data/be/1b/be1b61ee003f0abbe70a9c0809d1b1d20a5f5c4e344f1f6873a1e5db43a143c0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:37:20.514 [debug] Current batch of media processed. Will check again in 1000ms 16:37:21.515 [debug] Current batch of media processed. Will check again in 1000ms 16:37:22.517 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🌟 Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=v202\n\nClaude #Cowork is Anthropic's desktop app that turns Claude from a chatbot into a full productivity system on your computer. This walkthrough covers the 7 core capabilities, including local file access, persistent memory, connectors, skills, Cowork Projects, and scheduled tasks, with real examples you can try today.\n\nIf you've been using #Claude Chat but want to automate real work like expense reports, inbox triage, and reusable workflows, this is where to start.\n\n*TIMESTAMPS*\n00:00 Claude Chat, Cowork, Code\n00:25: Claude Chat vs. Claude Cowork\n02:19 Claude Cowork: Essential Settings\n04:12 Capability #1: Local File Access\n06:14 Capability #2: Persistent Memory\n08:44 Capability #3: Tools & Connectors\n10:38 Capability #4: Claude Skills\n14:26 Capability #5: Cowork Projects\n15:39 Capability #6: Claude Browser Extension\n16:44 Capability #7: Scheduled Tasks\n\n*RESOURCES MENTIONED*\nResources for Claude Cowork - https://www.jeffsu.org/learn-80-of-claude-cowork-in-under-20-minutes?utm_source=youtube&utm_medium=video&utm_campaign=v202\nFree AI Toolkit - https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=v202\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=v202\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=v202\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#AI", "duration" => 1134, "filename" => "/downloads/Jeff Su/2026-04-07 Learn 80% of Claude Cowork in Under 20 Minutes/Learn 80% of Claude Cowork in Under 20 Minutes [z9rdrNrkvDY].mp4", "id" => "z9rdrNrkvDY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=z9rdrNrkvDY", "playlist_index" => 1, "timestamp" => 1775566944, "title" => "Learn 80% of Claude Cowork in Under 20 Minutes", "upload_date" => "20260407"} 16:37:22.517 [debug] QUERY OK source="sources" db=0.2ms idle=964.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:37:22.518 [debug] QUERY OK source="sources" db=0.2ms idle=965.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:22.518 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=965.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-07 13:02:24Z], 1] 16:37:22.521 [debug] QUERY OK source="media_items" db=1.8ms idle=966.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🌟 Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=v202\n\nClaude #Cowork is Anthropic's desktop app that turns Claude from a chatbot into a full productivity system on your computer. This walkthrough covers the 7 core capabilities, including local file access, persistent memory, connectors, skills, Cowork Projects, and scheduled tasks, with real examples you can try today.\n\nIf you've been using #Claude Chat but want to automate real work like expense reports, inbox triage, and reusable workflows, this is where to start.\n\n*TIMESTAMPS*\n00:00 Claude Chat, Cowork, Code\n00:25: Claude Chat vs. Claude Cowork\n02:19 Claude Cowork: Essential Settings\n04:12 Capability #1: Local File Access\n06:14 Capability #2: Persistent Memory\n08:44 Capability #3: Tools & Connectors\n10:38 Capability #4: Claude Skills\n14:26 Capability #5: Cowork Projects\n15:39 Capability #6: Claude Browser Extension\n16:44 Capability #7: Scheduled Tasks\n\n*RESOURCES MENTIONED*\nResources for Claude Cowork - https://www.jeffsu.org/learn-80-of-claude-cowork-in-under-20-minutes?utm_source=youtube&utm_medium=video&utm_campaign=v202\nFree AI Toolkit - https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=v202\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=v202\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=v202\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#AI", "Learn 80% of Claude Cowork in Under 20 Minutes", "d920cff0-1303-43d3-969d-229b14ab6cf7", false, "z9rdrNrkvDY", 1, [], 1134, false, "https://www.youtube.com/watch?v=z9rdrNrkvDY", 1, "/downloads/Jeff Su/2026-04-07 Learn 80% of Claude Cowork in Under 20 Minutes/Learn 80% of Claude Cowork in Under 20 Minutes [z9rdrNrkvDY].mp4", false, false, 99, ~U[2026-04-07 13:02:24Z], ~U[2026-04-23 14:37:22Z], ~U[2026-04-23 14:37:22Z], "🌟 Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=v202\n\nClaude #Cowork is Anthropic's desktop app that turns Claude from a chatbot into a full productivity system on your computer. This walkthrough covers the 7 core capabilities, including local file access, persistent memory, connectors, skills, Cowork Projects, and scheduled tasks, with real examples you can try today.\n\nIf you've been using #Claude Chat but want to automate real work like expense reports, inbox triage, and reusable workflows, this is where to start.\n\n*TIMESTAMPS*\n00:00 Claude Chat, Cowork, Code\n00:25: Claude Chat vs. Claude Cowork\n02:19 Claude Cowork: Essential Settings\n04:12 Capability #1: Local File Access\n06:14 Capability #2: Persistent Memory\n08:44 Capability #3: Tools & Connectors\n10:38 Capability #4: Claude Skills\n14:26 Capability #5: Cowork Projects\n15:39 Capability #6: Claude Browser Extension\n16:44 Capability #7: Scheduled Tasks\n\n*RESOURCES MENTIONED*\nResources for Claude Cowork - https://www.jeffsu.org/learn-80-of-claude-cowork-in-under-20-minutes?utm_source=youtube&utm_medium=video&utm_campaign=v202\nFree AI Toolkit - https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=v202\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=v202\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=v202\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#AI", "Learn 80% of Claude Cowork in Under 20 Minutes", "z9rdrNrkvDY", 1, 1134, false, "https://www.youtube.com/watch?v=z9rdrNrkvDY", "/downloads/Jeff Su/2026-04-07 Learn 80% of Claude Cowork in Under 20 Minutes/Learn 80% of Claude Cowork in Under 20 Minutes [z9rdrNrkvDY].mp4", false, ~U[2026-04-07 13:02:24Z]] 16:37:22.522 [debug] QUERY OK source="sources" db=0.2ms queue=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" = ?) [1] 16:37:22.522 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:37:22.523 [debug] QUERY OK source="media_items" db=0.2ms queue=0.3ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1] 16:37:22.523 [info] Kicking off download for media item #1 (z9rdrNrkvDY) 16:37:22.525 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=3.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [5, 1, ~U[2026-04-23 14:37:22Z], ~U[2026-04-23 14:37:22Z]] 16:37:22.525 [debug] Current batch of media processed. Will check again in 1000ms 16:37:22.532 [info] {"args":{"id":1},"id":5,"meta":{},"system_time":1776955042531866085,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:37:22.533 [debug] QUERY OK source="media_items" db=0.5ms queue=0.2ms idle=8.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" = ?) [1] 16:37:22.533 [debug] QUERY OK source="tasks" db=0.9ms idle=7.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 16:37:22.533 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:37:22.534 [debug] QUERY OK source="sources" db=0.5ms idle=8.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:22.535 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 16:37:22.535 [debug] QUERY OK source="media_items" db=0.8ms queue=0.6ms 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", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1] 16:37:22.534 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:22.535 [debug] QUERY OK source="media_items" db=0.3ms queue=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 [1] 16:37:22.537 [debug] QUERY OK source="media_metadata" db=0.1ms queue=0.1ms idle=2.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1] 16:37:22.537 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:37:22.538 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:37:22.538 [debug] QUERY OK source="settings" db=0.1ms 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 [] 16:37:22.539 [debug] Running yt-dlp command for action: get_downloadable_status 16:37:22.539 [debug] QUERY OK source="settings" db=0.1ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:22.540 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:22.540 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:22.540 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=z9rdrNrkvDY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/18/7f/187fb0f2e6645ea5d1ad1fef271f5bad678193141e8c5bcd8e6fd7a637b4d1ed.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:37:23.526 [debug] Current batch of media processed. Will check again in 1000ms 16:37:23.780 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA --skip-download --convert-thumbnails jpg --output /tmp/pinchflat/data/e9969fe8877ea451/source_image.%(ext)S --write-all-thumbnails --playlist-items 0 --print-to-file playlist:%()j /tmp/pinchflat/data/be/1b/be1b61ee003f0abbe70a9c0809d1b1d20a5f5c4e344f1f6873a1e5db43a143c0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:37:23.785 [debug] QUERY OK db=0.0ms idle=265.9ms begin [] 16:37:23.786 [debug] QUERY OK source="sources" db=0.2ms UPDATE "sources" SET "description" = ?, "updated_at" = ? WHERE "id" = ? ["🌟 This is the channel I wish I could have subscribed when I first entered the workforce\n\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\n\nI make videos on practical career and productivity tips without all the \"fluff\"\n\nSo if you're a college student, working professional, or super ambitious high schooler, make sure to subscribe to my channel 💡\n", ~U[2026-04-23 14:37:23Z], 1] 16:37:23.786 [debug] QUERY OK source="source_metadata" db=0.3ms INSERT INTO "source_metadata" ("source_id","metadata_filepath","banner_filepath","fanart_filepath","poster_filepath","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7) RETURNING "id" [1, "/config/metadata/sources/1/metadata.json.gz", "/config/metadata/sources/1/banner.jpg", "/config/metadata/sources/1/fanart.jpg", "/config/metadata/sources/1/poster.jpg", ~U[2026-04-23 14:37:23Z], ~U[2026-04-23 14:37:23Z]] 16:37:23.787 [debug] QUERY OK db=0.4ms commit [] 16:37:23.788 [info] {"args":{"id":1},"id":4,"meta":{},"state":"success","max_attempts":3,"queue":"remote_metadata","worker":"Pinchflat.Metadata.SourceMetadataStorageWorker","source":"oban","duration":10672399,"event":"job:stop","queue_time":113851,"attempt":1,"tags":["media_source","source_metadata","remote_metadata","show_in_dashboard"]} 16:37:23.789 [debug] QUERY OK source="tasks" db=0.8ms idle=235.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"] 16:37:23.790 [debug] QUERY OK source="media_items" db=0.8ms idle=236.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", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1] 16:37:23.794 [debug] QUERY OK source="sources" db=3.9ms idle=237.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:37:24.527 [debug] Current batch of media processed. Will check again in 1000ms 16:37:25.528 [debug] Current batch of media processed. Will check again in 1000ms 16:37:26.530 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "✅\u00A0Grab HubSpot’s NotebookLM guide: https://clickhubspot.com/414d85\n\n#NotebookLM just got a massive wave of updates and is now more popular than #Gemini itself. In this full walkthrough, I break down the three-column layout, rank every Studio panel tool into Tier 1 (must-use) and Tier 2 (situational), and share the exact prompt templates and workflows I use to turn raw sources into finished reports, presentations, and social-ready visuals.\n\n*TIMESTAMPS*\n00:00 NotebookLM Full Tutorial\n00:21 NotebookLM’s Core Advantage\n02:05 NotebookLM: Sources Panel\n05:17 NotebookLM: Chat Panel\n07:51 Studio Panel: Tier 1 Tools\n08:21 Tool #1: Reports\n09:46 Tool #2: Slide Decks\n12:53 Tool #3: Infographics\n13:56 Tool #4: Mind Maps\n15:07 Studio Panel: Tier 2 Tools\n15:15 Tool #5: Data Tables\n16:09 Tool #6: Video Overviews\n17:02 Bonus Tool: Cinematic Video Overviews\n17:29 Tool #7: Quiz\n17:52 Tool #8: Flashcards\n18:28 Tool #9: Audio Overviews\n19:14 Lightening Round: NotebookLM Use Cases\n19:50 Advanced NotebookLM Workflows\n\n*RESOURCES MENTIONED*\nPrompt Templates: https://www.jeffsu.org/notebooklm-changed-completely-heres-what-matters-in-2026\nWorkspace Essentials Newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=201\nWatch my Gemini tutorial next: https://youtu.be/bTLmt9BKGVc\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=201\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=201\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "duration" => 1230, "filename" => "/downloads/Jeff Su/2026-03-17 NotebookLM Changed Completely: Here's What Matters (in 2026)/NotebookLM Changed Completely: Here's What Matters (in 2026) [_uXnyhrqmsU].mp4", "id" => "_uXnyhrqmsU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_uXnyhrqmsU", "playlist_index" => 2, "timestamp" => 1773752474, "title" => "NotebookLM Changed Completely: Here's What Matters (in 2026)", "upload_date" => "20260317"} 16:37:26.532 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=977.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:37:26.533 [debug] QUERY OK source="sources" db=0.5ms idle=980.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:26.534 [debug] QUERY OK source="media_items" db=0.2ms idle=980.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-17 13:01:14Z], 1] 16:37:26.539 [debug] QUERY OK source="media_items" db=3.5ms idle=982.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✅\u00A0Grab HubSpot’s NotebookLM guide: https://clickhubspot.com/414d85\n\n#NotebookLM just got a massive wave of updates and is now more popular than #Gemini itself. In this full walkthrough, I break down the three-column layout, rank every Studio panel tool into Tier 1 (must-use) and Tier 2 (situational), and share the exact prompt templates and workflows I use to turn raw sources into finished reports, presentations, and social-ready visuals.\n\n*TIMESTAMPS*\n00:00 NotebookLM Full Tutorial\n00:21 NotebookLM’s Core Advantage\n02:05 NotebookLM: Sources Panel\n05:17 NotebookLM: Chat Panel\n07:51 Studio Panel: Tier 1 Tools\n08:21 Tool #1: Reports\n09:46 Tool #2: Slide Decks\n12:53 Tool #3: Infographics\n13:56 Tool #4: Mind Maps\n15:07 Studio Panel: Tier 2 Tools\n15:15 Tool #5: Data Tables\n16:09 Tool #6: Video Overviews\n17:02 Bonus Tool: Cinematic Video Overviews\n17:29 Tool #7: Quiz\n17:52 Tool #8: Flashcards\n18:28 Tool #9: Audio Overviews\n19:14 Lightening Round: NotebookLM Use Cases\n19:50 Advanced NotebookLM Workflows\n\n*RESOURCES MENTIONED*\nPrompt Templates: https://www.jeffsu.org/notebooklm-changed-completely-heres-what-matters-in-2026\nWorkspace Essentials Newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=201\nWatch my Gemini tutorial next: https://youtu.be/bTLmt9BKGVc\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=201\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=201\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "NotebookLM Changed Completely: Here's What Matters (in 2026)", "31374eea-7e7b-4705-9f33-1653fae66082", false, "_uXnyhrqmsU", 1, [], 1230, false, "https://www.youtube.com/watch?v=_uXnyhrqmsU", 2, "/downloads/Jeff Su/2026-03-17 NotebookLM Changed Completely: Here's What Matters (in 2026)/NotebookLM Changed Completely: Here's What Matters (in 2026) [_uXnyhrqmsU].mp4", false, false, 99, ~U[2026-03-17 13:01:14Z], ~U[2026-04-23 14:37:26Z], ~U[2026-04-23 14:37:26Z], "✅\u00A0Grab HubSpot’s NotebookLM guide: https://clickhubspot.com/414d85\n\n#NotebookLM just got a massive wave of updates and is now more popular than #Gemini itself. In this full walkthrough, I break down the three-column layout, rank every Studio panel tool into Tier 1 (must-use) and Tier 2 (situational), and share the exact prompt templates and workflows I use to turn raw sources into finished reports, presentations, and social-ready visuals.\n\n*TIMESTAMPS*\n00:00 NotebookLM Full Tutorial\n00:21 NotebookLM’s Core Advantage\n02:05 NotebookLM: Sources Panel\n05:17 NotebookLM: Chat Panel\n07:51 Studio Panel: Tier 1 Tools\n08:21 Tool #1: Reports\n09:46 Tool #2: Slide Decks\n12:53 Tool #3: Infographics\n13:56 Tool #4: Mind Maps\n15:07 Studio Panel: Tier 2 Tools\n15:15 Tool #5: Data Tables\n16:09 Tool #6: Video Overviews\n17:02 Bonus Tool: Cinematic Video Overviews\n17:29 Tool #7: Quiz\n17:52 Tool #8: Flashcards\n18:28 Tool #9: Audio Overviews\n19:14 Lightening Round: NotebookLM Use Cases\n19:50 Advanced NotebookLM Workflows\n\n*RESOURCES MENTIONED*\nPrompt Templates: https://www.jeffsu.org/notebooklm-changed-completely-heres-what-matters-in-2026\nWorkspace Essentials Newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=201\nWatch my Gemini tutorial next: https://youtu.be/bTLmt9BKGVc\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=201\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=201\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "NotebookLM Changed Completely: Here's What Matters (in 2026)", "_uXnyhrqmsU", 1, 1230, false, "https://www.youtube.com/watch?v=_uXnyhrqmsU", "/downloads/Jeff Su/2026-03-17 NotebookLM Changed Completely: Here's What Matters (in 2026)/NotebookLM Changed Completely: Here's What Matters (in 2026) [_uXnyhrqmsU].mp4", false, ~U[2026-03-17 13:01:14Z]] 16:37:26.540 [debug] QUERY OK source="sources" db=0.4ms idle=14.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:37:26.540 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=7.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:37:26.542 [debug] QUERY OK source="media_items" db=1.0ms idle=7.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2] 16:37:26.542 [info] Kicking off download for media item #2 (_uXnyhrqmsU) 16:37:26.546 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=5.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [6, 2, ~U[2026-04-23 14:37:26Z], ~U[2026-04-23 14:37:26Z]] 16:37:26.546 [debug] Current batch of media processed. Will check again in 1000ms 16:37:26.553 [info] {"args":{"id":2},"id":6,"meta":{},"system_time":1776955046553160430,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:37:26.554 [debug] QUERY OK source="media_items" db=1.1ms idle=10.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" = ?) [2] 16:37:26.555 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:37:26.556 [debug] QUERY OK source="tasks" db=2.2ms idle=8.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 16:37:26.556 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=10.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:26.557 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 16:37:26.558 [debug] QUERY OK source="media_items" db=0.3ms 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 [2] 16:37:26.559 [debug] QUERY OK source="media_metadata" db=0.1ms queue=0.1ms idle=2.3ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [2] 16:37:26.560 [debug] QUERY OK source="media_profiles" db=0.2ms queue=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] 16:37:26.560 [debug] QUERY OK source="sources" db=3.1ms queue=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" = ?) [1] 16:37:26.561 [debug] QUERY OK source="media_items" db=4.0ms queue=0.4ms idle=10.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", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [1, 2] 16:37:26.563 [debug] QUERY OK source="settings" db=0.4ms 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 [] 16:37:26.564 [debug] QUERY OK source="settings" db=0.1ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:26.564 [debug] Running yt-dlp command for action: get_downloadable_status 16:37:26.565 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:37:26.565 [debug] QUERY OK source="settings" db=0.1ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:26.566 [debug] QUERY OK source="settings" db=0.1ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:26.566 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_uXnyhrqmsU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/06/77/06774ee26571d9fa7383c67c1b00e3ae0481fe7c47ce881336dea9d677b6c557.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:37:27.547 [debug] Current batch of media processed. Will check again in 1000ms 16:37:28.549 [debug] Current batch of media processed. Will check again in 1000ms 16:37:28.703 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=z9rdrNrkvDY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/18/7f/187fb0f2e6645ea5d1ad1fef271f5bad678193141e8c5bcd8e6fd7a637b4d1ed.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:37:28.703 [debug] Running yt-dlp command for action: download 16:37:28.704 [debug] QUERY OK source="settings" db=0.2ms idle=174.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:28.704 [debug] QUERY OK source="settings" db=0.1ms idle=145.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:28.704 [debug] QUERY OK source="settings" db=0.1ms idle=145.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:28.705 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=z9rdrNrkvDY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/f4/58/f45870e68878d640565c5b8e41027e652cb4e29681a6c93b9efc5bb48938861f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:37:29.549 [debug] Current batch of media processed. Will check again in 1000ms 16:37:30.550 [debug] Current batch of media processed. Will check again in 1000ms 16:37:31.552 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "️Try Gamma now ➡️\u00A0https://gam.link/jeffsu\n\nMost #AI presentation tutorials stop at the first draft. But if you've worked in any corporate environment, you know the draft is maybe 20% of the work. The other 80% is rounds of edits from stakeholders who all want different things.\n\nThis video walks through a real workflow using #Gamma, covering seven realistic editing scenarios based on actual stakeholder roles: reordering narrative structure, adding slides with live data, verifying stats, transforming text into charts, fixing visual hierarchy, combining redundant slides, and translating a full deck.\n\nEach one tests a different capability of AI #presentation tools.\n\n*TIMESTAMPS*\n00:00 The Problem with AI Presentations\n00:42 A Realistic Presentation Outline\n01:42 Generating First Draft of Your Presentation\n03:55 Editing Your First Draft\n05:04 Scenario 1: Reorder the Narrative\n05:45 Scenario 2: Add a Slide with Live Data\n06:38 Scenario 3: Verify and Source a Stat\n07:22 Scenario 4: Turn Text into a Chart\n08:35 Scenario 5: Fix Visual Hierarchy\n09:26 Scenario 6: Merge Two Slides into One\n10:29 Scenario 7: Translate The Full Deck\n11:46 Pro Tips for Presentations\n\n*RESOURCES MENTIONED*\nPresentation outline - https://www.jeffsu.org/your-ai-presentations-look-great-but-say-nothing\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=200\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=200\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "duration" => 772, "filename" => "/downloads/Jeff Su/2026-03-03 The Top 1% Build AI Presentations Differently. Here's How#/The Top 1% Build AI Presentations Differently. Here's How. [ZpXN9M0WLQ4].mp4", "id" => "ZpXN9M0WLQ4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZpXN9M0WLQ4", "playlist_index" => 3, "timestamp" => 1772542864, "title" => "The Top 1% Build AI Presentations Differently. Here's How.", "upload_date" => "20260303"} 16:37:31.554 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms 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" IN (?)) [1] 16:37:31.555 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=995.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:31.558 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=996.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-03 13:01:04Z], 1] 16:37:31.562 [debug] QUERY OK source="media_items" db=2.6ms idle=999.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["️Try Gamma now ➡️\u00A0https://gam.link/jeffsu\n\nMost #AI presentation tutorials stop at the first draft. But if you've worked in any corporate environment, you know the draft is maybe 20% of the work. The other 80% is rounds of edits from stakeholders who all want different things.\n\nThis video walks through a real workflow using #Gamma, covering seven realistic editing scenarios based on actual stakeholder roles: reordering narrative structure, adding slides with live data, verifying stats, transforming text into charts, fixing visual hierarchy, combining redundant slides, and translating a full deck.\n\nEach one tests a different capability of AI #presentation tools.\n\n*TIMESTAMPS*\n00:00 The Problem with AI Presentations\n00:42 A Realistic Presentation Outline\n01:42 Generating First Draft of Your Presentation\n03:55 Editing Your First Draft\n05:04 Scenario 1: Reorder the Narrative\n05:45 Scenario 2: Add a Slide with Live Data\n06:38 Scenario 3: Verify and Source a Stat\n07:22 Scenario 4: Turn Text into a Chart\n08:35 Scenario 5: Fix Visual Hierarchy\n09:26 Scenario 6: Merge Two Slides into One\n10:29 Scenario 7: Translate The Full Deck\n11:46 Pro Tips for Presentations\n\n*RESOURCES MENTIONED*\nPresentation outline - https://www.jeffsu.org/your-ai-presentations-look-great-but-say-nothing\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=200\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=200\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "The Top 1% Build AI Presentations Differently. Here's How.", "aadbd9eb-737a-4cde-87b8-ce26c4c5f9b9", false, "ZpXN9M0WLQ4", 1, [], 772, false, "https://www.youtube.com/watch?v=ZpXN9M0WLQ4", 3, "/downloads/Jeff Su/2026-03-03 The Top 1% Build AI Presentations Differently. Here's How#/The Top 1% Build AI Presentations Differently. Here's How. [ZpXN9M0WLQ4].mp4", false, false, 99, ~U[2026-03-03 13:01:04Z], ~U[2026-04-23 14:37:31Z], ~U[2026-04-23 14:37:31Z], "️Try Gamma now ➡️\u00A0https://gam.link/jeffsu\n\nMost #AI presentation tutorials stop at the first draft. But if you've worked in any corporate environment, you know the draft is maybe 20% of the work. The other 80% is rounds of edits from stakeholders who all want different things.\n\nThis video walks through a real workflow using #Gamma, covering seven realistic editing scenarios based on actual stakeholder roles: reordering narrative structure, adding slides with live data, verifying stats, transforming text into charts, fixing visual hierarchy, combining redundant slides, and translating a full deck.\n\nEach one tests a different capability of AI #presentation tools.\n\n*TIMESTAMPS*\n00:00 The Problem with AI Presentations\n00:42 A Realistic Presentation Outline\n01:42 Generating First Draft of Your Presentation\n03:55 Editing Your First Draft\n05:04 Scenario 1: Reorder the Narrative\n05:45 Scenario 2: Add a Slide with Live Data\n06:38 Scenario 3: Verify and Source a Stat\n07:22 Scenario 4: Turn Text into a Chart\n08:35 Scenario 5: Fix Visual Hierarchy\n09:26 Scenario 6: Merge Two Slides into One\n10:29 Scenario 7: Translate The Full Deck\n11:46 Pro Tips for Presentations\n\n*RESOURCES MENTIONED*\nPresentation outline - https://www.jeffsu.org/your-ai-presentations-look-great-but-say-nothing\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=200\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=200\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "The Top 1% Build AI Presentations Differently. Here's How.", "ZpXN9M0WLQ4", 1, 772, false, "https://www.youtube.com/watch?v=ZpXN9M0WLQ4", "/downloads/Jeff Su/2026-03-03 The Top 1% Build AI Presentations Differently. Here's How#/The Top 1% Build AI Presentations Differently. Here's How. [ZpXN9M0WLQ4].mp4", false, ~U[2026-03-03 13:01:04Z]] 16:37:31.566 [debug] QUERY OK source="sources" db=3.3ms idle=26.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:31.571 [debug] QUERY OK source="media_profiles" db=4.1ms queue=0.1ms idle=12.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] 16:37:31.574 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=17.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [3] 16:37:31.574 [info] Kicking off download for media item #3 (ZpXN9M0WLQ4) 16:37:31.577 [debug] QUERY OK source="tasks" db=0.3ms queue=0.4ms idle=10.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [7, 3, ~U[2026-04-23 14:37:31Z], ~U[2026-04-23 14:37:31Z]] 16:37:31.577 [debug] Current batch of media processed. Will check again in 1000ms 16:37:32.578 [debug] Current batch of media processed. Will check again in 1000ms 16:37:32.590 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_uXnyhrqmsU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/06/77/06774ee26571d9fa7383c67c1b00e3ae0481fe7c47ce881336dea9d677b6c557.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:37:32.591 [debug] Running yt-dlp command for action: download 16:37:32.591 [debug] QUERY OK source="settings" db=0.3ms idle=1017.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:32.592 [debug] QUERY OK source="settings" db=0.2ms idle=1016.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:32.592 [debug] QUERY OK source="settings" db=0.2ms idle=1016.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:37:32.593 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_uXnyhrqmsU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/c9/f7/c9f7cfe194d4a79626dc5859f276d04482e82822460c227ebbed1b7f651bb1cc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:37:33.580 [debug] Current batch of media processed. Will check again in 1000ms 16:37:34.580 [debug] Current batch of media processed. Will check again in 1000ms 16:37:35.582 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "✅\u00A0Google’s #AI Course on Coursera: https://imp.i384100.net/YVD5vq\n\nKnowing how to \"use AI\" is now table stakes (unfortunately) 😅. This video covers 4 skills that will help you get ahead, and each skill is backed by research from Wharton, Harvard, BCG, and MIT.\n\nYou'll learn a mental model for deciding when to delegate, collaborate, or go manual with AI; how to design workflows that compound as AI improves; why storytelling remains your strongest moat; and how to keep your critical thinking sharp instead of letting it atrophy.\n\n*TIMESTAMPS*\n00:00 4 Skills AI Can’t Replace\n00:24 Skill #1: The Cockpit Rule\n03:09 Google’s AI Certificate\n04:04 Skill #2: Build the Rails\n06:04 Skill #3: The Storytelling Moat\n09:04 Skill #4: Manual Override\n10:58 So is AI making us dumber?\n\n*RESOURCES MENTIONED*\nAI Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=199\nMy Essential Power Prompts: https://www.notion.so/templates/essential-power-prompts-jeff-su\nPhilipp Humm on Storytelling: https://www.youtube.com/watch?v=hNuAv-42jzY\nVinh Giang on Storytelling: https://www.youtube.com/watch?v=5HfeNDleTS4\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=199\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#chatgpt #claude", "duration" => 731, "filename" => "/downloads/Jeff Su/2026-02-20 4 Skills I’m Learning that AI Can’t Replace (backed by data)/4 Skills I’m Learning that AI Can’t Replace (backed by data) [s_765enJBy8].mp4", "id" => "s_765enJBy8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=s_765enJBy8", "playlist_index" => 4, "timestamp" => 1771592504, "title" => "4 Skills I’m Learning that AI Can’t Replace (backed by data)", "upload_date" => "20260220"} 16:37:35.583 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1023.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:37:35.583 [debug] QUERY OK source="sources" db=0.2ms idle=1024.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:35.584 [debug] QUERY OK source="media_items" db=0.2ms idle=1024.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 13:01:44Z], 1] 16:37:35.586 [debug] QUERY OK source="media_items" db=1.6ms idle=39.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✅\u00A0Google’s #AI Course on Coursera: https://imp.i384100.net/YVD5vq\n\nKnowing how to \"use AI\" is now table stakes (unfortunately) 😅. This video covers 4 skills that will help you get ahead, and each skill is backed by research from Wharton, Harvard, BCG, and MIT.\n\nYou'll learn a mental model for deciding when to delegate, collaborate, or go manual with AI; how to design workflows that compound as AI improves; why storytelling remains your strongest moat; and how to keep your critical thinking sharp instead of letting it atrophy.\n\n*TIMESTAMPS*\n00:00 4 Skills AI Can’t Replace\n00:24 Skill #1: The Cockpit Rule\n03:09 Google’s AI Certificate\n04:04 Skill #2: Build the Rails\n06:04 Skill #3: The Storytelling Moat\n09:04 Skill #4: Manual Override\n10:58 So is AI making us dumber?\n\n*RESOURCES MENTIONED*\nAI Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=199\nMy Essential Power Prompts: https://www.notion.so/templates/essential-power-prompts-jeff-su\nPhilipp Humm on Storytelling: https://www.youtube.com/watch?v=hNuAv-42jzY\nVinh Giang on Storytelling: https://www.youtube.com/watch?v=5HfeNDleTS4\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=199\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#chatgpt #claude", "4 Skills I’m Learning that AI Can’t Replace (backed by data)", "3f09d2ac-f426-449e-8951-6917d3fe02ca", false, "s_765enJBy8", 1, [], 731, false, "https://www.youtube.com/watch?v=s_765enJBy8", 4, "/downloads/Jeff Su/2026-02-20 4 Skills I’m Learning that AI Can’t Replace (backed by data)/4 Skills I’m Learning that AI Can’t Replace (backed by data) [s_765enJBy8].mp4", false, false, 99, ~U[2026-02-20 13:01:44Z], ~U[2026-04-23 14:37:35Z], ~U[2026-04-23 14:37:35Z], "✅\u00A0Google’s #AI Course on Coursera: https://imp.i384100.net/YVD5vq\n\nKnowing how to \"use AI\" is now table stakes (unfortunately) 😅. This video covers 4 skills that will help you get ahead, and each skill is backed by research from Wharton, Harvard, BCG, and MIT.\n\nYou'll learn a mental model for deciding when to delegate, collaborate, or go manual with AI; how to design workflows that compound as AI improves; why storytelling remains your strongest moat; and how to keep your critical thinking sharp instead of letting it atrophy.\n\n*TIMESTAMPS*\n00:00 4 Skills AI Can’t Replace\n00:24 Skill #1: The Cockpit Rule\n03:09 Google’s AI Certificate\n04:04 Skill #2: Build the Rails\n06:04 Skill #3: The Storytelling Moat\n09:04 Skill #4: Manual Override\n10:58 So is AI making us dumber?\n\n*RESOURCES MENTIONED*\nAI Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=199\nMy Essential Power Prompts: https://www.notion.so/templates/essential-power-prompts-jeff-su\nPhilipp Humm on Storytelling: https://www.youtube.com/watch?v=hNuAv-42jzY\nVinh Giang on Storytelling: https://www.youtube.com/watch?v=5HfeNDleTS4\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=199\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#chatgpt #claude", "4 Skills I’m Learning that AI Can’t Replace (backed by data)", "s_765enJBy8", 1, 731, false, "https://www.youtube.com/watch?v=s_765enJBy8", "/downloads/Jeff Su/2026-02-20 4 Skills I’m Learning that AI Can’t Replace (backed by data)/4 Skills I’m Learning that AI Can’t Replace (backed by data) [s_765enJBy8].mp4", false, ~U[2026-02-20 13:01:44Z]] 16:37:35.587 [debug] QUERY OK source="sources" db=0.2ms idle=28.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:37:35.587 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:37:35.591 [debug] QUERY OK source="media_items" db=2.6ms queue=0.7ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [4] 16:37:35.591 [info] Kicking off download for media item #4 (s_765enJBy8) 16:37:35.594 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=6.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [8, 4, ~U[2026-04-23 14:37:35Z], ~U[2026-04-23 14:37:35Z]] 16:37:35.594 [debug] Current batch of media processed. Will check again in 1000ms 16:37:36.594 [debug] Current batch of media processed. Will check again in 1000ms 16:37:37.595 [debug] Current batch of media processed. Will check again in 1000ms 16:37:38.596 [debug] Current batch of media processed. Will check again in 1000ms 16:37:39.598 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "AI Systems Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=Q1_CNT_YOUTUBE_VIDEO_198_AI\n\nAfter three years of testing AI tools daily, I've narrowed down the one thing each tool does better than every alternative.\n\nThis is Part 2 of the AI Superpower Series, covering Productivity AI and Creative AI. You'll see exactly when to use Google Workspace's #Gemini over standalone chatbots, what Notion AI can actually do inside your workspace, and how #Midjourney, Nano Banana Pro, and ChatGPT's image model each serve different creative needs.\n\nEvery recommendation includes a clear rule of thumb so you know which tool to reach for and when.\n\n*TIMESTAMPS*\n00:00 if you’re overwhelmed by AI tools, watch this\n00:59 Google Workspace (Gemini)\n02:53 Notion AI\n05:16 Wispr Flow AI\n06:38 Midjourney\n08:28 Google Nano Banana Pro\n10:22 ChatGPT Image\n11:52 Google Flow\n13:00 Closing Thoughts\n\n*RESOURCES MENTIONED*\nWispr Flow: https://wisprflow.ai/r?JEFF306\nThe full blogpost: https://www.jeffsu.org/if-youre-overwhelmed-by-ai-tools-read-this\nPart 1 (Everyday + Specialist AI): https://youtu.be/htZRCE2GgIs\nNotion video on Relations feature: https://www.youtube.com/watch?v=4Fu23_l9F_o\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=198\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ChatGPT", "duration" => 814, "filename" => "/downloads/Jeff Su/2026-02-03 The 5 AI Tools You Need After ChatGPT (that do real work)/The 5 AI Tools You Need After ChatGPT (that do real work) [aH9ctWaxGgQ].mp4", "id" => "aH9ctWaxGgQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=aH9ctWaxGgQ", "playlist_index" => 5, "timestamp" => 1770123603, "title" => "The 5 AI Tools You Need After ChatGPT (that do real work)", "upload_date" => "20260203"} 16:37:39.599 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=45.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:37:39.600 [debug] QUERY OK source="sources" db=0.2ms idle=40.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:39.600 [debug] QUERY OK source="media_items" db=0.2ms idle=41.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-03 13:00:03Z], 1] 16:37:39.603 [debug] QUERY OK source="media_items" db=1.6ms idle=42.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["AI Systems Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=Q1_CNT_YOUTUBE_VIDEO_198_AI\n\nAfter three years of testing AI tools daily, I've narrowed down the one thing each tool does better than every alternative.\n\nThis is Part 2 of the AI Superpower Series, covering Productivity AI and Creative AI. You'll see exactly when to use Google Workspace's #Gemini over standalone chatbots, what Notion AI can actually do inside your workspace, and how #Midjourney, Nano Banana Pro, and ChatGPT's image model each serve different creative needs.\n\nEvery recommendation includes a clear rule of thumb so you know which tool to reach for and when.\n\n*TIMESTAMPS*\n00:00 if you’re overwhelmed by AI tools, watch this\n00:59 Google Workspace (Gemini)\n02:53 Notion AI\n05:16 Wispr Flow AI\n06:38 Midjourney\n08:28 Google Nano Banana Pro\n10:22 ChatGPT Image\n11:52 Google Flow\n13:00 Closing Thoughts\n\n*RESOURCES MENTIONED*\nWispr Flow: https://wisprflow.ai/r?JEFF306\nThe full blogpost: https://www.jeffsu.org/if-youre-overwhelmed-by-ai-tools-read-this\nPart 1 (Everyday + Specialist AI): https://youtu.be/htZRCE2GgIs\nNotion video on Relations feature: https://www.youtube.com/watch?v=4Fu23_l9F_o\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=198\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ChatGPT", "The 5 AI Tools You Need After ChatGPT (that do real work)", "4bb63a96-bdaf-4d94-980a-9b8aaba3b1b7", false, "aH9ctWaxGgQ", 1, [], 814, false, "https://www.youtube.com/watch?v=aH9ctWaxGgQ", 5, "/downloads/Jeff Su/2026-02-03 The 5 AI Tools You Need After ChatGPT (that do real work)/The 5 AI Tools You Need After ChatGPT (that do real work) [aH9ctWaxGgQ].mp4", false, false, 99, ~U[2026-02-03 13:00:03Z], ~U[2026-04-23 14:37:39Z], ~U[2026-04-23 14:37:39Z], "AI Systems Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=Q1_CNT_YOUTUBE_VIDEO_198_AI\n\nAfter three years of testing AI tools daily, I've narrowed down the one thing each tool does better than every alternative.\n\nThis is Part 2 of the AI Superpower Series, covering Productivity AI and Creative AI. You'll see exactly when to use Google Workspace's #Gemini over standalone chatbots, what Notion AI can actually do inside your workspace, and how #Midjourney, Nano Banana Pro, and ChatGPT's image model each serve different creative needs.\n\nEvery recommendation includes a clear rule of thumb so you know which tool to reach for and when.\n\n*TIMESTAMPS*\n00:00 if you’re overwhelmed by AI tools, watch this\n00:59 Google Workspace (Gemini)\n02:53 Notion AI\n05:16 Wispr Flow AI\n06:38 Midjourney\n08:28 Google Nano Banana Pro\n10:22 ChatGPT Image\n11:52 Google Flow\n13:00 Closing Thoughts\n\n*RESOURCES MENTIONED*\nWispr Flow: https://wisprflow.ai/r?JEFF306\nThe full blogpost: https://www.jeffsu.org/if-youre-overwhelmed-by-ai-tools-read-this\nPart 1 (Everyday + Specialist AI): https://youtu.be/htZRCE2GgIs\nNotion video on Relations feature: https://www.youtube.com/watch?v=4Fu23_l9F_o\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=198\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ChatGPT", "The 5 AI Tools You Need After ChatGPT (that do real work)", "aH9ctWaxGgQ", 1, 814, false, "https://www.youtube.com/watch?v=aH9ctWaxGgQ", "/downloads/Jeff Su/2026-02-03 The 5 AI Tools You Need After ChatGPT (that do real work)/The 5 AI Tools You Need After ChatGPT (that do real work) [aH9ctWaxGgQ].mp4", false, ~U[2026-02-03 13:00:03Z]] 16:37:39.603 [debug] QUERY OK source="sources" db=0.2ms idle=44.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:37:39.604 [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] 16:37:39.605 [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 [5] 16:37:39.605 [info] Kicking off download for media item #5 (aH9ctWaxGgQ) 16:37:39.607 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=2.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [9, 5, ~U[2026-04-23 14:37:39Z], ~U[2026-04-23 14:37:39Z]] 16:37:39.607 [debug] Current batch of media processed. Will check again in 1000ms 16:37:40.607 [debug] Current batch of media processed. Will check again in 1000ms 16:37:41.608 [debug] Current batch of media processed. Will check again in 1000ms 16:37:42.609 [debug] Current batch of media processed. Will check again in 1000ms 16:37:43.611 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "⚡️ HubSpot’s Free Guide: https://clickhubspot.com/5c4cca\n\nEvery AI tool excels at one thing. #ChatGPT follows complex instructions without dropping steps. #Gemini handles video, audio, and massive files other models can't process. #Claude produces working code and polished copy on the first try. Perplexity fetches accurate information in seconds. NotebookLM answers only from your sources, so it can't hallucinate.\n\nThis video breaks down when to use each tool based on three years of daily use, first at Google and now as a creator. Part 1 covers Everyday AI and Specialist AI. Part 2 covers Creative and Productivity AI.\n\n*TIMESTAMPS*\n00:00 The AI Tools that Drive 90% of My Results\n00:32 Everyday AI\n00:47 ChatGPT\n02:46 Google Gemini\n05:15 Claude\n07:45 Recap: Everyday AI\n08:14 Specialist AI\n08:47 Perplexity\n10:20 NotebookLM\n\n*RESOURCES MENTIONED*\nMy Essential Power Prompts template: https://www.notion.com/templates/essential-power-prompts-jeff-su\nGoogle search operators video: https://youtu.be/DIuo_QL4sAQ\nBlogpost: https://www.jeffsu.org/10-ai-tools-drive-most-results/\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=197\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=197\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "duration" => 716, "filename" => "/downloads/Jeff Su/2026-01-20 The Only AI Tools You Need (12-Minute Guide)/The Only AI Tools You Need (12-Minute Guide) [htZRCE2GgIs].mp4", "id" => "htZRCE2GgIs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=htZRCE2GgIs", "playlist_index" => 6, "timestamp" => 1768914092, "title" => "The Only AI Tools You Need (12-Minute Guide)", "upload_date" => "20260120"} 16:37:43.612 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms 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" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:37:43.613 [debug] QUERY OK source="sources" db=0.4ms idle=54.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:43.613 [debug] QUERY OK source="media_items" db=0.1ms idle=54.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-20 13:01:32Z], 1] 16:37:43.616 [debug] QUERY OK source="media_items" db=1.6ms idle=55.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["⚡️ HubSpot’s Free Guide: https://clickhubspot.com/5c4cca\n\nEvery AI tool excels at one thing. #ChatGPT follows complex instructions without dropping steps. #Gemini handles video, audio, and massive files other models can't process. #Claude produces working code and polished copy on the first try. Perplexity fetches accurate information in seconds. NotebookLM answers only from your sources, so it can't hallucinate.\n\nThis video breaks down when to use each tool based on three years of daily use, first at Google and now as a creator. Part 1 covers Everyday AI and Specialist AI. Part 2 covers Creative and Productivity AI.\n\n*TIMESTAMPS*\n00:00 The AI Tools that Drive 90% of My Results\n00:32 Everyday AI\n00:47 ChatGPT\n02:46 Google Gemini\n05:15 Claude\n07:45 Recap: Everyday AI\n08:14 Specialist AI\n08:47 Perplexity\n10:20 NotebookLM\n\n*RESOURCES MENTIONED*\nMy Essential Power Prompts template: https://www.notion.com/templates/essential-power-prompts-jeff-su\nGoogle search operators video: https://youtu.be/DIuo_QL4sAQ\nBlogpost: https://www.jeffsu.org/10-ai-tools-drive-most-results/\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=197\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=197\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "The Only AI Tools You Need (12-Minute Guide)", "d0397554-1a10-445a-881e-c3ac2fe37a92", false, "htZRCE2GgIs", 1, [], 716, false, "https://www.youtube.com/watch?v=htZRCE2GgIs", 6, "/downloads/Jeff Su/2026-01-20 The Only AI Tools You Need (12-Minute Guide)/The Only AI Tools You Need (12-Minute Guide) [htZRCE2GgIs].mp4", false, false, 99, ~U[2026-01-20 13:01:32Z], ~U[2026-04-23 14:37:43Z], ~U[2026-04-23 14:37:43Z], "⚡️ HubSpot’s Free Guide: https://clickhubspot.com/5c4cca\n\nEvery AI tool excels at one thing. #ChatGPT follows complex instructions without dropping steps. #Gemini handles video, audio, and massive files other models can't process. #Claude produces working code and polished copy on the first try. Perplexity fetches accurate information in seconds. NotebookLM answers only from your sources, so it can't hallucinate.\n\nThis video breaks down when to use each tool based on three years of daily use, first at Google and now as a creator. Part 1 covers Everyday AI and Specialist AI. Part 2 covers Creative and Productivity AI.\n\n*TIMESTAMPS*\n00:00 The AI Tools that Drive 90% of My Results\n00:32 Everyday AI\n00:47 ChatGPT\n02:46 Google Gemini\n05:15 Claude\n07:45 Recap: Everyday AI\n08:14 Specialist AI\n08:47 Perplexity\n10:20 NotebookLM\n\n*RESOURCES MENTIONED*\nMy Essential Power Prompts template: https://www.notion.com/templates/essential-power-prompts-jeff-su\nGoogle search operators video: https://youtu.be/DIuo_QL4sAQ\nBlogpost: https://www.jeffsu.org/10-ai-tools-drive-most-results/\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=197\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=197\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "The Only AI Tools You Need (12-Minute Guide)", "htZRCE2GgIs", 1, 716, false, "https://www.youtube.com/watch?v=htZRCE2GgIs", "/downloads/Jeff Su/2026-01-20 The Only AI Tools You Need (12-Minute Guide)/The Only AI Tools You Need (12-Minute Guide) [htZRCE2GgIs].mp4", false, ~U[2026-01-20 13:01:32Z]] 16:37:43.617 [debug] QUERY OK source="sources" db=0.2ms idle=55.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:43.617 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:37:43.618 [debug] QUERY OK source="media_items" db=0.3ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [6] 16:37:43.618 [info] Kicking off download for media item #6 (htZRCE2GgIs) 16:37:43.620 [debug] QUERY OK source="tasks" db=0.3ms idle=3.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [10, 6, ~U[2026-04-23 14:37:43Z], ~U[2026-04-23 14:37:43Z]] 16:37:43.621 [debug] Current batch of media processed. Will check again in 1000ms 16:37:44.621 [debug] Current batch of media processed. Will check again in 1000ms 16:37:45.622 [debug] Current batch of media processed. Will check again in 1000ms 16:37:46.623 [debug] Current batch of media processed. Will check again in 1000ms 16:37:47.624 [debug] Current batch of media processed. Will check again in 1000ms 16:37:48.236 [info] {"source":"oban","duration":849,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:37:48.625 [debug] Current batch of media processed. Will check again in 1000ms 16:37:49.627 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Most #AI predictions are speculation. This video covers six trends backed by data from McKinsey, Stanford, #OpenAI, and Epoch AI, with specific steps you can take for each one.\n\nYou'll learn why the \"best model\" debate no longer matters, how AI workflows are outperforming autonomous agents in real enterprise settings, and why your file management system now directly impacts how useful AI can be for your work. Each trend includes concrete examples and a clear action item.\n\n*TIMESTAMPS*\n00:00 Top 6 AI Trends That Will Define 2026\n00:24 Trend 1: Models Won’t Matter Much Anymore\n02:55 Trend 2: Year of AI Workflows, NOT AI Agents\n05:33 Trend 3: The End of the Technical Divide\n07:13 Trend 4: The Rise of Context Engineering\n09:12 Trend 5: Advertising Comes to Chatbots\n10:46 Trend 6: From Chatbots to Robots\n\n*RESOURCES MENTIONED*\nSources mentioned: https://www.jeffsu.org/6-ai-trends-that-actually-matter-for-your-work-in-2026?utm_source=youtube&utm_medium=video&utm_campaign=196\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=196\nFree AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=196\nEssential Power Prompts: https://www.notion.com/templates/essential-power-prompts-jeff-su\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=196\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#2026", "duration" => 793, "filename" => "/downloads/Jeff Su/2026-01-06 Top 6 AI Trends That Will Define 2026 (backed by data)/Top 6 AI Trends That Will Define 2026 (backed by data) [B23W1gRT9eY].mp4", "id" => "B23W1gRT9eY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=B23W1gRT9eY", "playlist_index" => 7, "timestamp" => 1767704431, "title" => "Top 6 AI Trends That Will Define 2026 (backed by data)", "upload_date" => "20260106"} 16:37:49.628 [debug] QUERY OK source="sources" db=0.3ms idle=68.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:37:49.628 [debug] QUERY OK source="sources" db=0.2ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:49.629 [debug] QUERY OK source="media_items" db=0.2ms idle=69.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-06 13:00:31Z], 1] 16:37:49.632 [debug] QUERY OK source="media_items" db=1.9ms queue=0.7ms idle=70.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Most #AI predictions are speculation. This video covers six trends backed by data from McKinsey, Stanford, #OpenAI, and Epoch AI, with specific steps you can take for each one.\n\nYou'll learn why the \"best model\" debate no longer matters, how AI workflows are outperforming autonomous agents in real enterprise settings, and why your file management system now directly impacts how useful AI can be for your work. Each trend includes concrete examples and a clear action item.\n\n*TIMESTAMPS*\n00:00 Top 6 AI Trends That Will Define 2026\n00:24 Trend 1: Models Won’t Matter Much Anymore\n02:55 Trend 2: Year of AI Workflows, NOT AI Agents\n05:33 Trend 3: The End of the Technical Divide\n07:13 Trend 4: The Rise of Context Engineering\n09:12 Trend 5: Advertising Comes to Chatbots\n10:46 Trend 6: From Chatbots to Robots\n\n*RESOURCES MENTIONED*\nSources mentioned: https://www.jeffsu.org/6-ai-trends-that-actually-matter-for-your-work-in-2026?utm_source=youtube&utm_medium=video&utm_campaign=196\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=196\nFree AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=196\nEssential Power Prompts: https://www.notion.com/templates/essential-power-prompts-jeff-su\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=196\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#2026", "Top 6 AI Trends That Will Define 2026 (backed by data)", "65fecce5-71fb-4d9a-a5df-47635e8d8b60", false, "B23W1gRT9eY", 1, [], 793, false, "https://www.youtube.com/watch?v=B23W1gRT9eY", 7, "/downloads/Jeff Su/2026-01-06 Top 6 AI Trends That Will Define 2026 (backed by data)/Top 6 AI Trends That Will Define 2026 (backed by data) [B23W1gRT9eY].mp4", false, false, 99, ~U[2026-01-06 13:00:31Z], ~U[2026-04-23 14:37:49Z], ~U[2026-04-23 14:37:49Z], "Most #AI predictions are speculation. This video covers six trends backed by data from McKinsey, Stanford, #OpenAI, and Epoch AI, with specific steps you can take for each one.\n\nYou'll learn why the \"best model\" debate no longer matters, how AI workflows are outperforming autonomous agents in real enterprise settings, and why your file management system now directly impacts how useful AI can be for your work. Each trend includes concrete examples and a clear action item.\n\n*TIMESTAMPS*\n00:00 Top 6 AI Trends That Will Define 2026\n00:24 Trend 1: Models Won’t Matter Much Anymore\n02:55 Trend 2: Year of AI Workflows, NOT AI Agents\n05:33 Trend 3: The End of the Technical Divide\n07:13 Trend 4: The Rise of Context Engineering\n09:12 Trend 5: Advertising Comes to Chatbots\n10:46 Trend 6: From Chatbots to Robots\n\n*RESOURCES MENTIONED*\nSources mentioned: https://www.jeffsu.org/6-ai-trends-that-actually-matter-for-your-work-in-2026?utm_source=youtube&utm_medium=video&utm_campaign=196\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=196\nFree AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=196\nEssential Power Prompts: https://www.notion.com/templates/essential-power-prompts-jeff-su\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=196\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#2026", "Top 6 AI Trends That Will Define 2026 (backed by data)", "B23W1gRT9eY", 1, 793, false, "https://www.youtube.com/watch?v=B23W1gRT9eY", "/downloads/Jeff Su/2026-01-06 Top 6 AI Trends That Will Define 2026 (backed by data)/Top 6 AI Trends That Will Define 2026 (backed by data) [B23W1gRT9eY].mp4", false, ~U[2026-01-06 13:00:31Z]] 16:37:49.633 [debug] QUERY OK source="sources" db=0.2ms idle=59.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:49.634 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:37:49.634 [debug] QUERY OK source="media_items" db=0.3ms 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 [7] 16:37:49.634 [info] Kicking off download for media item #7 (B23W1gRT9eY) 16:37:49.637 [debug] QUERY OK source="tasks" db=0.2ms idle=3.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [11, 7, ~U[2026-04-23 14:37:49Z], ~U[2026-04-23 14:37:49Z]] 16:37:49.637 [debug] Current batch of media processed. Will check again in 1000ms 16:37:50.639 [debug] Current batch of media processed. Will check again in 1000ms 16:37:51.639 [debug] Current batch of media processed. Will check again in 1000ms 16:37:52.640 [debug] Current batch of media processed. Will check again in 1000ms 16:37:53.642 [debug] Current batch of media processed. Will check again in 1000ms 16:37:54.643 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "✅\u00A0Get 40% off 3 months of Coursera Plus: https://imp.i384100.net/c/2464514/3102764/14726\n\nThe sheer volume of updates in #Gemini 3.0 is overwhelming, but not every feature deserves your attention. After a month of testing the model with real-world workflows, I have narrowed down the five specific changes that actually impact professional productivity.\n\nThis breakdown covers how to use improved multimodal understanding to turn video into documentation, leveraging generative interfaces for dynamic data analysis, and why context engineering is replacing prompt engineering for reliable outputs.\n\n*TIMESTAMPS*\n00:00 How to use Google Gemini in 2026\n00:21 Improved Multimodal Understanding\n02:09 Better Use of Large Documents\n04:28 Enhanced Workspace Search\n07:03 Generative Interfaces\n10:11 Better Intent Understanding\n12:00 Bonus Tip!\n\n*RESOURCES MENTIONED*\n💪🏻\u00A0Google’s new People Management Course: https://imp.i384100.net/YR522K\n🤖\u00A0Essential Power Prompts: https://www.notion.com/templates/essential-power-prompts-jeff-su\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=195\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=XXX\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai #google", "duration" => 777, "filename" => "/downloads/Jeff Su/2025-12-16 Master Gemini 3.1 for Work in 12 Minutes (2026)/Master Gemini 3.1 for Work in 12 Minutes (2026) [bTLmt9BKGVc].mp4", "id" => "bTLmt9BKGVc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bTLmt9BKGVc", "playlist_index" => 8, "timestamp" => 1765886473, "title" => "Master Gemini 3.1 for Work in 12 Minutes (2026)", "upload_date" => "20251216"} 16:37:54.645 [debug] QUERY OK source="sources" db=1.3ms idle=1084.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:37:54.646 [debug] QUERY OK source="sources" db=0.3ms queue=0.2ms idle=1087.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:54.647 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1088.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 12:01:13Z], 1] 16:37:54.650 [debug] QUERY OK source="media_items" db=1.8ms idle=1067.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✅\u00A0Get 40% off 3 months of Coursera Plus: https://imp.i384100.net/c/2464514/3102764/14726\n\nThe sheer volume of updates in #Gemini 3.0 is overwhelming, but not every feature deserves your attention. After a month of testing the model with real-world workflows, I have narrowed down the five specific changes that actually impact professional productivity.\n\nThis breakdown covers how to use improved multimodal understanding to turn video into documentation, leveraging generative interfaces for dynamic data analysis, and why context engineering is replacing prompt engineering for reliable outputs.\n\n*TIMESTAMPS*\n00:00 How to use Google Gemini in 2026\n00:21 Improved Multimodal Understanding\n02:09 Better Use of Large Documents\n04:28 Enhanced Workspace Search\n07:03 Generative Interfaces\n10:11 Better Intent Understanding\n12:00 Bonus Tip!\n\n*RESOURCES MENTIONED*\n💪🏻\u00A0Google’s new People Management Course: https://imp.i384100.net/YR522K\n🤖\u00A0Essential Power Prompts: https://www.notion.com/templates/essential-power-prompts-jeff-su\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=195\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=XXX\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai #google", "Master Gemini 3.1 for Work in 12 Minutes (2026)", "24fa8a03-9be1-4bb7-b380-ee46437a18ff", false, "bTLmt9BKGVc", 1, [], 777, false, "https://www.youtube.com/watch?v=bTLmt9BKGVc", 8, "/downloads/Jeff Su/2025-12-16 Master Gemini 3.1 for Work in 12 Minutes (2026)/Master Gemini 3.1 for Work in 12 Minutes (2026) [bTLmt9BKGVc].mp4", false, false, 99, ~U[2025-12-16 12:01:13Z], ~U[2026-04-23 14:37:54Z], ~U[2026-04-23 14:37:54Z], "✅\u00A0Get 40% off 3 months of Coursera Plus: https://imp.i384100.net/c/2464514/3102764/14726\n\nThe sheer volume of updates in #Gemini 3.0 is overwhelming, but not every feature deserves your attention. After a month of testing the model with real-world workflows, I have narrowed down the five specific changes that actually impact professional productivity.\n\nThis breakdown covers how to use improved multimodal understanding to turn video into documentation, leveraging generative interfaces for dynamic data analysis, and why context engineering is replacing prompt engineering for reliable outputs.\n\n*TIMESTAMPS*\n00:00 How to use Google Gemini in 2026\n00:21 Improved Multimodal Understanding\n02:09 Better Use of Large Documents\n04:28 Enhanced Workspace Search\n07:03 Generative Interfaces\n10:11 Better Intent Understanding\n12:00 Bonus Tip!\n\n*RESOURCES MENTIONED*\n💪🏻\u00A0Google’s new People Management Course: https://imp.i384100.net/YR522K\n🤖\u00A0Essential Power Prompts: https://www.notion.com/templates/essential-power-prompts-jeff-su\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=195\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=XXX\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai #google", "Master Gemini 3.1 for Work in 12 Minutes (2026)", "bTLmt9BKGVc", 1, 777, false, "https://www.youtube.com/watch?v=bTLmt9BKGVc", "/downloads/Jeff Su/2025-12-16 Master Gemini 3.1 for Work in 12 Minutes (2026)/Master Gemini 3.1 for Work in 12 Minutes (2026) [bTLmt9BKGVc].mp4", false, ~U[2025-12-16 12:01:13Z]] 16:37:54.651 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=67.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:37:54.652 [debug] QUERY OK source="media_profiles" db=0.2ms idle=7.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:37:54.653 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [8] 16:37:54.653 [info] Kicking off download for media item #8 (bTLmt9BKGVc) 16:37:54.656 [debug] QUERY OK source="tasks" db=0.4ms idle=4.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [12, 8, ~U[2026-04-23 14:37:54Z], ~U[2026-04-23 14:37:54Z]] 16:37:54.656 [debug] Current batch of media processed. Will check again in 1000ms 16:37:55.657 [debug] Current batch of media processed. Will check again in 1000ms 16:37:56.658 [debug] Current batch of media processed. Will check again in 1000ms 16:37:57.659 [debug] Current batch of media processed. Will check again in 1000ms 16:37:58.661 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I walk you through three practical habits and one bonus system that turn tools like #ChatGPT, #Gemini, and Claude into a real AI-native workflow. You will learn how to leave AI breadcrumbs, build an AI swipe file, plan projects AI-first, and keep a living prompts database so you save time, improve quality, and stop rebuilding the same work from scratch.\n\n*TIMESTAMPS*\n00:00 How to become AI-Native\n00:37 Leave AI Breadcrumbs\n03:13 Build an AI Swipe File System\n05:20 AI-First Task Planning\n08:01 Bonus AI-Native Habit\n\n*RESOURCES MENTIONED*\nAI Course Waitlist: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=194\nEssential Prompts Collection: https://www.notion.so/templates/essential-power-prompts-jeff-su\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=194\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ainative", "duration" => 534, "filename" => "/downloads/Jeff Su/2025-12-04 Give Me 9 Minutes, I'll Make You AI-Native/Give Me 9 Minutes, I'll Make You AI-Native [E7YiKBeOneo].mp4", "id" => "E7YiKBeOneo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=E7YiKBeOneo", "playlist_index" => 9, "timestamp" => 1764853226, "title" => "Give Me 9 Minutes, I'll Make You AI-Native", "upload_date" => "20251204"} 16:37:58.662 [debug] QUERY OK source="sources" db=0.5ms idle=102.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:37:58.663 [debug] QUERY OK source="sources" db=1.0ms idle=103.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:58.664 [debug] QUERY OK source="media_items" db=0.2ms idle=104.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 13:00:26Z], 1] 16:37:58.666 [debug] QUERY OK source="media_items" db=1.4ms idle=105.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I walk you through three practical habits and one bonus system that turn tools like #ChatGPT, #Gemini, and Claude into a real AI-native workflow. You will learn how to leave AI breadcrumbs, build an AI swipe file, plan projects AI-first, and keep a living prompts database so you save time, improve quality, and stop rebuilding the same work from scratch.\n\n*TIMESTAMPS*\n00:00 How to become AI-Native\n00:37 Leave AI Breadcrumbs\n03:13 Build an AI Swipe File System\n05:20 AI-First Task Planning\n08:01 Bonus AI-Native Habit\n\n*RESOURCES MENTIONED*\nAI Course Waitlist: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=194\nEssential Prompts Collection: https://www.notion.so/templates/essential-power-prompts-jeff-su\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=194\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ainative", "Give Me 9 Minutes, I'll Make You AI-Native", "30fd0c21-212b-4682-b07e-0e101517bc96", false, "E7YiKBeOneo", 1, [], 534, false, "https://www.youtube.com/watch?v=E7YiKBeOneo", 9, "/downloads/Jeff Su/2025-12-04 Give Me 9 Minutes, I'll Make You AI-Native/Give Me 9 Minutes, I'll Make You AI-Native [E7YiKBeOneo].mp4", false, false, 99, ~U[2025-12-04 13:00:26Z], ~U[2026-04-23 14:37:58Z], ~U[2026-04-23 14:37:58Z], "In this video I walk you through three practical habits and one bonus system that turn tools like #ChatGPT, #Gemini, and Claude into a real AI-native workflow. You will learn how to leave AI breadcrumbs, build an AI swipe file, plan projects AI-first, and keep a living prompts database so you save time, improve quality, and stop rebuilding the same work from scratch.\n\n*TIMESTAMPS*\n00:00 How to become AI-Native\n00:37 Leave AI Breadcrumbs\n03:13 Build an AI Swipe File System\n05:20 AI-First Task Planning\n08:01 Bonus AI-Native Habit\n\n*RESOURCES MENTIONED*\nAI Course Waitlist: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=194\nEssential Prompts Collection: https://www.notion.so/templates/essential-power-prompts-jeff-su\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=194\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ainative", "Give Me 9 Minutes, I'll Make You AI-Native", "E7YiKBeOneo", 1, 534, false, "https://www.youtube.com/watch?v=E7YiKBeOneo", "/downloads/Jeff Su/2025-12-04 Give Me 9 Minutes, I'll Make You AI-Native/Give Me 9 Minutes, I'll Make You AI-Native [E7YiKBeOneo].mp4", false, ~U[2025-12-04 13:00:26Z]] 16:37:58.667 [debug] QUERY OK source="sources" db=0.2ms idle=73.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:37:58.668 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.3ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:37:58.669 [debug] QUERY OK source="media_items" db=1.0ms 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 [9] 16:37:58.669 [info] Kicking off download for media item #9 (E7YiKBeOneo) 16:37:58.672 [debug] QUERY OK source="tasks" db=0.2ms idle=4.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [13, 9, ~U[2026-04-23 14:37:58Z], ~U[2026-04-23 14:37:58Z]] 16:37:58.672 [debug] Current batch of media processed. Will check again in 1000ms 16:37:59.672 [debug] Current batch of media processed. Will check again in 1000ms 16:38:00.205 [info] {"source":"oban","duration":789,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:38:00.673 [debug] Current batch of media processed. Will check again in 1000ms 16:38:01.674 [debug] Current batch of media processed. Will check again in 1000ms 16:38:02.676 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🧠\u00A0Build Your Own Command Center: https://www.pressplay.cc/link/s/9BBC0F4D\n\nMost #Notion users keep their databases isolated, which means tasks, notes, and projects get jumbled together in confusing ways. The Relations feature changes that by connecting your databases so only relevant information shows up when you need it. This is the foundation of building powerful Notion #systems, and it takes about 2 minutes to learn.\n\nIn this video, you'll see exactly why typical Notion setups fall apart, how to connect databases using Relations, and how to build self-filtering #templates that automatically organize new projects. I'll walk through manual and automated approaches with a working example you can duplicate.\n\n*TIMESTAMPS*\n00:00 The Only Notion Feature You Need\n00:06 How Beginners Use Notion\n02:21 The Correct Way to Use Notion\n03:51 Connect Databases Using Relations\n05:33 Our New and Improved Notion Workflow\n10:04 Putting It All Together\n12:54 Taking It a Step Further\n\n*RESOURCES MENTIONED*\nNotion template (duplicate and follow along): https://www.jeffsu.org/master-80-of-notion-with-this-one-feature\nThe College Essay Playbook (free resource for students): https://themaychen.substack.com/?utm_source=youtube&utm_medium=video&utm_campaign=jeffsu\nCommand Center full course: https://www.pressplay.cc/link/s/9BBC0F4D\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=193\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=193\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#productivity", "duration" => 826, "filename" => "/downloads/Jeff Su/2025-11-18 Master 80% of Notion with this ONE Feature/Master 80% of Notion with this ONE Feature [4Fu23_l9F_o].mp4", "id" => "4Fu23_l9F_o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4Fu23_l9F_o", "playlist_index" => 10, "timestamp" => 1763470811, "title" => "Master 80% of Notion with this ONE Feature", "upload_date" => "20251118"} 16:38:02.677 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1077.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:38:02.678 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=118.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:02.680 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=119.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-18 13:00:11Z], 1] 16:38:02.683 [debug] QUERY OK source="media_items" db=2.5ms idle=121.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🧠\u00A0Build Your Own Command Center: https://www.pressplay.cc/link/s/9BBC0F4D\n\nMost #Notion users keep their databases isolated, which means tasks, notes, and projects get jumbled together in confusing ways. The Relations feature changes that by connecting your databases so only relevant information shows up when you need it. This is the foundation of building powerful Notion #systems, and it takes about 2 minutes to learn.\n\nIn this video, you'll see exactly why typical Notion setups fall apart, how to connect databases using Relations, and how to build self-filtering #templates that automatically organize new projects. I'll walk through manual and automated approaches with a working example you can duplicate.\n\n*TIMESTAMPS*\n00:00 The Only Notion Feature You Need\n00:06 How Beginners Use Notion\n02:21 The Correct Way to Use Notion\n03:51 Connect Databases Using Relations\n05:33 Our New and Improved Notion Workflow\n10:04 Putting It All Together\n12:54 Taking It a Step Further\n\n*RESOURCES MENTIONED*\nNotion template (duplicate and follow along): https://www.jeffsu.org/master-80-of-notion-with-this-one-feature\nThe College Essay Playbook (free resource for students): https://themaychen.substack.com/?utm_source=youtube&utm_medium=video&utm_campaign=jeffsu\nCommand Center full course: https://www.pressplay.cc/link/s/9BBC0F4D\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=193\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=193\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#productivity", "Master 80% of Notion with this ONE Feature", "d56bd765-644a-480c-b4dc-21f6525c1d1d", false, "4Fu23_l9F_o", 1, [], 826, false, "https://www.youtube.com/watch?v=4Fu23_l9F_o", 10, "/downloads/Jeff Su/2025-11-18 Master 80% of Notion with this ONE Feature/Master 80% of Notion with this ONE Feature [4Fu23_l9F_o].mp4", false, false, 99, ~U[2025-11-18 13:00:11Z], ~U[2026-04-23 14:38:02Z], ~U[2026-04-23 14:38:02Z], "🧠\u00A0Build Your Own Command Center: https://www.pressplay.cc/link/s/9BBC0F4D\n\nMost #Notion users keep their databases isolated, which means tasks, notes, and projects get jumbled together in confusing ways. The Relations feature changes that by connecting your databases so only relevant information shows up when you need it. This is the foundation of building powerful Notion #systems, and it takes about 2 minutes to learn.\n\nIn this video, you'll see exactly why typical Notion setups fall apart, how to connect databases using Relations, and how to build self-filtering #templates that automatically organize new projects. I'll walk through manual and automated approaches with a working example you can duplicate.\n\n*TIMESTAMPS*\n00:00 The Only Notion Feature You Need\n00:06 How Beginners Use Notion\n02:21 The Correct Way to Use Notion\n03:51 Connect Databases Using Relations\n05:33 Our New and Improved Notion Workflow\n10:04 Putting It All Together\n12:54 Taking It a Step Further\n\n*RESOURCES MENTIONED*\nNotion template (duplicate and follow along): https://www.jeffsu.org/master-80-of-notion-with-this-one-feature\nThe College Essay Playbook (free resource for students): https://themaychen.substack.com/?utm_source=youtube&utm_medium=video&utm_campaign=jeffsu\nCommand Center full course: https://www.pressplay.cc/link/s/9BBC0F4D\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=193\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=193\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#productivity", "Master 80% of Notion with this ONE Feature", "4Fu23_l9F_o", 1, 826, false, "https://www.youtube.com/watch?v=4Fu23_l9F_o", "/downloads/Jeff Su/2025-11-18 Master 80% of Notion with this ONE Feature/Master 80% of Notion with this ONE Feature [4Fu23_l9F_o].mp4", false, ~U[2025-11-18 13:00:11Z]] 16:38:02.684 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=83.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:38:02.686 [debug] QUERY OK source="media_profiles" db=0.8ms queue=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] 16:38:02.688 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=8.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10] 16:38:02.688 [info] Kicking off download for media item #10 (4Fu23_l9F_o) 16:38:02.694 [debug] QUERY OK source="tasks" db=0.5ms queue=0.2ms idle=8.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [14, 10, ~U[2026-04-23 14:38:02Z], ~U[2026-04-23 14:38:02Z]] 16:38:02.694 [debug] Current batch of media processed. Will check again in 1000ms 16:38:03.012 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=z9rdrNrkvDY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/f4/58/f45870e68878d640565c5b8e41027e652cb4e29681a6c93b9efc5bb48938861f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:38:03.049 [debug] Running yt-dlp command for action: download_thumbnail 16:38:03.050 [debug] QUERY OK source="settings" db=0.2ms idle=363.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:03.050 [debug] QUERY OK source="settings" db=0.2ms idle=362.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:03.051 [debug] QUERY OK source="settings" db=0.1ms idle=358.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:03.051 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=z9rdrNrkvDY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/1/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/8d/4a/8d4af6d2009c4a1b6cbf7d839d497cc7bf2ee5630aa14496e12d544efd98f557.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:38:03.694 [debug] Current batch of media processed. Will check again in 1000ms 16:38:04.695 [debug] Current batch of media processed. Will check again in 1000ms 16:38:05.696 [debug] Current batch of media processed. Will check again in 1000ms 16:38:06.697 [debug] Current batch of media processed. Will check again in 1000ms 16:38:07.699 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab HubSpot’s #ChatGPT ebook: https://clickhubspot.com/4f1519\n\nMost people waste hours going back and forth with ChatGPT, refining prompts until they finally get decent results. This video shows you four techniques that change that completely.\n\nYou'll learn how to reverse-engineer your best prompts, amplify one piece of content into multiple formats, use AI to critique its own work, and force ChatGPT to outline its reasoning before executing. Each technique is demonstrated with real examples you can apply immediately.\n\nThese methods have cut my AI workflow time in half, and they work across any role or industry.\n\n*TIMESTAMPS*\n00:00 Prompt Reversal Technique\n02:57 Free ChatGPT Resource\n03:35 The 5-Minute Amplifer\n06:06 The Red Team Technique\n08:09 Blueprint Scaffolding\n\n*RESOURCES MENTIONED*\nJoin the waitlist for my #AI Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=192\nWritten blogpost: https://www.jeffsu.org/4-chatgpt-hacks-that-cut-my-workload-in-half?utm_source=youtube&utm_medium=video&utm_campaign=192\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=192\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#productivity", "duration" => 649, "filename" => "/downloads/Jeff Su/2025-11-04 4 ChatGPT Hacks that Cut My Workload in Half/4 ChatGPT Hacks that Cut My Workload in Half [6hRO1q8vv60].mp4", "id" => "6hRO1q8vv60", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6hRO1q8vv60", "playlist_index" => 11, "timestamp" => 1762263008, "title" => "4 ChatGPT Hacks that Cut My Workload in Half", "upload_date" => "20251104"} 16:38:07.700 [debug] QUERY OK source="sources" db=0.3ms idle=1140.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:38:07.700 [debug] QUERY OK source="sources" db=0.2ms idle=1141.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:07.701 [debug] QUERY OK source="media_items" db=0.2ms idle=1141.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-04 13:30:08Z], 1] 16:38:07.703 [debug] QUERY OK source="media_items" db=1.6ms idle=1090.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab HubSpot’s #ChatGPT ebook: https://clickhubspot.com/4f1519\n\nMost people waste hours going back and forth with ChatGPT, refining prompts until they finally get decent results. This video shows you four techniques that change that completely.\n\nYou'll learn how to reverse-engineer your best prompts, amplify one piece of content into multiple formats, use AI to critique its own work, and force ChatGPT to outline its reasoning before executing. Each technique is demonstrated with real examples you can apply immediately.\n\nThese methods have cut my AI workflow time in half, and they work across any role or industry.\n\n*TIMESTAMPS*\n00:00 Prompt Reversal Technique\n02:57 Free ChatGPT Resource\n03:35 The 5-Minute Amplifer\n06:06 The Red Team Technique\n08:09 Blueprint Scaffolding\n\n*RESOURCES MENTIONED*\nJoin the waitlist for my #AI Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=192\nWritten blogpost: https://www.jeffsu.org/4-chatgpt-hacks-that-cut-my-workload-in-half?utm_source=youtube&utm_medium=video&utm_campaign=192\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=192\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#productivity", "4 ChatGPT Hacks that Cut My Workload in Half", "774bd2e6-cb8c-4b33-a945-2b4545eea9c7", false, "6hRO1q8vv60", 1, [], 649, false, "https://www.youtube.com/watch?v=6hRO1q8vv60", 11, "/downloads/Jeff Su/2025-11-04 4 ChatGPT Hacks that Cut My Workload in Half/4 ChatGPT Hacks that Cut My Workload in Half [6hRO1q8vv60].mp4", false, false, 99, ~U[2025-11-04 13:30:08Z], ~U[2026-04-23 14:38:07Z], ~U[2026-04-23 14:38:07Z], "Grab HubSpot’s #ChatGPT ebook: https://clickhubspot.com/4f1519\n\nMost people waste hours going back and forth with ChatGPT, refining prompts until they finally get decent results. This video shows you four techniques that change that completely.\n\nYou'll learn how to reverse-engineer your best prompts, amplify one piece of content into multiple formats, use AI to critique its own work, and force ChatGPT to outline its reasoning before executing. Each technique is demonstrated with real examples you can apply immediately.\n\nThese methods have cut my AI workflow time in half, and they work across any role or industry.\n\n*TIMESTAMPS*\n00:00 Prompt Reversal Technique\n02:57 Free ChatGPT Resource\n03:35 The 5-Minute Amplifer\n06:06 The Red Team Technique\n08:09 Blueprint Scaffolding\n\n*RESOURCES MENTIONED*\nJoin the waitlist for my #AI Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=192\nWritten blogpost: https://www.jeffsu.org/4-chatgpt-hacks-that-cut-my-workload-in-half?utm_source=youtube&utm_medium=video&utm_campaign=192\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=192\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#productivity", "4 ChatGPT Hacks that Cut My Workload in Half", "6hRO1q8vv60", 1, 649, false, "https://www.youtube.com/watch?v=6hRO1q8vv60", "/downloads/Jeff Su/2025-11-04 4 ChatGPT Hacks that Cut My Workload in Half/4 ChatGPT Hacks that Cut My Workload in Half [6hRO1q8vv60].mp4", false, ~U[2025-11-04 13:30:08Z]] 16:38:07.704 [debug] QUERY OK source="sources" db=0.3ms idle=90.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:07.706 [debug] QUERY OK source="media_profiles" db=1.2ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:38:07.708 [debug] QUERY OK source="media_items" db=1.4ms idle=5.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [11] 16:38:07.708 [info] Kicking off download for media item #11 (6hRO1q8vv60) 16:38:07.712 [debug] QUERY OK source="tasks" db=0.2ms idle=7.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [15, 11, ~U[2026-04-23 14:38:07Z], ~U[2026-04-23 14:38:07Z]] 16:38:07.712 [debug] Current batch of media processed. Will check again in 1000ms 16:38:08.704 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_uXnyhrqmsU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/c9/f7/c9f7cfe194d4a79626dc5859f276d04482e82822460c227ebbed1b7f651bb1cc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:38:08.715 [debug] Current batch of media processed. Will check again in 1000ms 16:38:08.754 [debug] Running yt-dlp command for action: download_thumbnail 16:38:08.755 [debug] QUERY OK source="settings" db=0.3ms queue=0.2ms idle=1046.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:08.756 [debug] QUERY OK source="settings" db=0.2ms idle=1045.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:08.756 [debug] QUERY OK source="settings" db=0.2ms idle=1044.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:08.756 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_uXnyhrqmsU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/2/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fa/b4/fab4c2bb9d77dbbe7223e8c4075fe48198b2f80ebb34f2409b3003868ba0be99.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:38:09.471 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=z9rdrNrkvDY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/1/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/8d/4a/8d4af6d2009c4a1b6cbf7d839d497cc7bf2ee5630aa14496e12d544efd98f557.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:38:09.472 [debug] QUERY OK db=0.0ms idle=1760.5ms begin [] 16:38:09.474 [debug] QUERY OK source="media_items" db=1.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:38:03Z], "/downloads/Jeff Su/2026-04-07 Learn 80% of Claude Cowork in Under 20 Minutes/Learn 80% of Claude Cowork in Under 20 Minutes [z9rdrNrkvDY].mp4", "/downloads/Jeff Su/2026-04-07 Learn 80% of Claude Cowork in Under 20 Minutes/Learn 80% of Claude Cowork in Under 20 Minutes [z9rdrNrkvDY].info.json", "/downloads/Jeff Su/2026-04-07 Learn 80% of Claude Cowork in Under 20 Minutes/Learn 80% of Claude Cowork in Under 20 Minutes [z9rdrNrkvDY].nfo", "/downloads/Jeff Su/2026-04-07 Learn 80% of Claude Cowork in Under 20 Minutes/Learn 80% of Claude Cowork in Under 20 Minutes [z9rdrNrkvDY]-thumb.jpg", ~U[2026-04-23 14:38:09Z], 1] 16:38:09.477 [debug] QUERY OK source="media_metadata" db=2.7ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/1/metadata.json.gz", "/config/metadata/media_items/1/thumbnail.jpg", 1, ~U[2026-04-23 14:38:09Z], ~U[2026-04-23 14:38:09Z]] 16:38:09.478 [debug] QUERY OK db=0.7ms commit [] 16:38:09.482 [debug] QUERY OK source="media_items" db=2.3ms queue=0.6ms idle=863.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [53422734, ~U[2026-04-23 14:38:09Z], 1] 16:38:09.482 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:38:09.483 [info] {"args":{"id":1},"id":5,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":46951183,"event":"job:stop","queue_time":530822,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:38:09.491 [info] {"args":{"id":3},"id":7,"meta":{},"system_time":1776955089491079382,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:38:09.494 [debug] QUERY OK source="media_items" db=2.4ms idle=735.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" = ?) [3] 16:38:09.495 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:38:09.497 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=17.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:38:09.498 [debug] QUERY OK source="media_profiles" db=0.9ms idle=15.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] 16:38:09.500 [debug] QUERY OK source="media_items" db=1.1ms idle=14.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 [3] 16:38:09.503 [debug] QUERY OK source="media_metadata" db=0.2ms idle=12.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [3] 16:38:09.506 [debug] QUERY OK source="media_profiles" db=2.1ms idle=10.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:38:09.508 [debug] QUERY OK source="settings" db=1.5ms 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 [] 16:38:09.510 [debug] QUERY OK source="settings" db=1.4ms 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 [] 16:38:09.512 [debug] Running yt-dlp command for action: get_downloadable_status 16:38:09.517 [debug] QUERY OK source="settings" db=0.8ms queue=0.7ms idle=16.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:09.518 [debug] QUERY OK source="settings" db=1.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 [] 16:38:09.520 [debug] QUERY OK source="settings" db=1.2ms 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 [] 16:38:09.520 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZpXN9M0WLQ4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/3c/83/3c83ad5d3467fd8bc12a78d3d10b442370f59636c67097ba04661e508658f7ce.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:38:09.715 [debug] Current batch of media processed. Will check again in 1000ms 16:38:10.717 [debug] Current batch of media processed. Will check again in 1000ms 16:38:11.718 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "📑\u00A0My blogpost on the CORE #workflow: https://www.jeffsu.org/i-taught-6-642-googlers-this-productivity-system\n\nI'm sharing the exact #productivity system I taught to over 6,600 Google employees over nine years.\n\nThe CORE workflow handles all four types of workplace information through a simple four-step process: Capture everything immediately, Organize with minimal friction, Review during scheduled sessions, and Engage by blocking time to execute.\n\nTrust me when I tell you it works with any tool you already use and becomes automatic within two weeks. No more relying on memory or willpower alone!\n\n*TIMESTAMPS*\n00:00 The Productivity System I Taught at Google\n00:28 The Basics\n01:05 The CORE Workflow in Action\n02:50 Why This Works\n04:10 Breaking Down the CORE Workflow\n06:53 Recap of My Productivity System\n\n*RESOURCES MENTIONED*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=191\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=191\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=191\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#google", "duration" => 491, "filename" => "/downloads/Jeff Su/2025-10-21 The Productivity System I Taught to 6,642 Googlers/The Productivity System I Taught to 6,642 Googlers [oO9GLC2iKy8].mp4", "id" => "oO9GLC2iKy8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oO9GLC2iKy8", "playlist_index" => 12, "timestamp" => 1761051698, "title" => "The Productivity System I Taught to 6,642 Googlers", "upload_date" => "20251021"} 16:38:11.721 [debug] QUERY OK source="sources" db=2.2ms queue=0.1ms idle=1159.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:38:11.723 [debug] QUERY OK source="sources" db=1.9ms idle=1162.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:11.725 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=1164.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-21 13:01:38Z], 1] 16:38:11.728 [debug] QUERY OK source="media_items" db=2.4ms idle=1106.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📑\u00A0My blogpost on the CORE #workflow: https://www.jeffsu.org/i-taught-6-642-googlers-this-productivity-system\n\nI'm sharing the exact #productivity system I taught to over 6,600 Google employees over nine years.\n\nThe CORE workflow handles all four types of workplace information through a simple four-step process: Capture everything immediately, Organize with minimal friction, Review during scheduled sessions, and Engage by blocking time to execute.\n\nTrust me when I tell you it works with any tool you already use and becomes automatic within two weeks. No more relying on memory or willpower alone!\n\n*TIMESTAMPS*\n00:00 The Productivity System I Taught at Google\n00:28 The Basics\n01:05 The CORE Workflow in Action\n02:50 Why This Works\n04:10 Breaking Down the CORE Workflow\n06:53 Recap of My Productivity System\n\n*RESOURCES MENTIONED*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=191\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=191\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=191\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#google", "The Productivity System I Taught to 6,642 Googlers", "bc9aa7d4-7c8c-460b-9246-d11c7cd55a8f", false, "oO9GLC2iKy8", 1, [], 491, false, "https://www.youtube.com/watch?v=oO9GLC2iKy8", 12, "/downloads/Jeff Su/2025-10-21 The Productivity System I Taught to 6,642 Googlers/The Productivity System I Taught to 6,642 Googlers [oO9GLC2iKy8].mp4", false, false, 99, ~U[2025-10-21 13:01:38Z], ~U[2026-04-23 14:38:11Z], ~U[2026-04-23 14:38:11Z], "📑\u00A0My blogpost on the CORE #workflow: https://www.jeffsu.org/i-taught-6-642-googlers-this-productivity-system\n\nI'm sharing the exact #productivity system I taught to over 6,600 Google employees over nine years.\n\nThe CORE workflow handles all four types of workplace information through a simple four-step process: Capture everything immediately, Organize with minimal friction, Review during scheduled sessions, and Engage by blocking time to execute.\n\nTrust me when I tell you it works with any tool you already use and becomes automatic within two weeks. No more relying on memory or willpower alone!\n\n*TIMESTAMPS*\n00:00 The Productivity System I Taught at Google\n00:28 The Basics\n01:05 The CORE Workflow in Action\n02:50 Why This Works\n04:10 Breaking Down the CORE Workflow\n06:53 Recap of My Productivity System\n\n*RESOURCES MENTIONED*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=191\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=191\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=191\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#google", "The Productivity System I Taught to 6,642 Googlers", "oO9GLC2iKy8", 1, 491, false, "https://www.youtube.com/watch?v=oO9GLC2iKy8", "/downloads/Jeff Su/2025-10-21 The Productivity System I Taught to 6,642 Googlers/The Productivity System I Taught to 6,642 Googlers [oO9GLC2iKy8].mp4", false, ~U[2025-10-21 13:01:38Z]] 16:38:11.729 [debug] QUERY OK source="sources" db=0.4ms idle=96.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:38:11.730 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=8.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] 16:38:11.730 [debug] QUERY OK source="media_items" db=0.3ms idle=7.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [12] 16:38:11.731 [info] Kicking off download for media item #12 (oO9GLC2iKy8) 16:38:11.733 [debug] QUERY OK source="tasks" db=0.6ms idle=3.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [16, 12, ~U[2026-04-23 14:38:11Z], ~U[2026-04-23 14:38:11Z]] 16:38:11.733 [debug] Current batch of media processed. Will check again in 1000ms 16:38:12.734 [debug] Current batch of media processed. Will check again in 1000ms 16:38:13.735 [debug] Current batch of media processed. Will check again in 1000ms 16:38:14.736 [debug] Current batch of media processed. Will check again in 1000ms 16:38:14.793 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_uXnyhrqmsU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/2/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fa/b4/fab4c2bb9d77dbbe7223e8c4075fe48198b2f80ebb34f2409b3003868ba0be99.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:38:14.796 [debug] QUERY OK db=0.6ms idle=1236.5ms begin [] 16:38:14.798 [debug] QUERY OK source="media_items" db=1.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:38:08Z], "/downloads/Jeff Su/2026-03-17 NotebookLM Changed Completely: Here's What Matters (in 2026)/NotebookLM Changed Completely: Here's What Matters (in 2026) [_uXnyhrqmsU].mp4", "/downloads/Jeff Su/2026-03-17 NotebookLM Changed Completely: Here's What Matters (in 2026)/NotebookLM Changed Completely: Here's What Matters (in 2026) [_uXnyhrqmsU].info.json", "/downloads/Jeff Su/2026-03-17 NotebookLM Changed Completely: Here's What Matters (in 2026)/NotebookLM Changed Completely: Here's What Matters (in 2026) [_uXnyhrqmsU].nfo", "/downloads/Jeff Su/2026-03-17 NotebookLM Changed Completely: Here's What Matters (in 2026)/NotebookLM Changed Completely: Here's What Matters (in 2026) [_uXnyhrqmsU]-thumb.jpg", ~U[2026-04-23 14:38:14Z], 2] 16:38:14.803 [debug] QUERY OK source="media_metadata" db=4.9ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/2/metadata.json.gz", "/config/metadata/media_items/2/thumbnail.jpg", 2, ~U[2026-04-23 14:38:14Z], ~U[2026-04-23 14:38:14Z]] 16:38:14.805 [debug] QUERY OK db=1.6ms commit [] 16:38:14.816 [debug] QUERY OK source="media_items" db=7.2ms idle=1250.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [61638762, ~U[2026-04-23 14:38:14Z], 2] 16:38:14.817 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:38:14.817 [info] {"args":{"id":2},"id":6,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":48264035,"event":"job:stop","queue_time":551884,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:38:14.836 [info] {"args":{"id":4},"id":8,"meta":{},"system_time":1776955094835962960,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:38:14.837 [debug] QUERY OK source="media_items" db=0.4ms idle=193.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [4] 16:38:14.837 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:38:14.837 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=32.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:14.838 [debug] QUERY OK source="media_profiles" db=0.2ms idle=21.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] 16:38:14.839 [debug] QUERY OK source="media_items" db=0.3ms idle=21.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 [4] 16:38:14.840 [debug] QUERY OK source="media_metadata" db=0.2ms idle=4.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [4] 16:38:14.841 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 16:38:14.842 [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 [] 16:38:14.842 [debug] QUERY OK source="settings" db=0.1ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:14.843 [debug] Running yt-dlp command for action: get_downloadable_status 16:38:14.844 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:38:14.844 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:38:14.845 [debug] QUERY OK source="settings" db=0.3ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:14.845 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=s_765enJBy8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/79/b1/79b1c48ba7cba70f85e239139dd5d564e1d09107a99324ba4488691d80d811fe.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:38:15.739 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "📈\u00A0Grab my AI Toolkit - https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=190\n\nForget the hype about #AI replacing Hollywood overnight. The reality is that although AI video tools are incredibly powerful, there's no magic button that creates entire videos with one prompt. The real challenge is consistency: getting your characters, voices, and scenes to stay the same across multiple clips.\n\nIn this video, I walk through the exact 4-step workflow I use to create multi-scene AI videos with consistent characters. We'll use Google Whisk, Flow, a custom Gemini Gem, and ElevenLabs to build a complete skit from scratch.\n\nNo BS, just the actual process.\n\n*TIMESTAMPS*\n00:00 The Reality of the AI Video Landscape\n00:25 Bottom Line Up Front\n04:15 Step 1\n06:34 Step 2\n08:53 Step 3\n12:43 Step 4\n14:56 Final Thoughts\n16:09 Sora 2 Rollout and Implications\n\n*RESOURCES MENTIONED*\nPrompts & Templates: https://www.jeffsu.org/the-reality-of-ai-video-a-no-bullshit-guide/\nOther free resources: https://www.jeffsu.org/links/?utm_source=youtube&utm_medium=video&utm_campaign=190\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=190\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=190\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#googlegemini #googleveo", "duration" => 1021, "filename" => "/downloads/Jeff Su/2025-10-07 How to Create Cinematic AI Videos (No-BS Guide)/How to Create Cinematic AI Videos (No-BS Guide) [0-0gFuDwmXI].mp4", "id" => "0-0gFuDwmXI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0-0gFuDwmXI", "playlist_index" => 13, "timestamp" => 1759840134, "title" => "How to Create Cinematic AI Videos (No-BS Guide)", "upload_date" => "20251007"} 16:38:15.740 [debug] QUERY OK source="sources" db=1.0ms idle=896.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:38:15.742 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=896.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:15.743 [debug] QUERY OK source="media_items" db=0.5ms queue=0.6ms idle=897.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-07 12:28:54Z], 1] 16:38:15.749 [debug] QUERY OK source="media_items" db=3.9ms idle=899.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📈\u00A0Grab my AI Toolkit - https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=190\n\nForget the hype about #AI replacing Hollywood overnight. The reality is that although AI video tools are incredibly powerful, there's no magic button that creates entire videos with one prompt. The real challenge is consistency: getting your characters, voices, and scenes to stay the same across multiple clips.\n\nIn this video, I walk through the exact 4-step workflow I use to create multi-scene AI videos with consistent characters. We'll use Google Whisk, Flow, a custom Gemini Gem, and ElevenLabs to build a complete skit from scratch.\n\nNo BS, just the actual process.\n\n*TIMESTAMPS*\n00:00 The Reality of the AI Video Landscape\n00:25 Bottom Line Up Front\n04:15 Step 1\n06:34 Step 2\n08:53 Step 3\n12:43 Step 4\n14:56 Final Thoughts\n16:09 Sora 2 Rollout and Implications\n\n*RESOURCES MENTIONED*\nPrompts & Templates: https://www.jeffsu.org/the-reality-of-ai-video-a-no-bullshit-guide/\nOther free resources: https://www.jeffsu.org/links/?utm_source=youtube&utm_medium=video&utm_campaign=190\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=190\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=190\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#googlegemini #googleveo", "How to Create Cinematic AI Videos (No-BS Guide)", "6825025b-26be-44e2-8687-b0de91b0d093", false, "0-0gFuDwmXI", 1, [], 1021, false, "https://www.youtube.com/watch?v=0-0gFuDwmXI", 13, "/downloads/Jeff Su/2025-10-07 How to Create Cinematic AI Videos (No-BS Guide)/How to Create Cinematic AI Videos (No-BS Guide) [0-0gFuDwmXI].mp4", false, false, 99, ~U[2025-10-07 12:28:54Z], ~U[2026-04-23 14:38:15Z], ~U[2026-04-23 14:38:15Z], "📈\u00A0Grab my AI Toolkit - https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=190\n\nForget the hype about #AI replacing Hollywood overnight. The reality is that although AI video tools are incredibly powerful, there's no magic button that creates entire videos with one prompt. The real challenge is consistency: getting your characters, voices, and scenes to stay the same across multiple clips.\n\nIn this video, I walk through the exact 4-step workflow I use to create multi-scene AI videos with consistent characters. We'll use Google Whisk, Flow, a custom Gemini Gem, and ElevenLabs to build a complete skit from scratch.\n\nNo BS, just the actual process.\n\n*TIMESTAMPS*\n00:00 The Reality of the AI Video Landscape\n00:25 Bottom Line Up Front\n04:15 Step 1\n06:34 Step 2\n08:53 Step 3\n12:43 Step 4\n14:56 Final Thoughts\n16:09 Sora 2 Rollout and Implications\n\n*RESOURCES MENTIONED*\nPrompts & Templates: https://www.jeffsu.org/the-reality-of-ai-video-a-no-bullshit-guide/\nOther free resources: https://www.jeffsu.org/links/?utm_source=youtube&utm_medium=video&utm_campaign=190\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=190\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=190\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#googlegemini #googleveo", "How to Create Cinematic AI Videos (No-BS Guide)", "0-0gFuDwmXI", 1, 1021, false, "https://www.youtube.com/watch?v=0-0gFuDwmXI", "/downloads/Jeff Su/2025-10-07 How to Create Cinematic AI Videos (No-BS Guide)/How to Create Cinematic AI Videos (No-BS Guide) [0-0gFuDwmXI].mp4", false, ~U[2025-10-07 12:28:54Z]] 16:38:15.751 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=104.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:38:15.753 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.1ms idle=10.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:38:15.755 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=11.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 [13] 16:38:15.755 [info] Kicking off download for media item #13 (0-0gFuDwmXI) 16:38:15.762 [debug] QUERY OK source="tasks" db=0.9ms queue=0.1ms idle=9.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [17, 13, ~U[2026-04-23 14:38:15Z], ~U[2026-04-23 14:38:15Z]] 16:38:15.762 [debug] Current batch of media processed. Will check again in 1000ms 16:38:15.920 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZpXN9M0WLQ4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/3c/83/3c83ad5d3467fd8bc12a78d3d10b442370f59636c67097ba04661e508658f7ce.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:38:15.921 [debug] Running yt-dlp command for action: download 16:38:15.922 [debug] QUERY OK source="settings" db=0.7ms idle=168.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:15.922 [debug] QUERY OK source="settings" db=0.1ms idle=167.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:15.923 [debug] QUERY OK source="settings" db=0.1ms 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 [] 16:38:15.923 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZpXN9M0WLQ4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8a/97/8a974fc76c1a0b509eba52a315c272b850471fec7dd3898d9ce8854907d6d4fa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:38:16.762 [debug] Current batch of media processed. Will check again in 1000ms 16:38:17.763 [debug] Current batch of media processed. Will check again in 1000ms 16:38:18.238 [info] {"source":"oban","duration":1023,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:38:18.764 [debug] Current batch of media processed. Will check again in 1000ms 16:38:19.766 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🦾\u00A0HubSpot’s #ChatGPT Playbook: https://clickhubspot.com/65d274\n\nIf your ChatGPT-5 results seem worse, it's not just you. #OpenAI fundamentally changed GPT-5’s architecture, which is why old prompting techniques are now less effective. After a month of testing, I've found 5 simple tips that dramatically improve your outputs. This video covers everything from easy \"nudge phrases\" that force deeper reasoning to advanced \"perfection loops\" for complex tasks, helping you master the new model.\n\n*TIMESTAMPS*\n00:00 Why ChatGPT-5 is WORSE than before\n00:34 Update #1 from OpenAI\n01:29 Update #2 from OpenAI\n02:10 Tip 1: Router Nudge Phrases\n04:32 Tip 2: Verbosity Control\n06:18 Tip 3: OpenAI’s Prompt Optimizer\n08:12 Tip 4: Create an XML Sandwich\n09:55 Tip 5: The Perfection Loop\n11:26 ChatGPT-5 Updates Recap\n\n*RESOURCES MENTIONED*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=189\nMy free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=189\nPrompts & Phrases from the video: https://www.jeffsu.org/chatgpt-5-prompting-best-practices\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=189\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "duration" => 710, "filename" => "/downloads/Jeff Su/2025-09-23 95% of People STILL Prompt ChatGPT-5 Wrong/95% of People STILL Prompt ChatGPT-5 Wrong [iRTK-jsfleg].mp4", "id" => "iRTK-jsfleg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=iRTK-jsfleg", "playlist_index" => 14, "timestamp" => 1758633309, "title" => "95% of People STILL Prompt ChatGPT-5 Wrong", "upload_date" => "20250923"} 16:38:19.769 [debug] QUERY OK source="sources" db=2.8ms queue=0.1ms idle=207.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:38:19.774 [debug] QUERY OK source="sources" db=3.7ms queue=0.1ms idle=211.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:19.777 [debug] QUERY OK source="media_items" db=3.0ms queue=0.1ms idle=215.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-23 13:15:09Z], 1] 16:38:19.782 [debug] QUERY OK source="media_items" db=3.9ms idle=219.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🦾\u00A0HubSpot’s #ChatGPT Playbook: https://clickhubspot.com/65d274\n\nIf your ChatGPT-5 results seem worse, it's not just you. #OpenAI fundamentally changed GPT-5’s architecture, which is why old prompting techniques are now less effective. After a month of testing, I've found 5 simple tips that dramatically improve your outputs. This video covers everything from easy \"nudge phrases\" that force deeper reasoning to advanced \"perfection loops\" for complex tasks, helping you master the new model.\n\n*TIMESTAMPS*\n00:00 Why ChatGPT-5 is WORSE than before\n00:34 Update #1 from OpenAI\n01:29 Update #2 from OpenAI\n02:10 Tip 1: Router Nudge Phrases\n04:32 Tip 2: Verbosity Control\n06:18 Tip 3: OpenAI’s Prompt Optimizer\n08:12 Tip 4: Create an XML Sandwich\n09:55 Tip 5: The Perfection Loop\n11:26 ChatGPT-5 Updates Recap\n\n*RESOURCES MENTIONED*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=189\nMy free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=189\nPrompts & Phrases from the video: https://www.jeffsu.org/chatgpt-5-prompting-best-practices\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=189\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "95% of People STILL Prompt ChatGPT-5 Wrong", "32e1faa7-db46-405f-a1ad-0a76e73ef00e", false, "iRTK-jsfleg", 1, [], 710, false, "https://www.youtube.com/watch?v=iRTK-jsfleg", 14, "/downloads/Jeff Su/2025-09-23 95% of People STILL Prompt ChatGPT-5 Wrong/95% of People STILL Prompt ChatGPT-5 Wrong [iRTK-jsfleg].mp4", false, false, 99, ~U[2025-09-23 13:15:09Z], ~U[2026-04-23 14:38:19Z], ~U[2026-04-23 14:38:19Z], "🦾\u00A0HubSpot’s #ChatGPT Playbook: https://clickhubspot.com/65d274\n\nIf your ChatGPT-5 results seem worse, it's not just you. #OpenAI fundamentally changed GPT-5’s architecture, which is why old prompting techniques are now less effective. After a month of testing, I've found 5 simple tips that dramatically improve your outputs. This video covers everything from easy \"nudge phrases\" that force deeper reasoning to advanced \"perfection loops\" for complex tasks, helping you master the new model.\n\n*TIMESTAMPS*\n00:00 Why ChatGPT-5 is WORSE than before\n00:34 Update #1 from OpenAI\n01:29 Update #2 from OpenAI\n02:10 Tip 1: Router Nudge Phrases\n04:32 Tip 2: Verbosity Control\n06:18 Tip 3: OpenAI’s Prompt Optimizer\n08:12 Tip 4: Create an XML Sandwich\n09:55 Tip 5: The Perfection Loop\n11:26 ChatGPT-5 Updates Recap\n\n*RESOURCES MENTIONED*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=189\nMy free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=189\nPrompts & Phrases from the video: https://www.jeffsu.org/chatgpt-5-prompting-best-practices\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=189\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "95% of People STILL Prompt ChatGPT-5 Wrong", "iRTK-jsfleg", 1, 710, false, "https://www.youtube.com/watch?v=iRTK-jsfleg", "/downloads/Jeff Su/2025-09-23 95% of People STILL Prompt ChatGPT-5 Wrong/95% of People STILL Prompt ChatGPT-5 Wrong [iRTK-jsfleg].mp4", false, ~U[2025-09-23 13:15:09Z]] 16:38:19.784 [debug] QUERY OK source="sources" db=1.4ms queue=0.2ms idle=125.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:19.787 [debug] QUERY OK source="media_profiles" db=1.0ms queue=1.1ms idle=15.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] 16:38:19.790 [debug] QUERY OK source="media_items" db=1.9ms idle=13.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 [14] 16:38:19.790 [info] Kicking off download for media item #14 (iRTK-jsfleg) 16:38:19.793 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=8.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [18, 14, ~U[2026-04-23 14:38:19Z], ~U[2026-04-23 14:38:19Z]] 16:38:19.794 [debug] Current batch of media processed. Will check again in 1000ms 16:38:20.794 [debug] Current batch of media processed. Will check again in 1000ms 16:38:21.033 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=s_765enJBy8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/79/b1/79b1c48ba7cba70f85e239139dd5d564e1d09107a99324ba4488691d80d811fe.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:38:21.034 [debug] Running yt-dlp command for action: download 16:38:21.034 [debug] QUERY OK source="settings" db=0.3ms idle=1244.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:21.035 [debug] QUERY OK source="settings" db=0.2ms idle=1242.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:21.035 [debug] QUERY OK source="settings" db=0.2ms idle=1242.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:21.035 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=s_765enJBy8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/38/32/3832eb81623deb5871eb54ba4ea80b8a2eab9871befdbd3370ef5c903c1020af.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:38:21.795 [debug] Current batch of media processed. Will check again in 1000ms 16:38:22.797 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "✅\u00A0Get 40% off 3 months of Coursera Plus: https://imp.i384100.net/c/2464514/3102764/14726\n\nMost #iPhone users tap through multiple screens just to use AI, but the top performers have built seamless workflows that make #AI feel native to their device.\n\nIn this video we go over 5 specific mobile habits that eliminate friction when using #ChatGPT, Claude, and #Gemini on your phone. You'll learn cross-app drag-and-drop techniques, system-level share sheet optimization, text replacement shortcuts for instant prompting, action button configurations for voice commands, and an advanced shortcut system for contextual AI actions.\n\n*TIMESTAMPS*\n00:00 How to use AI on iPhone\n00:42 #1: Drag to Ask\n02:19 #2: Instant Content Analysis\n04:57 How I Stay Ahead with AI\n05:47 The Prompt Snippet Keyboard\n07:59 Pocket Voice Command Launcher\n09:38 Smart Context Launcher\n\n*RESOURCES MENTIONED*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=188\nAI Actions Shortcut: https://www.icloud.com/shortcuts/d88093ef3e7944d2b53b4e30f19df7cd\nPrompt Templates: https://jeffsu.notion.site/jeff-su-5-iphone-ai-habits\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=188\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "duration" => 788, "filename" => "/downloads/Jeff Su/2025-09-09 My Top 5 AI Tips for iPhone Users!/My Top 5 AI Tips for iPhone Users! [ZEyRtkNmcEQ].mp4", "id" => "ZEyRtkNmcEQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZEyRtkNmcEQ", "playlist_index" => 15, "timestamp" => 1757422864, "title" => "My Top 5 AI Tips for iPhone Users!", "upload_date" => "20250909"} 16:38:22.798 [debug] QUERY OK source="sources" db=0.4ms idle=1135.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:38:22.799 [debug] QUERY OK source="sources" db=0.3ms idle=239.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:22.799 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=240.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-09 13:01:04Z], 1] 16:38:22.802 [debug] QUERY OK source="media_items" db=2.1ms idle=241.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✅\u00A0Get 40% off 3 months of Coursera Plus: https://imp.i384100.net/c/2464514/3102764/14726\n\nMost #iPhone users tap through multiple screens just to use AI, but the top performers have built seamless workflows that make #AI feel native to their device.\n\nIn this video we go over 5 specific mobile habits that eliminate friction when using #ChatGPT, Claude, and #Gemini on your phone. You'll learn cross-app drag-and-drop techniques, system-level share sheet optimization, text replacement shortcuts for instant prompting, action button configurations for voice commands, and an advanced shortcut system for contextual AI actions.\n\n*TIMESTAMPS*\n00:00 How to use AI on iPhone\n00:42 #1: Drag to Ask\n02:19 #2: Instant Content Analysis\n04:57 How I Stay Ahead with AI\n05:47 The Prompt Snippet Keyboard\n07:59 Pocket Voice Command Launcher\n09:38 Smart Context Launcher\n\n*RESOURCES MENTIONED*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=188\nAI Actions Shortcut: https://www.icloud.com/shortcuts/d88093ef3e7944d2b53b4e30f19df7cd\nPrompt Templates: https://jeffsu.notion.site/jeff-su-5-iphone-ai-habits\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=188\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "My Top 5 AI Tips for iPhone Users!", "7bf501b7-1f1d-44e6-ab12-61d74751c82d", false, "ZEyRtkNmcEQ", 1, [], 788, false, "https://www.youtube.com/watch?v=ZEyRtkNmcEQ", 15, "/downloads/Jeff Su/2025-09-09 My Top 5 AI Tips for iPhone Users!/My Top 5 AI Tips for iPhone Users! [ZEyRtkNmcEQ].mp4", false, false, 99, ~U[2025-09-09 13:01:04Z], ~U[2026-04-23 14:38:22Z], ~U[2026-04-23 14:38:22Z], "✅\u00A0Get 40% off 3 months of Coursera Plus: https://imp.i384100.net/c/2464514/3102764/14726\n\nMost #iPhone users tap through multiple screens just to use AI, but the top performers have built seamless workflows that make #AI feel native to their device.\n\nIn this video we go over 5 specific mobile habits that eliminate friction when using #ChatGPT, Claude, and #Gemini on your phone. You'll learn cross-app drag-and-drop techniques, system-level share sheet optimization, text replacement shortcuts for instant prompting, action button configurations for voice commands, and an advanced shortcut system for contextual AI actions.\n\n*TIMESTAMPS*\n00:00 How to use AI on iPhone\n00:42 #1: Drag to Ask\n02:19 #2: Instant Content Analysis\n04:57 How I Stay Ahead with AI\n05:47 The Prompt Snippet Keyboard\n07:59 Pocket Voice Command Launcher\n09:38 Smart Context Launcher\n\n*RESOURCES MENTIONED*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=188\nAI Actions Shortcut: https://www.icloud.com/shortcuts/d88093ef3e7944d2b53b4e30f19df7cd\nPrompt Templates: https://jeffsu.notion.site/jeff-su-5-iphone-ai-habits\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=188\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "My Top 5 AI Tips for iPhone Users!", "ZEyRtkNmcEQ", 1, 788, false, "https://www.youtube.com/watch?v=ZEyRtkNmcEQ", "/downloads/Jeff Su/2025-09-09 My Top 5 AI Tips for iPhone Users!/My Top 5 AI Tips for iPhone Users! [ZEyRtkNmcEQ].mp4", false, ~U[2025-09-09 13:01:04Z]] 16:38:22.803 [debug] QUERY OK source="sources" db=0.4ms idle=139.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:38:22.804 [debug] QUERY OK source="media_profiles" db=0.5ms queue=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] 16:38:22.805 [debug] QUERY OK source="media_items" db=0.4ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [15] 16:38:22.805 [info] Kicking off download for media item #15 (ZEyRtkNmcEQ) 16:38:22.808 [debug] QUERY OK source="tasks" db=0.4ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [19, 15, ~U[2026-04-23 14:38:22Z], ~U[2026-04-23 14:38:22Z]] 16:38:22.809 [debug] Current batch of media processed. Will check again in 1000ms 16:38:23.809 [debug] Current batch of media processed. Will check again in 1000ms 16:38:24.810 [debug] Current batch of media processed. Will check again in 1000ms 16:38:25.812 [debug] Current batch of media processed. Will check again in 1000ms 16:38:26.812 [debug] Current batch of media processed. Will check again in 1000ms 16:38:27.814 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "➡️\u00A0HubSpot’s free AI Agents Playbook: https://clickhubspot.com/f034de\n\nAI tools like #ChatGPT and Gemini are supposed to make us “more productive” but oftentimes the friction of using these tools is just high enough that we default to our old, and less efficient workflows.\n\nIn this video we’ll go through three daily habits that eliminate that friction completely: global keyboard shortcuts that launch AI from anywhere, text expanders that deploy complex prompts instantly, and the prompt multiplier method for high-stakes decisions.\n\nThese techniques work across ALL AI tools (i.e. they’re platform-agnostic) and involves only simple setup steps that take minutes but save hours.\n\n*TIMESTAMPS*\n00:00 AI Habits that Save Me 20+ Hours a Week\n01:20 The Everywhere AI Shortcut\n04:35 Utilize Text Expanders\n07:13 The Prompt Multiplier Method\n09:44 Bonus Tip!\n\n*RESOURCES MENTIONED*\nMy AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=187\nTools: https://www.jeffsu.org/3-ai-habits-that-saves-me-20-hours-a-week\nPrompts: https://jeffsu.notion.site/jeff-su-3-ai-habits-prompts?source=copy_link\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=187\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=187\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai #claude", "duration" => 650, "filename" => "/downloads/Jeff Su/2025-08-27 3 AI Habits So Powerful It Feels Like Cheating/3 AI Habits So Powerful It Feels Like Cheating [31cp_OXKzkI].mp4", "id" => "31cp_OXKzkI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=31cp_OXKzkI", "playlist_index" => 16, "timestamp" => 1756305001, "title" => "3 AI Habits So Powerful It Feels Like Cheating", "upload_date" => "20250827"} 16:38:27.815 [debug] QUERY OK source="sources" db=0.3ms idle=1255.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:38:27.815 [debug] QUERY OK source="sources" db=0.2ms idle=1256.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:27.816 [debug] QUERY OK source="media_items" db=0.4ms idle=1256.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-27 14:30:01Z], 1] 16:38:27.820 [debug] QUERY OK source="media_items" db=3.4ms idle=1144.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["➡️\u00A0HubSpot’s free AI Agents Playbook: https://clickhubspot.com/f034de\n\nAI tools like #ChatGPT and Gemini are supposed to make us “more productive” but oftentimes the friction of using these tools is just high enough that we default to our old, and less efficient workflows.\n\nIn this video we’ll go through three daily habits that eliminate that friction completely: global keyboard shortcuts that launch AI from anywhere, text expanders that deploy complex prompts instantly, and the prompt multiplier method for high-stakes decisions.\n\nThese techniques work across ALL AI tools (i.e. they’re platform-agnostic) and involves only simple setup steps that take minutes but save hours.\n\n*TIMESTAMPS*\n00:00 AI Habits that Save Me 20+ Hours a Week\n01:20 The Everywhere AI Shortcut\n04:35 Utilize Text Expanders\n07:13 The Prompt Multiplier Method\n09:44 Bonus Tip!\n\n*RESOURCES MENTIONED*\nMy AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=187\nTools: https://www.jeffsu.org/3-ai-habits-that-saves-me-20-hours-a-week\nPrompts: https://jeffsu.notion.site/jeff-su-3-ai-habits-prompts?source=copy_link\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=187\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=187\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai #claude", "3 AI Habits So Powerful It Feels Like Cheating", "3f596f06-2738-42b1-8fb6-50e028bc8e91", false, "31cp_OXKzkI", 1, [], 650, false, "https://www.youtube.com/watch?v=31cp_OXKzkI", 16, "/downloads/Jeff Su/2025-08-27 3 AI Habits So Powerful It Feels Like Cheating/3 AI Habits So Powerful It Feels Like Cheating [31cp_OXKzkI].mp4", false, false, 99, ~U[2025-08-27 14:30:01Z], ~U[2026-04-23 14:38:27Z], ~U[2026-04-23 14:38:27Z], "➡️\u00A0HubSpot’s free AI Agents Playbook: https://clickhubspot.com/f034de\n\nAI tools like #ChatGPT and Gemini are supposed to make us “more productive” but oftentimes the friction of using these tools is just high enough that we default to our old, and less efficient workflows.\n\nIn this video we’ll go through three daily habits that eliminate that friction completely: global keyboard shortcuts that launch AI from anywhere, text expanders that deploy complex prompts instantly, and the prompt multiplier method for high-stakes decisions.\n\nThese techniques work across ALL AI tools (i.e. they’re platform-agnostic) and involves only simple setup steps that take minutes but save hours.\n\n*TIMESTAMPS*\n00:00 AI Habits that Save Me 20+ Hours a Week\n01:20 The Everywhere AI Shortcut\n04:35 Utilize Text Expanders\n07:13 The Prompt Multiplier Method\n09:44 Bonus Tip!\n\n*RESOURCES MENTIONED*\nMy AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=187\nTools: https://www.jeffsu.org/3-ai-habits-that-saves-me-20-hours-a-week\nPrompts: https://jeffsu.notion.site/jeff-su-3-ai-habits-prompts?source=copy_link\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=187\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=187\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai #claude", "3 AI Habits So Powerful It Feels Like Cheating", "31cp_OXKzkI", 1, 650, false, "https://www.youtube.com/watch?v=31cp_OXKzkI", "/downloads/Jeff Su/2025-08-27 3 AI Habits So Powerful It Feels Like Cheating/3 AI Habits So Powerful It Feels Like Cheating [31cp_OXKzkI].mp4", false, ~U[2025-08-27 14:30:01Z]] 16:38:27.821 [debug] QUERY OK source="sources" db=0.3ms idle=146.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:27.822 [debug] QUERY OK source="media_profiles" db=0.8ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:38:27.823 [debug] QUERY OK source="media_items" db=0.3ms idle=7.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [16] 16:38:27.823 [info] Kicking off download for media item #16 (31cp_OXKzkI) 16:38:27.825 [debug] QUERY OK source="tasks" db=0.2ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [20, 16, ~U[2026-04-23 14:38:27Z], ~U[2026-04-23 14:38:27Z]] 16:38:27.825 [debug] Current batch of media processed. Will check again in 1000ms 16:38:28.826 [debug] Current batch of media processed. Will check again in 1000ms 16:38:29.827 [debug] Current batch of media processed. Will check again in 1000ms 16:38:30.828 [debug] Current batch of media processed. Will check again in 1000ms 16:38:31.830 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🌟 Build Your Command Center in Notion - https://www.pressplay.cc/link/s/F8236D6B\n\nCreate your first AI agent in three simple steps using n8n! This tutorial shows you how to create an automated subscription tracker that processes natural language input and updates Google Sheets automatically.\n\nYou'll learn to configure the agent's brain (chat model and memory), connect tools like Google Sheets, and write system prompts that control agent behavior. Perfect for non-technical users ready to transition from using AI tools to actually building with them.\n\n*TIMESTAMPS*\n00:00 Build Your First AI Agent\n00:29 Refresher on AI Agents\n01:20 Getting Started on n8n\n02:54 Why Bother?\n03:32 Step 1: Building the Brain\n08:21 Step 2: Connecting the Tools\n10:38 Step 3: Activating the Brainstem\n12:21 Testing our AI Agent\n14:56 Beyond the Basics\n\n*RESOURCES MENTIONED*\nOpenAI API Setup: https://platform.openai.com/\nChatGPT System Prompt Template: https://www.jeffsu.org/build-your-first-ai-agent-in-n8n-a-step-by-step-guide\nNotion Command Center System: https://www.pressplay.cc/link/s/F8236D6B\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=186\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=186\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#aiagents #ai #automation", "duration" => 1018, "filename" => "/downloads/Jeff Su/2025-08-12 The AI Agent Tutorial That Should've Been Your First (no code)/The AI Agent Tutorial That Should've Been Your First (no code) [GchXMRwuWxE].mp4", "id" => "GchXMRwuWxE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GchXMRwuWxE", "playlist_index" => 17, "timestamp" => 1755003635, "title" => "The AI Agent Tutorial That Should've Been Your First (no code)", "upload_date" => "20250812"} 16:38:31.831 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=271.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:38:31.832 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=272.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:31.832 [debug] QUERY OK source="media_items" db=0.2ms idle=273.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-12 13:00:35Z], 1] 16:38:33.237 [debug] QUERY OK source="media_items" db=1402.8ms idle=274.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🌟 Build Your Command Center in Notion - https://www.pressplay.cc/link/s/F8236D6B\n\nCreate your first AI agent in three simple steps using n8n! This tutorial shows you how to create an automated subscription tracker that processes natural language input and updates Google Sheets automatically.\n\nYou'll learn to configure the agent's brain (chat model and memory), connect tools like Google Sheets, and write system prompts that control agent behavior. Perfect for non-technical users ready to transition from using AI tools to actually building with them.\n\n*TIMESTAMPS*\n00:00 Build Your First AI Agent\n00:29 Refresher on AI Agents\n01:20 Getting Started on n8n\n02:54 Why Bother?\n03:32 Step 1: Building the Brain\n08:21 Step 2: Connecting the Tools\n10:38 Step 3: Activating the Brainstem\n12:21 Testing our AI Agent\n14:56 Beyond the Basics\n\n*RESOURCES MENTIONED*\nOpenAI API Setup: https://platform.openai.com/\nChatGPT System Prompt Template: https://www.jeffsu.org/build-your-first-ai-agent-in-n8n-a-step-by-step-guide\nNotion Command Center System: https://www.pressplay.cc/link/s/F8236D6B\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=186\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=186\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#aiagents #ai #automation", "The AI Agent Tutorial That Should've Been Your First (no code)", "4bf1fabe-a395-4a09-b21b-75a48e3f260a", false, "GchXMRwuWxE", 1, [], 1018, false, "https://www.youtube.com/watch?v=GchXMRwuWxE", 17, "/downloads/Jeff Su/2025-08-12 The AI Agent Tutorial That Should've Been Your First (no code)/The AI Agent Tutorial That Should've Been Your First (no code) [GchXMRwuWxE].mp4", false, false, 99, ~U[2025-08-12 13:00:35Z], ~U[2026-04-23 14:38:31Z], ~U[2026-04-23 14:38:31Z], "🌟 Build Your Command Center in Notion - https://www.pressplay.cc/link/s/F8236D6B\n\nCreate your first AI agent in three simple steps using n8n! This tutorial shows you how to create an automated subscription tracker that processes natural language input and updates Google Sheets automatically.\n\nYou'll learn to configure the agent's brain (chat model and memory), connect tools like Google Sheets, and write system prompts that control agent behavior. Perfect for non-technical users ready to transition from using AI tools to actually building with them.\n\n*TIMESTAMPS*\n00:00 Build Your First AI Agent\n00:29 Refresher on AI Agents\n01:20 Getting Started on n8n\n02:54 Why Bother?\n03:32 Step 1: Building the Brain\n08:21 Step 2: Connecting the Tools\n10:38 Step 3: Activating the Brainstem\n12:21 Testing our AI Agent\n14:56 Beyond the Basics\n\n*RESOURCES MENTIONED*\nOpenAI API Setup: https://platform.openai.com/\nChatGPT System Prompt Template: https://www.jeffsu.org/build-your-first-ai-agent-in-n8n-a-step-by-step-guide\nNotion Command Center System: https://www.pressplay.cc/link/s/F8236D6B\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=186\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=186\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#aiagents #ai #automation", "The AI Agent Tutorial That Should've Been Your First (no code)", "GchXMRwuWxE", 1, 1018, false, "https://www.youtube.com/watch?v=GchXMRwuWxE", "/downloads/Jeff Su/2025-08-12 The AI Agent Tutorial That Should've Been Your First (no code)/The AI Agent Tutorial That Should've Been Your First (no code) [GchXMRwuWxE].mp4", false, ~U[2025-08-12 13:00:35Z]] 16:38:33.238 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1405.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:38:33.239 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=1406.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] 16:38:33.240 [debug] QUERY OK source="media_items" db=0.6ms idle=1407.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 [17] 16:38:33.241 [info] Kicking off download for media item #17 (GchXMRwuWxE) 16:38:33.251 [debug] QUERY OK source="tasks" db=7.1ms idle=5.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [21, 17, ~U[2026-04-23 14:38:33Z], ~U[2026-04-23 14:38:33Z]] 16:38:33.251 [debug] Current batch of media processed. Will check again in 1000ms 16:38:34.252 [debug] Current batch of media processed. Will check again in 1000ms 16:38:35.253 [debug] Current batch of media processed. Will check again in 1000ms 16:38:36.255 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\n\nAfter 9 years at #Google and interviewing hundreds of non-technical candidates, I'm sharing the insider strategies that actually work; based on real #hiring data and firsthand experience from both sides of the #interview table.\n\nLet’s dive in!\n\n*TIMESTAMPS*\n00:00 How to join Google\n00:12 Strategy #1\n02:13 Strategy #2\n04:01 Strategy #3\n06:22 Strategy #4\n07:29 Strategy #5\n09:12 Strategy #6\n\n*RESOURCES MENTIONED*\nThe\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\nGoogle Ads webinars: https://adsonair.withgoogle.com/\nMy Job Search Playlist: https://www.youtube.com/watch?v=Tt08KmFfIYQ&list=PLo-kPya_Ww2x1PzbqzmPPC5v7fCYhrK4z\nCase Interview Secrets: https://amzn.to/4o4XtUB\nCase in Point: https://amzn.to/3IPkGdm\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "duration" => 636, "filename" => "/downloads/Jeff Su/2025-07-29 My Brutally Honest Advice About Joining Google (after 9 years)/My Brutally Honest Advice About Joining Google (after 9 years) [O_L5M8VojLs].mp4", "id" => "O_L5M8VojLs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=O_L5M8VojLs", "playlist_index" => 18, "timestamp" => 1753794046, "title" => "My Brutally Honest Advice About Joining Google (after 9 years)", "upload_date" => "20250729"} 16:38:36.255 [debug] QUERY OK source="sources" db=0.2ms idle=1020.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:38:36.256 [debug] QUERY OK source="sources" db=0.3ms idle=1021.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:36.257 [debug] QUERY OK source="media_items" db=0.2ms idle=1021.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-29 13:00:46Z], 1] 16:38:36.259 [debug] QUERY OK source="media_items" db=1.7ms idle=1014.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\n\nAfter 9 years at #Google and interviewing hundreds of non-technical candidates, I'm sharing the insider strategies that actually work; based on real #hiring data and firsthand experience from both sides of the #interview table.\n\nLet’s dive in!\n\n*TIMESTAMPS*\n00:00 How to join Google\n00:12 Strategy #1\n02:13 Strategy #2\n04:01 Strategy #3\n06:22 Strategy #4\n07:29 Strategy #5\n09:12 Strategy #6\n\n*RESOURCES MENTIONED*\nThe\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\nGoogle Ads webinars: https://adsonair.withgoogle.com/\nMy Job Search Playlist: https://www.youtube.com/watch?v=Tt08KmFfIYQ&list=PLo-kPya_Ww2x1PzbqzmPPC5v7fCYhrK4z\nCase Interview Secrets: https://amzn.to/4o4XtUB\nCase in Point: https://amzn.to/3IPkGdm\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "My Brutally Honest Advice About Joining Google (after 9 years)", "31b8de94-f7cd-4303-87fd-e72e7e2da4d5", false, "O_L5M8VojLs", 1, [], 636, false, "https://www.youtube.com/watch?v=O_L5M8VojLs", 18, "/downloads/Jeff Su/2025-07-29 My Brutally Honest Advice About Joining Google (after 9 years)/My Brutally Honest Advice About Joining Google (after 9 years) [O_L5M8VojLs].mp4", false, false, 99, ~U[2025-07-29 13:00:46Z], ~U[2026-04-23 14:38:36Z], ~U[2026-04-23 14:38:36Z], "The Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\n\nAfter 9 years at #Google and interviewing hundreds of non-technical candidates, I'm sharing the insider strategies that actually work; based on real #hiring data and firsthand experience from both sides of the #interview table.\n\nLet’s dive in!\n\n*TIMESTAMPS*\n00:00 How to join Google\n00:12 Strategy #1\n02:13 Strategy #2\n04:01 Strategy #3\n06:22 Strategy #4\n07:29 Strategy #5\n09:12 Strategy #6\n\n*RESOURCES MENTIONED*\nThe\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\nGoogle Ads webinars: https://adsonair.withgoogle.com/\nMy Job Search Playlist: https://www.youtube.com/watch?v=Tt08KmFfIYQ&list=PLo-kPya_Ww2x1PzbqzmPPC5v7fCYhrK4z\nCase Interview Secrets: https://amzn.to/4o4XtUB\nCase in Point: https://amzn.to/3IPkGdm\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "My Brutally Honest Advice About Joining Google (after 9 years)", "O_L5M8VojLs", 1, 636, false, "https://www.youtube.com/watch?v=O_L5M8VojLs", "/downloads/Jeff Su/2025-07-29 My Brutally Honest Advice About Joining Google (after 9 years)/My Brutally Honest Advice About Joining Google (after 9 years) [O_L5M8VojLs].mp4", false, ~U[2025-07-29 13:00:46Z]] 16:38:36.260 [debug] QUERY OK source="sources" db=0.3ms idle=14.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:38:36.261 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:38:36.261 [debug] QUERY OK source="media_items" db=0.3ms idle=4.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [18] 16:38:36.261 [info] Kicking off download for media item #18 (O_L5M8VojLs) 16:38:36.264 [debug] QUERY OK source="tasks" db=0.3ms idle=3.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [22, 18, ~U[2026-04-23 14:38:36Z], ~U[2026-04-23 14:38:36Z]] 16:38:36.264 [debug] Current batch of media processed. Will check again in 1000ms 16:38:37.266 [debug] Current batch of media processed. Will check again in 1000ms 16:38:38.266 [debug] Current batch of media processed. Will check again in 1000ms 16:38:39.267 [debug] Current batch of media processed. Will check again in 1000ms 16:38:40.268 [debug] Current batch of media processed. Will check again in 1000ms 16:38:41.270 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "➡️\u00A0Coursera Data Analysis course (40% off for 3 months): https://imp.i384100.net/c/2464514/3102764/14726\n\nLearn how to analyze any dataset in minutes using #ChatGPT and the proven DIG framework. This practical guide shows you how to turn ChatGPT into your personal data analyst without any technical skills required.\n\nPerfect for professionals who work with spreadsheets but lack formal data analysis training!\n\n*TIMESTAMPS*\n00:00 ChatGPT for Data Analysis\n00:45 The DIG Data Analysis Framework\n01:49 Step 1: Description\n05:31 Step 2: Introspection\n09:16 Step 3: Goal Setting\n10:55 Bonus Prompt\n\n*RESOURCES MENTIONED*\nDIG Framework prompts: https://jeffsu.notion.site/184-data-analysis-resources\nApple TV+ sample dataset: https://jeffsu.notion.site/184-data-analysis-resources\nhttps://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=184\nChatGPT Pro Tips video: https://youtu.be/p3840QxlYzc\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=184\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dataanalysis", "duration" => 714, "filename" => "/downloads/Jeff Su/2025-07-15 Master Data Analysis with ChatGPT (in just 12 minutes)/Master Data Analysis with ChatGPT (in just 12 minutes) [FKLr3ft8ea0].mp4", "id" => "FKLr3ft8ea0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FKLr3ft8ea0", "playlist_index" => 19, "timestamp" => 1752584436, "title" => "Master Data Analysis with ChatGPT (in just 12 minutes)", "upload_date" => "20250715"} 16:38:41.271 [debug] QUERY OK source="sources" db=1.2ms idle=1035.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:38:41.272 [debug] QUERY OK source="sources" db=0.3ms idle=1037.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:41.273 [debug] QUERY OK source="media_items" db=0.3ms idle=1037.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-15 13:00:36Z], 1] 16:38:41.276 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=1020.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["➡️\u00A0Coursera Data Analysis course (40% off for 3 months): https://imp.i384100.net/c/2464514/3102764/14726\n\nLearn how to analyze any dataset in minutes using #ChatGPT and the proven DIG framework. This practical guide shows you how to turn ChatGPT into your personal data analyst without any technical skills required.\n\nPerfect for professionals who work with spreadsheets but lack formal data analysis training!\n\n*TIMESTAMPS*\n00:00 ChatGPT for Data Analysis\n00:45 The DIG Data Analysis Framework\n01:49 Step 1: Description\n05:31 Step 2: Introspection\n09:16 Step 3: Goal Setting\n10:55 Bonus Prompt\n\n*RESOURCES MENTIONED*\nDIG Framework prompts: https://jeffsu.notion.site/184-data-analysis-resources\nApple TV+ sample dataset: https://jeffsu.notion.site/184-data-analysis-resources\nhttps://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=184\nChatGPT Pro Tips video: https://youtu.be/p3840QxlYzc\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=184\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dataanalysis", "Master Data Analysis with ChatGPT (in just 12 minutes)", "7d92dfb3-6446-4f2a-ae83-fa184b2f6f1f", false, "FKLr3ft8ea0", 1, [], 714, false, "https://www.youtube.com/watch?v=FKLr3ft8ea0", 19, "/downloads/Jeff Su/2025-07-15 Master Data Analysis with ChatGPT (in just 12 minutes)/Master Data Analysis with ChatGPT (in just 12 minutes) [FKLr3ft8ea0].mp4", false, false, 99, ~U[2025-07-15 13:00:36Z], ~U[2026-04-23 14:38:41Z], ~U[2026-04-23 14:38:41Z], "➡️\u00A0Coursera Data Analysis course (40% off for 3 months): https://imp.i384100.net/c/2464514/3102764/14726\n\nLearn how to analyze any dataset in minutes using #ChatGPT and the proven DIG framework. This practical guide shows you how to turn ChatGPT into your personal data analyst without any technical skills required.\n\nPerfect for professionals who work with spreadsheets but lack formal data analysis training!\n\n*TIMESTAMPS*\n00:00 ChatGPT for Data Analysis\n00:45 The DIG Data Analysis Framework\n01:49 Step 1: Description\n05:31 Step 2: Introspection\n09:16 Step 3: Goal Setting\n10:55 Bonus Prompt\n\n*RESOURCES MENTIONED*\nDIG Framework prompts: https://jeffsu.notion.site/184-data-analysis-resources\nApple TV+ sample dataset: https://jeffsu.notion.site/184-data-analysis-resources\nhttps://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=184\nChatGPT Pro Tips video: https://youtu.be/p3840QxlYzc\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=184\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dataanalysis", "Master Data Analysis with ChatGPT (in just 12 minutes)", "FKLr3ft8ea0", 1, 714, false, "https://www.youtube.com/watch?v=FKLr3ft8ea0", "/downloads/Jeff Su/2025-07-15 Master Data Analysis with ChatGPT (in just 12 minutes)/Master Data Analysis with ChatGPT (in just 12 minutes) [FKLr3ft8ea0].mp4", false, ~U[2025-07-15 13:00:36Z]] 16:38:41.277 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=21.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:38:41.278 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:38:41.279 [debug] QUERY OK source="media_items" db=0.3ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [19] 16:38:41.279 [info] Kicking off download for media item #19 (FKLr3ft8ea0) 16:38:41.282 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=4.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [23, 19, ~U[2026-04-23 14:38:41Z], ~U[2026-04-23 14:38:41Z]] 16:38:41.283 [debug] Current batch of media processed. Will check again in 1000ms 16:38:41.899 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZpXN9M0WLQ4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8a/97/8a974fc76c1a0b509eba52a315c272b850471fec7dd3898d9ce8854907d6d4fa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:38:41.946 [debug] Running yt-dlp command for action: download_thumbnail 16:38:41.948 [debug] QUERY OK source="settings" db=0.3ms idle=669.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:41.949 [debug] QUERY OK source="settings" db=0.2ms idle=669.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:41.949 [debug] QUERY OK source="settings" db=0.1ms idle=668.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:41.950 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZpXN9M0WLQ4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/3/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/bc/67/bc6741dba50979494f71df16b29d1a274078042f288892ce0865688f61e334da.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:38:42.283 [debug] Current batch of media processed. Will check again in 1000ms 16:38:43.284 [debug] Current batch of media processed. Will check again in 1000ms 16:38:44.285 [debug] Current batch of media processed. Will check again in 1000ms 16:38:45.287 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🌟\u00A0Start learning with Coursera today: https://imp.i384100.net/c/2464514/3058290/14726\n\n#ChatGPT releases over 1.1 updates weekly, but most explanations are filled with meaningless jargon. This video cuts through the noise with real-world examples showing exactly when to use reasoning models vs chat models, ChatGPT search vs Google, Deep Research, and Canvas! \n\n*TIMESTAMPS*\n00:00 The most important ChatGPT features\n00:24 Choosing the right ChatGPT model\n03:11 How I learn AI\n04:05 When to use ChatGPT web search\n05:52 How to use ChatGPT Deep Research\n07:45 When to enable Canvas in ChatGPT\n09:09 Pro tips for ChatGPT\n\n*RESOURCES MENTIONED*\n✅\u00A0Deep Research GPT from Reddit - https://www.jeffsu.org/chatgpt-features-that-actually-matter\n🌟 My Notion Command Center - https://www.pressplay.cc/link/s/85ECD9B7\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=183\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "duration" => 586, "filename" => "/downloads/Jeff Su/2025-07-01 The CORRECT way to use ChatGPT (in 2026)/The CORRECT way to use ChatGPT (in 2026) [p3840QxlYzc].mp4", "id" => "p3840QxlYzc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=p3840QxlYzc", "playlist_index" => 20, "timestamp" => 1751374897, "title" => "The CORRECT way to use ChatGPT (in 2026)", "upload_date" => "20250701"} 16:38:45.289 [debug] QUERY OK source="sources" db=1.3ms idle=52.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:38:45.289 [debug] QUERY OK source="sources" db=0.3ms idle=54.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:45.290 [debug] QUERY OK source="media_items" db=0.3ms idle=54.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-01 13:01:37Z], 1] 16:38:45.293 [debug] QUERY OK source="media_items" db=1.8ms idle=55.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🌟\u00A0Start learning with Coursera today: https://imp.i384100.net/c/2464514/3058290/14726\n\n#ChatGPT releases over 1.1 updates weekly, but most explanations are filled with meaningless jargon. This video cuts through the noise with real-world examples showing exactly when to use reasoning models vs chat models, ChatGPT search vs Google, Deep Research, and Canvas! \n\n*TIMESTAMPS*\n00:00 The most important ChatGPT features\n00:24 Choosing the right ChatGPT model\n03:11 How I learn AI\n04:05 When to use ChatGPT web search\n05:52 How to use ChatGPT Deep Research\n07:45 When to enable Canvas in ChatGPT\n09:09 Pro tips for ChatGPT\n\n*RESOURCES MENTIONED*\n✅\u00A0Deep Research GPT from Reddit - https://www.jeffsu.org/chatgpt-features-that-actually-matter\n🌟 My Notion Command Center - https://www.pressplay.cc/link/s/85ECD9B7\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=183\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "The CORRECT way to use ChatGPT (in 2026)", "821984c0-2fe7-4419-a70d-357fdea47ded", false, "p3840QxlYzc", 1, [], 586, false, "https://www.youtube.com/watch?v=p3840QxlYzc", 20, "/downloads/Jeff Su/2025-07-01 The CORRECT way to use ChatGPT (in 2026)/The CORRECT way to use ChatGPT (in 2026) [p3840QxlYzc].mp4", false, false, 99, ~U[2025-07-01 13:01:37Z], ~U[2026-04-23 14:38:45Z], ~U[2026-04-23 14:38:45Z], "🌟\u00A0Start learning with Coursera today: https://imp.i384100.net/c/2464514/3058290/14726\n\n#ChatGPT releases over 1.1 updates weekly, but most explanations are filled with meaningless jargon. This video cuts through the noise with real-world examples showing exactly when to use reasoning models vs chat models, ChatGPT search vs Google, Deep Research, and Canvas! \n\n*TIMESTAMPS*\n00:00 The most important ChatGPT features\n00:24 Choosing the right ChatGPT model\n03:11 How I learn AI\n04:05 When to use ChatGPT web search\n05:52 How to use ChatGPT Deep Research\n07:45 When to enable Canvas in ChatGPT\n09:09 Pro tips for ChatGPT\n\n*RESOURCES MENTIONED*\n✅\u00A0Deep Research GPT from Reddit - https://www.jeffsu.org/chatgpt-features-that-actually-matter\n🌟 My Notion Command Center - https://www.pressplay.cc/link/s/85ECD9B7\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=183\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "The CORRECT way to use ChatGPT (in 2026)", "p3840QxlYzc", 1, 586, false, "https://www.youtube.com/watch?v=p3840QxlYzc", "/downloads/Jeff Su/2025-07-01 The CORRECT way to use ChatGPT (in 2026)/The CORRECT way to use ChatGPT (in 2026) [p3840QxlYzc].mp4", false, ~U[2025-07-01 13:01:37Z]] 16:38:45.293 [debug] QUERY OK source="sources" db=0.3ms idle=30.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:45.295 [debug] QUERY OK source="media_profiles" db=1.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] 16:38:45.298 [debug] QUERY OK source="media_items" db=1.7ms 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 [20] 16:38:45.298 [info] Kicking off download for media item #20 (p3840QxlYzc) 16:38:45.302 [debug] QUERY OK source="tasks" db=0.5ms idle=8.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [24, 20, ~U[2026-04-23 14:38:45Z], ~U[2026-04-23 14:38:45Z]] 16:38:45.303 [debug] Current batch of media processed. Will check again in 1000ms 16:38:46.303 [debug] Current batch of media processed. Will check again in 1000ms 16:38:47.304 [debug] Current batch of media processed. Will check again in 1000ms 16:38:47.986 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZpXN9M0WLQ4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/3/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/bc/67/bc6741dba50979494f71df16b29d1a274078042f288892ce0865688f61e334da.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:38:47.987 [debug] QUERY OK db=0.1ms idle=752.2ms begin [] 16:38:47.988 [debug] QUERY OK source="media_items" db=1.1ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:38:41Z], "/downloads/Jeff Su/2026-03-03 The Top 1% Build AI Presentations Differently. Here's How#/The Top 1% Build AI Presentations Differently. Here's How. [ZpXN9M0WLQ4].mp4", "/downloads/Jeff Su/2026-03-03 The Top 1% Build AI Presentations Differently. Here's How#/The Top 1% Build AI Presentations Differently. Here's How. [ZpXN9M0WLQ4].info.json", "/downloads/Jeff Su/2026-03-03 The Top 1% Build AI Presentations Differently. Here's How#/The Top 1% Build AI Presentations Differently. Here's How. [ZpXN9M0WLQ4].nfo", "/downloads/Jeff Su/2026-03-03 The Top 1% Build AI Presentations Differently. Here's How#/The Top 1% Build AI Presentations Differently. Here's How. [ZpXN9M0WLQ4]-thumb.jpg", ~U[2026-04-23 14:38:47Z], 3] 16:38:47.990 [debug] QUERY OK source="media_metadata" db=0.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/3/metadata.json.gz", "/config/metadata/media_items/3/thumbnail.jpg", 3, ~U[2026-04-23 14:38:47Z], ~U[2026-04-23 14:38:47Z]] 16:38:47.990 [debug] QUERY OK db=0.5ms commit [] 16:38:47.992 [debug] QUERY OK source="media_items" db=1.7ms idle=755.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [43294283, ~U[2026-04-23 14:38:47Z], 3] 16:38:47.993 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:38:47.993 [info] {"args":{"id":3},"id":7,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":38502017,"event":"job:stop","queue_time":38489885,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:38:48.001 [info] {"args":{"id":5},"id":9,"meta":{},"system_time":1776955128000953284,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:38:48.001 [debug] QUERY OK source="media_items" db=0.2ms idle=733.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" = ?) [5] 16:38:48.002 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:38:48.002 [debug] QUERY OK source="sources" db=0.2ms queue=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" = ?) [1] 16:38:48.003 [debug] QUERY OK source="media_profiles" db=0.2ms idle=10.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] 16:38:48.004 [debug] QUERY OK source="media_items" db=0.5ms 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 [5] 16:38:48.005 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [5] 16:38:48.005 [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] 16:38:48.006 [debug] QUERY OK source="settings" db=0.6ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:48.008 [debug] QUERY OK source="settings" db=1.6ms queue=0.1ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:48.009 [debug] Running yt-dlp command for action: get_downloadable_status 16:38:48.011 [debug] QUERY OK source="settings" db=0.2ms idle=6.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:48.011 [debug] QUERY OK source="settings" db=0.1ms idle=6.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:48.011 [debug] QUERY OK source="settings" db=0.1ms idle=5.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:48.012 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=aH9ctWaxGgQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/09/cc/09cceaa31d07149b3a48ef3fdb7c2d7d22a7eef787c39324b44b21ab3217ad3e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:38:48.240 [info] {"source":"oban","duration":880,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:38:48.305 [debug] Current batch of media processed. Will check again in 1000ms 16:38:48.617 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=s_765enJBy8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/38/32/3832eb81623deb5871eb54ba4ea80b8a2eab9871befdbd3370ef5c903c1020af.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:38:48.655 [debug] Running yt-dlp command for action: download_thumbnail 16:38:48.657 [debug] QUERY OK source="settings" db=0.3ms idle=645.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:48.657 [debug] QUERY OK source="settings" db=0.3ms idle=645.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:48.658 [debug] QUERY OK source="settings" db=0.3ms idle=646.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:48.658 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=s_765enJBy8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/4/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/25/67/2567cf7405b67e537610d7a61a899b9e2f6973435ba6c85a5c566b096e2be868.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:38:49.307 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "⚡️️ Start designing today with Gamma for free\u00A0➡️\u00A0https://gamma.app\n\nMost AI presentation tools excel at creating beautiful slides but miss the critical part: uncovering insights that actually matter.\n\nIn this video, I demonstrate how to bridge the gap between insight generation and presentation design by recreating an actual #Google sales pitch deck. You'll learn a proven 3-step process using ChatGPT's Deep Research for market analysis, SCQA framework for storytelling structure, and #Gamma for professional slide design.\n\n*TIMESTAMPS*\n00:00 The Problem with AI Presentation Tools\n00:34 Presentation Overview\n01:02 Step 1\n03:13 Step 2\n04:49 Step 3\n11:11 Pro tips for Gamma\n12:25 Key Takeaways\n\n*RESOURCES MENTIONED*\nMy Deep Research prompt template: https://www.jeffsu.org/how-to-create-presentations-with-ai-the-right-way/\nSCQA framework prompt template: https://www.jeffsu.org/how-to-create-presentations-with-ai-the-right-way/\nOriginal Reddit post: https://www.reddit.com/r/ChatGPTPromptGenius/comments/1jbyp7a/chatgpt_prompt_of_the_day_the_deep_research_gpt/\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=182\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#chatgpt", "duration" => 796, "filename" => "/downloads/Jeff Su/2025-06-17 Why 90% of AI Presentations Fail (do this instead)/Why 90% of AI Presentations Fail (do this instead) [mi2vCsP1oKY].mp4", "id" => "mi2vCsP1oKY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mi2vCsP1oKY", "playlist_index" => 21, "timestamp" => 1750165284, "title" => "Why 90% of AI Presentations Fail (do this instead)", "upload_date" => "20250617"} 16:38:49.308 [debug] QUERY OK source="sources" db=0.4ms idle=1038.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:38:49.309 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=651.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:49.311 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=652.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-17 13:01:24Z], 1] 16:38:49.315 [debug] QUERY OK source="media_items" db=2.6ms idle=653.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["⚡️️ Start designing today with Gamma for free\u00A0➡️\u00A0https://gamma.app\n\nMost AI presentation tools excel at creating beautiful slides but miss the critical part: uncovering insights that actually matter.\n\nIn this video, I demonstrate how to bridge the gap between insight generation and presentation design by recreating an actual #Google sales pitch deck. You'll learn a proven 3-step process using ChatGPT's Deep Research for market analysis, SCQA framework for storytelling structure, and #Gamma for professional slide design.\n\n*TIMESTAMPS*\n00:00 The Problem with AI Presentation Tools\n00:34 Presentation Overview\n01:02 Step 1\n03:13 Step 2\n04:49 Step 3\n11:11 Pro tips for Gamma\n12:25 Key Takeaways\n\n*RESOURCES MENTIONED*\nMy Deep Research prompt template: https://www.jeffsu.org/how-to-create-presentations-with-ai-the-right-way/\nSCQA framework prompt template: https://www.jeffsu.org/how-to-create-presentations-with-ai-the-right-way/\nOriginal Reddit post: https://www.reddit.com/r/ChatGPTPromptGenius/comments/1jbyp7a/chatgpt_prompt_of_the_day_the_deep_research_gpt/\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=182\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#chatgpt", "Why 90% of AI Presentations Fail (do this instead)", "c0302ae1-4ea8-4ae2-93ec-e524433023db", false, "mi2vCsP1oKY", 1, [], 796, false, "https://www.youtube.com/watch?v=mi2vCsP1oKY", 21, "/downloads/Jeff Su/2025-06-17 Why 90% of AI Presentations Fail (do this instead)/Why 90% of AI Presentations Fail (do this instead) [mi2vCsP1oKY].mp4", false, false, 99, ~U[2025-06-17 13:01:24Z], ~U[2026-04-23 14:38:49Z], ~U[2026-04-23 14:38:49Z], "⚡️️ Start designing today with Gamma for free\u00A0➡️\u00A0https://gamma.app\n\nMost AI presentation tools excel at creating beautiful slides but miss the critical part: uncovering insights that actually matter.\n\nIn this video, I demonstrate how to bridge the gap between insight generation and presentation design by recreating an actual #Google sales pitch deck. You'll learn a proven 3-step process using ChatGPT's Deep Research for market analysis, SCQA framework for storytelling structure, and #Gamma for professional slide design.\n\n*TIMESTAMPS*\n00:00 The Problem with AI Presentation Tools\n00:34 Presentation Overview\n01:02 Step 1\n03:13 Step 2\n04:49 Step 3\n11:11 Pro tips for Gamma\n12:25 Key Takeaways\n\n*RESOURCES MENTIONED*\nMy Deep Research prompt template: https://www.jeffsu.org/how-to-create-presentations-with-ai-the-right-way/\nSCQA framework prompt template: https://www.jeffsu.org/how-to-create-presentations-with-ai-the-right-way/\nOriginal Reddit post: https://www.reddit.com/r/ChatGPTPromptGenius/comments/1jbyp7a/chatgpt_prompt_of_the_day_the_deep_research_gpt/\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=182\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#chatgpt", "Why 90% of AI Presentations Fail (do this instead)", "mi2vCsP1oKY", 1, 796, false, "https://www.youtube.com/watch?v=mi2vCsP1oKY", "/downloads/Jeff Su/2025-06-17 Why 90% of AI Presentations Fail (do this instead)/Why 90% of AI Presentations Fail (do this instead) [mi2vCsP1oKY].mp4", false, ~U[2025-06-17 13:01:24Z]] 16:38:49.315 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:49.317 [debug] QUERY OK source="media_profiles" db=0.6ms 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] 16:38:49.317 [debug] QUERY OK source="media_items" db=0.4ms idle=7.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [21] 16:38:49.318 [info] Kicking off download for media item #21 (mi2vCsP1oKY) 16:38:49.322 [debug] QUERY OK source="tasks" db=0.3ms idle=5.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [25, 21, ~U[2026-04-23 14:38:49Z], ~U[2026-04-23 14:38:49Z]] 16:38:49.322 [debug] Current batch of media processed. Will check again in 1000ms 16:38:50.323 [debug] Current batch of media processed. Will check again in 1000ms 16:38:51.324 [debug] Current batch of media processed. Will check again in 1000ms 16:38:52.325 [debug] Current batch of media processed. Will check again in 1000ms 16:38:53.327 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Peace out #Google, it’s been fun 😁\n\n@Google \n\n*TIMESTAMPS*\n00:00 My Last Day at Google\n00:24 My first three months at Google\n01:30 Most important lesson from my time at Google\n02:42 Why I left (reason #1)\n04:35 Why I left (reason #2)\n05:14 Why I left (reason #3)\n05:41 What’s next\n06:47 Thank You Google\n\n*RESOURCES MENTIONED*\nOdyssey Plan Exercise: https://youtu.be/FYU-4NOnLDY?t=331\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=181\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=181\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/EE8FB764\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dayinthelife", "duration" => 475, "filename" => "/downloads/Jeff Su/2025-06-03 My Last Day at Google (after 9 years)/My Last Day at Google (after 9 years) [BVT5EZkb24Q].mp4", "id" => "BVT5EZkb24Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BVT5EZkb24Q", "playlist_index" => 22, "timestamp" => 1748955623, "title" => "My Last Day at Google (after 9 years)", "upload_date" => "20250603"} 16:38:53.328 [debug] QUERY OK source="sources" db=0.3ms idle=92.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:38:53.328 [debug] QUERY OK source="sources" db=0.5ms idle=93.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:53.329 [debug] QUERY OK source="media_items" db=0.4ms idle=94.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-03 13:00:23Z], 1] 16:38:53.333 [debug] QUERY OK source="media_items" db=3.1ms idle=95.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Peace out #Google, it’s been fun 😁\n\n@Google \n\n*TIMESTAMPS*\n00:00 My Last Day at Google\n00:24 My first three months at Google\n01:30 Most important lesson from my time at Google\n02:42 Why I left (reason #1)\n04:35 Why I left (reason #2)\n05:14 Why I left (reason #3)\n05:41 What’s next\n06:47 Thank You Google\n\n*RESOURCES MENTIONED*\nOdyssey Plan Exercise: https://youtu.be/FYU-4NOnLDY?t=331\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=181\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=181\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/EE8FB764\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dayinthelife", "My Last Day at Google (after 9 years)", "58f74881-b52f-4217-add1-6f74b19c7805", false, "BVT5EZkb24Q", 1, [], 475, false, "https://www.youtube.com/watch?v=BVT5EZkb24Q", 22, "/downloads/Jeff Su/2025-06-03 My Last Day at Google (after 9 years)/My Last Day at Google (after 9 years) [BVT5EZkb24Q].mp4", false, false, 99, ~U[2025-06-03 13:00:23Z], ~U[2026-04-23 14:38:53Z], ~U[2026-04-23 14:38:53Z], "Peace out #Google, it’s been fun 😁\n\n@Google \n\n*TIMESTAMPS*\n00:00 My Last Day at Google\n00:24 My first three months at Google\n01:30 Most important lesson from my time at Google\n02:42 Why I left (reason #1)\n04:35 Why I left (reason #2)\n05:14 Why I left (reason #3)\n05:41 What’s next\n06:47 Thank You Google\n\n*RESOURCES MENTIONED*\nOdyssey Plan Exercise: https://youtu.be/FYU-4NOnLDY?t=331\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=181\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=181\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/EE8FB764\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dayinthelife", "My Last Day at Google (after 9 years)", "BVT5EZkb24Q", 1, 475, false, "https://www.youtube.com/watch?v=BVT5EZkb24Q", "/downloads/Jeff Su/2025-06-03 My Last Day at Google (after 9 years)/My Last Day at Google (after 9 years) [BVT5EZkb24Q].mp4", false, ~U[2025-06-03 13:00:23Z]] 16:38:53.334 [debug] QUERY OK source="sources" db=0.3ms idle=54.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:38:53.335 [debug] QUERY OK source="media_profiles" db=0.7ms idle=6.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:38:53.336 [debug] QUERY OK source="media_items" db=0.5ms idle=7.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [22] 16:38:53.336 [info] Kicking off download for media item #22 (BVT5EZkb24Q) 16:38:53.339 [debug] QUERY OK source="tasks" db=0.2ms idle=5.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [26, 22, ~U[2026-04-23 14:38:53Z], ~U[2026-04-23 14:38:53Z]] 16:38:53.340 [debug] Current batch of media processed. Will check again in 1000ms 16:38:54.162 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=aH9ctWaxGgQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/09/cc/09cceaa31d07149b3a48ef3fdb7c2d7d22a7eef787c39324b44b21ab3217ad3e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:38:54.163 [debug] Running yt-dlp command for action: download 16:38:54.163 [debug] QUERY OK source="settings" db=0.2ms idle=827.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:54.163 [debug] QUERY OK source="settings" db=0.1ms idle=827.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:54.164 [debug] QUERY OK source="settings" db=0.2ms idle=825.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:54.164 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=aH9ctWaxGgQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/5b/1c/5b1cca2af5ddaa7d966b08bc75943a80dbfa52011701c5697c8fc47f857f7dd0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:38:54.340 [debug] Current batch of media processed. Will check again in 1000ms 16:38:55.342 [debug] Current batch of media processed. Will check again in 1000ms 16:38:56.344 [debug] Current batch of media processed. Will check again in 1000ms 16:38:56.422 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=s_765enJBy8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/4/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/25/67/2567cf7405b67e537610d7a61a899b9e2f6973435ba6c85a5c566b096e2be868.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:38:56.422 [debug] QUERY OK db=0.1ms idle=1187.5ms begin [] 16:38:56.423 [debug] QUERY OK source="media_items" db=0.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:38:48Z], "/downloads/Jeff Su/2026-02-20 4 Skills I’m Learning that AI Can’t Replace (backed by data)/4 Skills I’m Learning that AI Can’t Replace (backed by data) [s_765enJBy8].mp4", "/downloads/Jeff Su/2026-02-20 4 Skills I’m Learning that AI Can’t Replace (backed by data)/4 Skills I’m Learning that AI Can’t Replace (backed by data) [s_765enJBy8].info.json", "/downloads/Jeff Su/2026-02-20 4 Skills I’m Learning that AI Can’t Replace (backed by data)/4 Skills I’m Learning that AI Can’t Replace (backed by data) [s_765enJBy8].nfo", "/downloads/Jeff Su/2026-02-20 4 Skills I’m Learning that AI Can’t Replace (backed by data)/4 Skills I’m Learning that AI Can’t Replace (backed by data) [s_765enJBy8]-thumb.jpg", ~U[2026-04-23 14:38:56Z], 4] 16:38:56.424 [debug] QUERY OK source="media_metadata" db=0.7ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/4/metadata.json.gz", "/config/metadata/media_items/4/thumbnail.jpg", 4, ~U[2026-04-23 14:38:56Z], ~U[2026-04-23 14:38:56Z]] 16:38:56.425 [debug] QUERY OK db=0.3ms commit [] 16:38:56.427 [debug] QUERY OK source="media_items" db=1.5ms idle=1190.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [43804062, ~U[2026-04-23 14:38:56Z], 4] 16:38:56.427 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:38:56.428 [info] {"args":{"id":4},"id":8,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":41591633,"event":"job:stop","queue_time":39830809,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:38:56.435 [info] {"args":{"id":6},"id":10,"meta":{},"system_time":1776955136435093547,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:38:56.435 [debug] QUERY OK source="media_items" db=0.2ms idle=149.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" = ?) [6] 16:38:56.436 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:38:56.436 [debug] QUERY OK source="sources" db=0.2ms idle=10.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:38:56.437 [debug] QUERY OK source="media_profiles" db=0.8ms idle=9.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:38:56.438 [debug] QUERY OK source="media_items" db=0.3ms 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 [6] 16:38:56.439 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [6] 16:38:56.440 [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] 16:38:56.440 [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 [] 16:38:56.441 [debug] QUERY OK source="settings" db=0.1ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:56.441 [debug] Running yt-dlp command for action: get_downloadable_status 16:38:56.442 [debug] QUERY OK source="settings" db=0.1ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:56.442 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:38:56.443 [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 [] 16:38:56.443 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=htZRCE2GgIs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/79/8e/798ec067e655e6271b3c597ba32a11efcec9b98c2bb0fd45d33c85247b8ebdea.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:38:57.344 [debug] Current batch of media processed. Will check again in 1000ms 16:38:58.346 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "✍️ My #Notion Command Center - https://www.pressplay.cc/link/s/92635AE6\n\nThanks to this single Notion page, I manage my full-time job, content creation, and everything else with total peace of mind. After years of tweaking, I've finally built a system I trust completely.\n\nInstead of boring you with every detail, I'll show you five key benefits of my Daily/Weekly Planner in Notion: no more planning paralysis, frictionless action-taking, intuitive structure, a custom-fit system, and information that finds you when you need it.\n\n*TIMESTAMPS*\n00:00 Jeff’s Command Center in Notion\n00:25 No More Planning Paralysis in Notion\n02:40 Frictionless Action-Taking\n05:11 Intuitive Structure\n07:02 Custom-Fit System\n09:11 Information that Finds You\n10:51 Build Your Command Center in Notion\n\n*RESOURCES MENTIONED*\nFree Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=mywebsite&utm_medium=post&utm_campaign=181\nSave to Notion Tutorial: https://youtu.be/diK9dZulkAs\nEaslo's Book Tracker: https://www.easlo.co/templates/book-tracker\n\n*BUILD A POWERFUL WORKFLOW*\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/92635AE6\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dailyplayer #lifeOS", "duration" => 686, "filename" => "/downloads/Jeff Su/2025-05-20 How I Organize My Life | Notion Tour 2026/How I Organize My Life | Notion Tour 2026 [_RTqbo5ZZ2k].mp4", "id" => "_RTqbo5ZZ2k", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_RTqbo5ZZ2k", "playlist_index" => 23, "timestamp" => 1747746064, "title" => "How I Organize My Life | Notion Tour 2026", "upload_date" => "20250520"} 16:38:58.347 [debug] QUERY OK source="sources" db=0.4ms idle=108.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:38:58.347 [debug] QUERY OK source="sources" db=0.2ms idle=109.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:58.348 [debug] QUERY OK source="media_items" db=0.3ms idle=109.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-20 13:01:04Z], 1] 16:38:58.351 [debug] QUERY OK source="media_items" db=1.8ms idle=110.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✍️ My #Notion Command Center - https://www.pressplay.cc/link/s/92635AE6\n\nThanks to this single Notion page, I manage my full-time job, content creation, and everything else with total peace of mind. After years of tweaking, I've finally built a system I trust completely.\n\nInstead of boring you with every detail, I'll show you five key benefits of my Daily/Weekly Planner in Notion: no more planning paralysis, frictionless action-taking, intuitive structure, a custom-fit system, and information that finds you when you need it.\n\n*TIMESTAMPS*\n00:00 Jeff’s Command Center in Notion\n00:25 No More Planning Paralysis in Notion\n02:40 Frictionless Action-Taking\n05:11 Intuitive Structure\n07:02 Custom-Fit System\n09:11 Information that Finds You\n10:51 Build Your Command Center in Notion\n\n*RESOURCES MENTIONED*\nFree Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=mywebsite&utm_medium=post&utm_campaign=181\nSave to Notion Tutorial: https://youtu.be/diK9dZulkAs\nEaslo's Book Tracker: https://www.easlo.co/templates/book-tracker\n\n*BUILD A POWERFUL WORKFLOW*\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/92635AE6\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dailyplayer #lifeOS", "How I Organize My Life | Notion Tour 2026", "cd294a79-6840-49ad-8bcb-531399f0261c", false, "_RTqbo5ZZ2k", 1, [], 686, false, "https://www.youtube.com/watch?v=_RTqbo5ZZ2k", 23, "/downloads/Jeff Su/2025-05-20 How I Organize My Life | Notion Tour 2026/How I Organize My Life | Notion Tour 2026 [_RTqbo5ZZ2k].mp4", false, false, 99, ~U[2025-05-20 13:01:04Z], ~U[2026-04-23 14:38:58Z], ~U[2026-04-23 14:38:58Z], "✍️ My #Notion Command Center - https://www.pressplay.cc/link/s/92635AE6\n\nThanks to this single Notion page, I manage my full-time job, content creation, and everything else with total peace of mind. After years of tweaking, I've finally built a system I trust completely.\n\nInstead of boring you with every detail, I'll show you five key benefits of my Daily/Weekly Planner in Notion: no more planning paralysis, frictionless action-taking, intuitive structure, a custom-fit system, and information that finds you when you need it.\n\n*TIMESTAMPS*\n00:00 Jeff’s Command Center in Notion\n00:25 No More Planning Paralysis in Notion\n02:40 Frictionless Action-Taking\n05:11 Intuitive Structure\n07:02 Custom-Fit System\n09:11 Information that Finds You\n10:51 Build Your Command Center in Notion\n\n*RESOURCES MENTIONED*\nFree Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=mywebsite&utm_medium=post&utm_campaign=181\nSave to Notion Tutorial: https://youtu.be/diK9dZulkAs\nEaslo's Book Tracker: https://www.easlo.co/templates/book-tracker\n\n*BUILD A POWERFUL WORKFLOW*\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/92635AE6\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dailyplayer #lifeOS", "How I Organize My Life | Notion Tour 2026", "_RTqbo5ZZ2k", 1, 686, false, "https://www.youtube.com/watch?v=_RTqbo5ZZ2k", "/downloads/Jeff Su/2025-05-20 How I Organize My Life | Notion Tour 2026/How I Organize My Life | Notion Tour 2026 [_RTqbo5ZZ2k].mp4", false, ~U[2025-05-20 13:01:04Z]] 16:38:58.352 [debug] QUERY OK source="sources" db=0.4ms idle=61.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:38:58.352 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 16:38:58.353 [debug] QUERY OK source="media_items" db=0.4ms 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 [23] 16:38:58.353 [info] Kicking off download for media item #23 (_RTqbo5ZZ2k) 16:38:58.358 [debug] QUERY OK source="tasks" db=0.4ms idle=5.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [27, 23, ~U[2026-04-23 14:38:58Z], ~U[2026-04-23 14:38:58Z]] 16:38:58.358 [debug] Current batch of media processed. Will check again in 1000ms 16:38:59.358 [debug] Current batch of media processed. Will check again in 1000ms 16:39:00.207 [info] {"source":"oban","duration":828,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:39:00.359 [debug] Current batch of media processed. Will check again in 1000ms 16:39:01.361 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=179\n\nIn this video you’ll learn practical #Gemini skills that won't become obsolete tomorrow. \n\nWe cover essential setup tips, when to use Flash vs Pro models, workspace integrations that save hours weekly, and how to leverage Gemini's massive context window.\n\nDiscover how to transform PDFs into interactive games, use AI formulas in Sheets, and integrate Gemini with Gmail, Docs and Drive for maximum productivity!\n\n@Google \n\n*TIMESTAMPS*\n00:00 Full Google Gemini Tutorial\n00:12 Setup Tips for Google Gemini\n00:51 My Favorite Gemini Workflow\n02:46 Choosing the Correct Gemini Model\n05:21 Transform PDFs into Games\n06:22 Productivity Tips for Google Gemini\n09:54 Gemini’s Massive Context Window\n10:35 Google Gemini’s Biggest Weakness\n\n*RESOURCES MENTIONED*\nInteractive game prompt template: https://www.jeffsu.org/master-google-gemini\nPhilipp Humm’s storytelling video: https://youtu.be/hNuAv-42jzY\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=179\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=179\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/EE8FB764\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#googlegemini #ai", "duration" => 710, "filename" => "/downloads/Jeff Su/2025-05-06 Master 85% of Google Gemini in 12 Minutes/Master 85% of Google Gemini in 12 Minutes [Uy6LcpyGj7w].mp4", "id" => "Uy6LcpyGj7w", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Uy6LcpyGj7w", "playlist_index" => 24, "timestamp" => 1746536450, "title" => "Master 85% of Google Gemini in 12 Minutes", "upload_date" => "20250506"} 16:39:01.362 [debug] QUERY OK source="sources" db=0.4ms idle=1123.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:39:01.362 [debug] QUERY OK source="sources" db=0.2ms idle=1124.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:01.363 [debug] QUERY OK source="media_items" db=0.3ms idle=1068.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-06 13:00:50Z], 1] 16:39:01.366 [debug] QUERY OK source="media_items" db=2.0ms idle=125.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=179\n\nIn this video you’ll learn practical #Gemini skills that won't become obsolete tomorrow. \n\nWe cover essential setup tips, when to use Flash vs Pro models, workspace integrations that save hours weekly, and how to leverage Gemini's massive context window.\n\nDiscover how to transform PDFs into interactive games, use AI formulas in Sheets, and integrate Gemini with Gmail, Docs and Drive for maximum productivity!\n\n@Google \n\n*TIMESTAMPS*\n00:00 Full Google Gemini Tutorial\n00:12 Setup Tips for Google Gemini\n00:51 My Favorite Gemini Workflow\n02:46 Choosing the Correct Gemini Model\n05:21 Transform PDFs into Games\n06:22 Productivity Tips for Google Gemini\n09:54 Gemini’s Massive Context Window\n10:35 Google Gemini’s Biggest Weakness\n\n*RESOURCES MENTIONED*\nInteractive game prompt template: https://www.jeffsu.org/master-google-gemini\nPhilipp Humm’s storytelling video: https://youtu.be/hNuAv-42jzY\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=179\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=179\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/EE8FB764\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#googlegemini #ai", "Master 85% of Google Gemini in 12 Minutes", "8f8c2820-c752-4308-8dd3-7efa2979fe87", false, "Uy6LcpyGj7w", 1, [], 710, false, "https://www.youtube.com/watch?v=Uy6LcpyGj7w", 24, "/downloads/Jeff Su/2025-05-06 Master 85% of Google Gemini in 12 Minutes/Master 85% of Google Gemini in 12 Minutes [Uy6LcpyGj7w].mp4", false, false, 99, ~U[2025-05-06 13:00:50Z], ~U[2026-04-23 14:39:01Z], ~U[2026-04-23 14:39:01Z], "📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=179\n\nIn this video you’ll learn practical #Gemini skills that won't become obsolete tomorrow. \n\nWe cover essential setup tips, when to use Flash vs Pro models, workspace integrations that save hours weekly, and how to leverage Gemini's massive context window.\n\nDiscover how to transform PDFs into interactive games, use AI formulas in Sheets, and integrate Gemini with Gmail, Docs and Drive for maximum productivity!\n\n@Google \n\n*TIMESTAMPS*\n00:00 Full Google Gemini Tutorial\n00:12 Setup Tips for Google Gemini\n00:51 My Favorite Gemini Workflow\n02:46 Choosing the Correct Gemini Model\n05:21 Transform PDFs into Games\n06:22 Productivity Tips for Google Gemini\n09:54 Gemini’s Massive Context Window\n10:35 Google Gemini’s Biggest Weakness\n\n*RESOURCES MENTIONED*\nInteractive game prompt template: https://www.jeffsu.org/master-google-gemini\nPhilipp Humm’s storytelling video: https://youtu.be/hNuAv-42jzY\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=179\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=179\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/EE8FB764\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#googlegemini #ai", "Master 85% of Google Gemini in 12 Minutes", "Uy6LcpyGj7w", 1, 710, false, "https://www.youtube.com/watch?v=Uy6LcpyGj7w", "/downloads/Jeff Su/2025-05-06 Master 85% of Google Gemini in 12 Minutes/Master 85% of Google Gemini in 12 Minutes [Uy6LcpyGj7w].mp4", false, ~U[2025-05-06 13:00:50Z]] 16:39:01.367 [debug] QUERY OK source="sources" db=0.3ms idle=70.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:01.367 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:39:01.368 [debug] QUERY OK source="media_items" db=0.3ms idle=5.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [24] 16:39:01.368 [info] Kicking off download for media item #24 (Uy6LcpyGj7w) 16:39:01.370 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=3.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [28, 24, ~U[2026-04-23 14:39:01Z], ~U[2026-04-23 14:39:01Z]] 16:39:01.370 [debug] Current batch of media processed. Will check again in 1000ms 16:39:01.707 [info] CONNECTED TO Phoenix.LiveView.Socket in 39µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DBZ0BAIVW1wwEnR_ZgtJcR4COQsmUjkfHr0fJWn8sgM0Vg0EXNHXddpu", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinch.msdlx.de/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinch.msdlx.de/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 16:39:01.743 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "downloaded"} 16:39:01.744 [debug] QUERY OK source="media_items" db=0.3ms idle=376.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 (m0."media_filepath" IS NULL)) [] 16:39:01.745 [debug] QUERY OK source="media_items" db=0.8ms idle=376.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] 16:39:01.746 [debug] QUERY OK source="sources" db=0.5ms idle=376.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:01.746 [debug] Replied in 3ms 16:39:01.750 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "pending"} 16:39:01.751 [debug] QUERY OK source="media_items" db=0.5ms idle=380.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"))) [] 16:39:01.752 [debug] QUERY OK source="media_items" db=0.8ms idle=380.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] 16:39:01.753 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:01.753 [debug] Replied in 3ms 16:39:01.756 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:39:01.758 [debug] QUERY OK source="tasks" db=1.4ms idle=11.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"] 16:39:01.761 [debug] QUERY OK source="media_items" db=2.1ms idle=12.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", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [5, 6] 16:39:01.761 [debug] QUERY OK source="sources" db=1.5ms idle=9.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:01.762 [debug] Replied in 5ms 16:39:01.770 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:39:01.770 [debug] Replied in 176µs 16:39:01.831 [debug] HANDLE EVENT "check_matching_text" in Pinchflat.UpgradeButtonLive Parameters: %{"_target" => ["unlock-pro-textbox"], "_unused_unlock-pro-textbox" => "", "unlock-pro-textbox" => ""} 16:39:01.831 [debug] Replied in 191µs 16:39:02.321 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=htZRCE2GgIs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/79/8e/798ec067e655e6271b3c597ba32a11efcec9b98c2bb0fd45d33c85247b8ebdea.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:39:02.322 [debug] Running yt-dlp command for action: download 16:39:02.322 [debug] QUERY OK source="settings" db=0.2ms idle=569.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:02.323 [debug] QUERY OK source="settings" db=0.1ms idle=564.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:02.323 [debug] QUERY OK source="settings" db=0.1ms idle=561.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:02.323 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=htZRCE2GgIs --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8b/20/8b20418dde658b4b125f0c818b8ad4434931bb01f1307040abfd1421c7d769ed.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:39:02.371 [debug] Current batch of media processed. Will check again in 1000ms 16:39:03.372 [debug] Current batch of media processed. Will check again in 1000ms 16:39:04.373 [debug] Current batch of media processed. Will check again in 1000ms 16:39:05.375 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "📬\u00A0My insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=178\n\nCan’t believe I’ve been at @Google for 1/4 of my life already 😅\n\nFollow me through my day as a #ProductMarketingManager where I share what Product Marketing Managers actually do.\n\nI'll spill details on my actual salary, show you the free food situation, and share my best project management tricks. Plus, I've got some solid interview tips if you're looking to join the #tech industry no technical background.\n\nNothing fancy, just an honest look at my Google life! 😁\n\n*TIMESTAMPS*\n00:00 After 8 Years at Google\n00:46 Office in the Morning\n01:06 My Job as a PMM\n04:14 Lunch in the Google Cafeteria\n04:36 Q&A 1\n05:01 Q&A 2\n05:07 Q&A 3\n05:30 Q&A 4\n06:12 Q&A 5\n06:19 Q&A 6\n06:32 Project Management Tips\n08:09 Interview Tips\n10:45 Heading Home!\n\n*RESOURCES MENTIONED*\nAccess my templates for free: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=178\nGoogle Interview Warmup Tool: https://grow.google/certificates/interview-warmup/\nCase Interview Secrets: https://amzn.to/4jjl15h\nCase In Point: https://amzn.to/3RraCrT\nInterviewing at Google Blogpost: https://www.google.com/about/careers/applications/interview-tips\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=178\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/68E76121\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "duration" => 666, "filename" => "/downloads/Jeff Su/2025-04-22 A Day in My Life at Google (8 years in)/A Day in My Life at Google (8 years in) [FypvQrwvENk].mp4", "id" => "FypvQrwvENk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FypvQrwvENk", "playlist_index" => 25, "timestamp" => 1745326828, "title" => "A Day in My Life at Google (8 years in)", "upload_date" => "20250422"} 16:39:05.376 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1137.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:39:05.378 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1139.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:05.379 [debug] QUERY OK source="media_items" db=0.5ms idle=1076.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-22 13:00:28Z], 1] 16:39:05.381 [debug] QUERY OK source="media_items" db=1.8ms idle=141.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📬\u00A0My insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=178\n\nCan’t believe I’ve been at @Google for 1/4 of my life already 😅\n\nFollow me through my day as a #ProductMarketingManager where I share what Product Marketing Managers actually do.\n\nI'll spill details on my actual salary, show you the free food situation, and share my best project management tricks. Plus, I've got some solid interview tips if you're looking to join the #tech industry no technical background.\n\nNothing fancy, just an honest look at my Google life! 😁\n\n*TIMESTAMPS*\n00:00 After 8 Years at Google\n00:46 Office in the Morning\n01:06 My Job as a PMM\n04:14 Lunch in the Google Cafeteria\n04:36 Q&A 1\n05:01 Q&A 2\n05:07 Q&A 3\n05:30 Q&A 4\n06:12 Q&A 5\n06:19 Q&A 6\n06:32 Project Management Tips\n08:09 Interview Tips\n10:45 Heading Home!\n\n*RESOURCES MENTIONED*\nAccess my templates for free: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=178\nGoogle Interview Warmup Tool: https://grow.google/certificates/interview-warmup/\nCase Interview Secrets: https://amzn.to/4jjl15h\nCase In Point: https://amzn.to/3RraCrT\nInterviewing at Google Blogpost: https://www.google.com/about/careers/applications/interview-tips\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=178\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/68E76121\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "A Day in My Life at Google (8 years in)", "37ff4160-fdc8-47f9-8c3d-8c53d705dea3", false, "FypvQrwvENk", 1, [], 666, false, "https://www.youtube.com/watch?v=FypvQrwvENk", 25, "/downloads/Jeff Su/2025-04-22 A Day in My Life at Google (8 years in)/A Day in My Life at Google (8 years in) [FypvQrwvENk].mp4", false, false, 99, ~U[2025-04-22 13:00:28Z], ~U[2026-04-23 14:39:05Z], ~U[2026-04-23 14:39:05Z], "📬\u00A0My insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=178\n\nCan’t believe I’ve been at @Google for 1/4 of my life already 😅\n\nFollow me through my day as a #ProductMarketingManager where I share what Product Marketing Managers actually do.\n\nI'll spill details on my actual salary, show you the free food situation, and share my best project management tricks. Plus, I've got some solid interview tips if you're looking to join the #tech industry no technical background.\n\nNothing fancy, just an honest look at my Google life! 😁\n\n*TIMESTAMPS*\n00:00 After 8 Years at Google\n00:46 Office in the Morning\n01:06 My Job as a PMM\n04:14 Lunch in the Google Cafeteria\n04:36 Q&A 1\n05:01 Q&A 2\n05:07 Q&A 3\n05:30 Q&A 4\n06:12 Q&A 5\n06:19 Q&A 6\n06:32 Project Management Tips\n08:09 Interview Tips\n10:45 Heading Home!\n\n*RESOURCES MENTIONED*\nAccess my templates for free: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=178\nGoogle Interview Warmup Tool: https://grow.google/certificates/interview-warmup/\nCase Interview Secrets: https://amzn.to/4jjl15h\nCase In Point: https://amzn.to/3RraCrT\nInterviewing at Google Blogpost: https://www.google.com/about/careers/applications/interview-tips\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=178\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/68E76121\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "A Day in My Life at Google (8 years in)", "FypvQrwvENk", 1, 666, false, "https://www.youtube.com/watch?v=FypvQrwvENk", "/downloads/Jeff Su/2025-04-22 A Day in My Life at Google (8 years in)/A Day in My Life at Google (8 years in) [FypvQrwvENk].mp4", false, ~U[2025-04-22 13:00:28Z]] 16:39:05.382 [debug] QUERY OK source="sources" db=0.2ms idle=77.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:05.383 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:39:05.383 [debug] QUERY OK source="media_items" db=0.3ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [25] 16:39:05.383 [info] Kicking off download for media item #25 (FypvQrwvENk) 16:39:06.794 [debug] QUERY OK source="tasks" db=131.6ms queue=0.1ms idle=1279.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [29, 25, ~U[2026-04-23 14:39:06Z], ~U[2026-04-23 14:39:06Z]] 16:39:06.795 [debug] Current batch of media processed. Will check again in 1000ms 16:39:07.796 [debug] Current batch of media processed. Will check again in 1000ms 16:39:08.797 [debug] Current batch of media processed. Will check again in 1000ms 16:39:09.799 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=177\n\nUnderstanding AI Agents doesn't require a technical background. This video breaks down the evolution from basic LLMs like #ChatGPT to AI Workflows and finally to true #AI Agents through practical, real-world examples.\n\nLearn the key differences between these technologies and discover how concepts like RAG and ReAct actually work in simple terms. Perfect for regular AI users who want to understand how these emerging technologies will impact their daily lives.\n\n*TIMESTAMPS*\n00:00 AI vs. AI Agents\n01:04 Level 1: LLMs\n02:17 Level 2: AI Workflows\n05:26 Level 3: AI Agents\n07:48 Real-world Example\n09:10 Summary\n\n*RESOURCES MENTIONED*\nHelena Liu's AI Workflow Tutorial: https://youtu.be/H0YRniHh2tg\nAndrew Ng's AI Agent Demo: https://youtu.be/KrRD7r7y7NY\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#aiagents", "duration" => 609, "filename" => "/downloads/Jeff Su/2025-04-08 AI Agents, Clearly Explained/AI Agents, Clearly Explained [FwOTs4UxQS4].mp4", "id" => "FwOTs4UxQS4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FwOTs4UxQS4", "playlist_index" => 26, "timestamp" => 1744117228, "title" => "AI Agents, Clearly Explained", "upload_date" => "20250408"} 16:39:09.800 [debug] QUERY OK source="sources" db=0.3ms idle=1561.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:39:09.800 [debug] QUERY OK source="sources" db=0.1ms idle=1490.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:09.801 [debug] QUERY OK source="media_items" db=0.3ms idle=562.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-08 13:00:28Z], 1] 16:39:09.803 [debug] QUERY OK source="media_items" db=1.3ms idle=563.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=177\n\nUnderstanding AI Agents doesn't require a technical background. This video breaks down the evolution from basic LLMs like #ChatGPT to AI Workflows and finally to true #AI Agents through practical, real-world examples.\n\nLearn the key differences between these technologies and discover how concepts like RAG and ReAct actually work in simple terms. Perfect for regular AI users who want to understand how these emerging technologies will impact their daily lives.\n\n*TIMESTAMPS*\n00:00 AI vs. AI Agents\n01:04 Level 1: LLMs\n02:17 Level 2: AI Workflows\n05:26 Level 3: AI Agents\n07:48 Real-world Example\n09:10 Summary\n\n*RESOURCES MENTIONED*\nHelena Liu's AI Workflow Tutorial: https://youtu.be/H0YRniHh2tg\nAndrew Ng's AI Agent Demo: https://youtu.be/KrRD7r7y7NY\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#aiagents", "AI Agents, Clearly Explained", "bef1470f-41cb-46e0-9d9e-dd2e1d29792f", false, "FwOTs4UxQS4", 1, [], 609, false, "https://www.youtube.com/watch?v=FwOTs4UxQS4", 26, "/downloads/Jeff Su/2025-04-08 AI Agents, Clearly Explained/AI Agents, Clearly Explained [FwOTs4UxQS4].mp4", false, false, 99, ~U[2025-04-08 13:00:28Z], ~U[2026-04-23 14:39:09Z], ~U[2026-04-23 14:39:09Z], "My AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=177\n\nUnderstanding AI Agents doesn't require a technical background. This video breaks down the evolution from basic LLMs like #ChatGPT to AI Workflows and finally to true #AI Agents through practical, real-world examples.\n\nLearn the key differences between these technologies and discover how concepts like RAG and ReAct actually work in simple terms. Perfect for regular AI users who want to understand how these emerging technologies will impact their daily lives.\n\n*TIMESTAMPS*\n00:00 AI vs. AI Agents\n01:04 Level 1: LLMs\n02:17 Level 2: AI Workflows\n05:26 Level 3: AI Agents\n07:48 Real-world Example\n09:10 Summary\n\n*RESOURCES MENTIONED*\nHelena Liu's AI Workflow Tutorial: https://youtu.be/H0YRniHh2tg\nAndrew Ng's AI Agent Demo: https://youtu.be/KrRD7r7y7NY\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#aiagents", "AI Agents, Clearly Explained", "FwOTs4UxQS4", 1, 609, false, "https://www.youtube.com/watch?v=FwOTs4UxQS4", "/downloads/Jeff Su/2025-04-08 AI Agents, Clearly Explained/AI Agents, Clearly Explained [FwOTs4UxQS4].mp4", false, ~U[2025-04-08 13:00:28Z]] 16:39:09.803 [debug] QUERY OK source="sources" db=0.2ms idle=491.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:09.804 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:39:09.804 [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 [26] 16:39:09.804 [info] Kicking off download for media item #26 (FwOTs4UxQS4) 16:39:09.807 [debug] QUERY OK source="tasks" db=0.2ms idle=3.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [30, 26, ~U[2026-04-23 14:39:09Z], ~U[2026-04-23 14:39:09Z]] 16:39:09.807 [debug] Current batch of media processed. Will check again in 1000ms 16:39:10.808 [debug] Current batch of media processed. Will check again in 1000ms 16:39:11.809 [debug] Current batch of media processed. Will check again in 1000ms 16:39:12.810 [debug] Current batch of media processed. Will check again in 1000ms 16:39:13.812 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔗\u00A0Duplicate my #Prompts Database: https://www.jeffsu.org/how-to-build-a-prompts-database-in-notion?utm_source=youtube&utm_medium=video&utm_campaign=176\n\nDiscover how to build a simple prompts database in #Notion that saves hours weekly and creates a sustainable #system for AI integration. I'll show you step-by-step how to create a system that makes prompting automatic in your daily work, even with zero technical background.\n\nLearn to capture useful prompts without disrupting your workflow, organize them effectively with tags, and access them instantly when needed.\n\n@Notion \n\n*TIMESTAMPS*\n00:00 The Best AI Users Rely on Systems\n00:37 How the Prompts Database works\n01:24 Getting Started\n05:03 Prompts Database Properties\n06:29 Adding Views to Prompts Database\n12:19 Real-world Examples\n\n*RESOURCES MENTIONED*\nBuild Your Command Center in Notion: https://www.pressplay.cc/link/s/2E08937A\nDuplicate my #Prompts Database: https://www.jeffsu.org/how-to-build-a-prompts-database-in-notion?utm_source=youtube&utm_medium=video&utm_campaign=176\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "duration" => 965, "filename" => "/downloads/Jeff Su/2025-03-18 How to Build a Prompts Database in Notion (template included)!/How to Build a Prompts Database in Notion (template included)! [Oo_GGWV9Hys].mp4", "id" => "Oo_GGWV9Hys", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Oo_GGWV9Hys", "playlist_index" => 27, "timestamp" => 1742302836, "title" => "How to Build a Prompts Database in Notion (template included)!", "upload_date" => "20250318"} 16:39:13.813 [debug] QUERY OK source="sources" db=0.4ms idle=574.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:39:13.813 [debug] QUERY OK source="sources" db=0.2ms idle=575.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:13.814 [debug] QUERY OK source="media_items" db=0.3ms idle=575.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-18 13:00:36Z], 1] 16:39:13.816 [debug] QUERY OK source="media_items" db=1.6ms idle=576.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔗\u00A0Duplicate my #Prompts Database: https://www.jeffsu.org/how-to-build-a-prompts-database-in-notion?utm_source=youtube&utm_medium=video&utm_campaign=176\n\nDiscover how to build a simple prompts database in #Notion that saves hours weekly and creates a sustainable #system for AI integration. I'll show you step-by-step how to create a system that makes prompting automatic in your daily work, even with zero technical background.\n\nLearn to capture useful prompts without disrupting your workflow, organize them effectively with tags, and access them instantly when needed.\n\n@Notion \n\n*TIMESTAMPS*\n00:00 The Best AI Users Rely on Systems\n00:37 How the Prompts Database works\n01:24 Getting Started\n05:03 Prompts Database Properties\n06:29 Adding Views to Prompts Database\n12:19 Real-world Examples\n\n*RESOURCES MENTIONED*\nBuild Your Command Center in Notion: https://www.pressplay.cc/link/s/2E08937A\nDuplicate my #Prompts Database: https://www.jeffsu.org/how-to-build-a-prompts-database-in-notion?utm_source=youtube&utm_medium=video&utm_campaign=176\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "How to Build a Prompts Database in Notion (template included)!", "23045aec-4977-47de-8309-f9dbe109b296", false, "Oo_GGWV9Hys", 1, [], 965, false, "https://www.youtube.com/watch?v=Oo_GGWV9Hys", 27, "/downloads/Jeff Su/2025-03-18 How to Build a Prompts Database in Notion (template included)!/How to Build a Prompts Database in Notion (template included)! [Oo_GGWV9Hys].mp4", false, false, 99, ~U[2025-03-18 13:00:36Z], ~U[2026-04-23 14:39:13Z], ~U[2026-04-23 14:39:13Z], "🔗\u00A0Duplicate my #Prompts Database: https://www.jeffsu.org/how-to-build-a-prompts-database-in-notion?utm_source=youtube&utm_medium=video&utm_campaign=176\n\nDiscover how to build a simple prompts database in #Notion that saves hours weekly and creates a sustainable #system for AI integration. I'll show you step-by-step how to create a system that makes prompting automatic in your daily work, even with zero technical background.\n\nLearn to capture useful prompts without disrupting your workflow, organize them effectively with tags, and access them instantly when needed.\n\n@Notion \n\n*TIMESTAMPS*\n00:00 The Best AI Users Rely on Systems\n00:37 How the Prompts Database works\n01:24 Getting Started\n05:03 Prompts Database Properties\n06:29 Adding Views to Prompts Database\n12:19 Real-world Examples\n\n*RESOURCES MENTIONED*\nBuild Your Command Center in Notion: https://www.pressplay.cc/link/s/2E08937A\nDuplicate my #Prompts Database: https://www.jeffsu.org/how-to-build-a-prompts-database-in-notion?utm_source=youtube&utm_medium=video&utm_campaign=176\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "How to Build a Prompts Database in Notion (template included)!", "Oo_GGWV9Hys", 1, 965, false, "https://www.youtube.com/watch?v=Oo_GGWV9Hys", "/downloads/Jeff Su/2025-03-18 How to Build a Prompts Database in Notion (template included)!/How to Build a Prompts Database in Notion (template included)! [Oo_GGWV9Hys].mp4", false, ~U[2025-03-18 13:00:36Z]] 16:39:13.817 [debug] QUERY OK source="sources" db=0.4ms idle=491.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:13.818 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:39:13.818 [debug] QUERY OK source="media_items" db=0.3ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [27] 16:39:13.818 [info] Kicking off download for media item #27 (Oo_GGWV9Hys) 16:39:13.821 [debug] QUERY OK source="tasks" db=0.2ms idle=3.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [31, 27, ~U[2026-04-23 14:39:13Z], ~U[2026-04-23 14:39:13Z]] 16:39:13.821 [debug] Current batch of media processed. Will check again in 1000ms 16:39:14.821 [debug] Current batch of media processed. Will check again in 1000ms 16:39:15.823 [debug] Current batch of media processed. Will check again in 1000ms 16:39:16.823 [debug] Current batch of media processed. Will check again in 1000ms 16:39:17.825 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=175\n\nLearn how to maximize #Google Tasks' minimal, distraction-free design for seamless task management. Perfect for Google Workspace users who want frictionless task capture and those seeking clean, straightforward task organization.\n\n*TIMESTAMPS*\n00:00 Google Tasks vs. Todoist vs. Ticktick\n00:28 Google Tasks Standalone Interface\n01:17 Add Tasks from Gmail\n02:47 Add Tasks from Google Chat\n04:07 Tasks x Calendar Workflow\n05:02 Google Tasks Sidebar\n06:12 Google Tasks’ Mobile Workflow\n06:37 Create Tasks from Google Gemini\n07:35 Bonus Tip\n\n*RESOURCES MENTIONED*\nStandalone Google Tasks URL: http://tasks.google.com/embed/list/~default?origin=https://mail.google.com\nThe Workspace Academy: https://academy.jeffsu.org/workspace-academy?utm_source=mywebsite&utm_medium=post&utm_campaign=175\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#googletasks #productivity", "duration" => 493, "filename" => "/downloads/Jeff Su/2025-02-25 Google Tasks: Top 10 Tips for Getting Things Done!/Google Tasks: Top 10 Tips for Getting Things Done! [ONa85JLNahw].mp4", "id" => "ONa85JLNahw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ONa85JLNahw", "playlist_index" => 28, "timestamp" => 1740502823, "title" => "Google Tasks: Top 10 Tips for Getting Things Done!", "upload_date" => "20250225"} 16:39:17.826 [debug] QUERY OK source="sources" db=0.4ms idle=587.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:39:17.826 [debug] QUERY OK source="sources" db=0.2ms idle=588.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:17.827 [debug] QUERY OK source="media_items" db=0.3ms idle=588.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-25 17:00:23Z], 1] 16:39:17.834 [debug] QUERY OK source="media_items" db=5.8ms idle=589.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=175\n\nLearn how to maximize #Google Tasks' minimal, distraction-free design for seamless task management. Perfect for Google Workspace users who want frictionless task capture and those seeking clean, straightforward task organization.\n\n*TIMESTAMPS*\n00:00 Google Tasks vs. Todoist vs. Ticktick\n00:28 Google Tasks Standalone Interface\n01:17 Add Tasks from Gmail\n02:47 Add Tasks from Google Chat\n04:07 Tasks x Calendar Workflow\n05:02 Google Tasks Sidebar\n06:12 Google Tasks’ Mobile Workflow\n06:37 Create Tasks from Google Gemini\n07:35 Bonus Tip\n\n*RESOURCES MENTIONED*\nStandalone Google Tasks URL: http://tasks.google.com/embed/list/~default?origin=https://mail.google.com\nThe Workspace Academy: https://academy.jeffsu.org/workspace-academy?utm_source=mywebsite&utm_medium=post&utm_campaign=175\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#googletasks #productivity", "Google Tasks: Top 10 Tips for Getting Things Done!", "b9ee2f1e-8188-4d23-bbd6-2019257e8977", false, "ONa85JLNahw", 1, [], 493, false, "https://www.youtube.com/watch?v=ONa85JLNahw", 28, "/downloads/Jeff Su/2025-02-25 Google Tasks: Top 10 Tips for Getting Things Done!/Google Tasks: Top 10 Tips for Getting Things Done! [ONa85JLNahw].mp4", false, false, 99, ~U[2025-02-25 17:00:23Z], ~U[2026-04-23 14:39:17Z], ~U[2026-04-23 14:39:17Z], "My insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=175\n\nLearn how to maximize #Google Tasks' minimal, distraction-free design for seamless task management. Perfect for Google Workspace users who want frictionless task capture and those seeking clean, straightforward task organization.\n\n*TIMESTAMPS*\n00:00 Google Tasks vs. Todoist vs. Ticktick\n00:28 Google Tasks Standalone Interface\n01:17 Add Tasks from Gmail\n02:47 Add Tasks from Google Chat\n04:07 Tasks x Calendar Workflow\n05:02 Google Tasks Sidebar\n06:12 Google Tasks’ Mobile Workflow\n06:37 Create Tasks from Google Gemini\n07:35 Bonus Tip\n\n*RESOURCES MENTIONED*\nStandalone Google Tasks URL: http://tasks.google.com/embed/list/~default?origin=https://mail.google.com\nThe Workspace Academy: https://academy.jeffsu.org/workspace-academy?utm_source=mywebsite&utm_medium=post&utm_campaign=175\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#googletasks #productivity", "Google Tasks: Top 10 Tips for Getting Things Done!", "ONa85JLNahw", 1, 493, false, "https://www.youtube.com/watch?v=ONa85JLNahw", "/downloads/Jeff Su/2025-02-25 Google Tasks: Top 10 Tips for Getting Things Done!/Google Tasks: Top 10 Tips for Getting Things Done! [ONa85JLNahw].mp4", false, ~U[2025-02-25 17:00:23Z]] 16:39:17.835 [debug] QUERY OK source="sources" db=1.3ms idle=496.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:17.836 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=9.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:39:17.837 [debug] QUERY OK source="media_items" db=0.3ms idle=9.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [28] 16:39:17.837 [info] Kicking off download for media item #28 (ONa85JLNahw) 16:39:17.839 [debug] QUERY OK source="tasks" db=0.2ms idle=3.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [32, 28, ~U[2026-04-23 14:39:17Z], ~U[2026-04-23 14:39:17Z]] 16:39:17.839 [debug] Current batch of media processed. Will check again in 1000ms 16:39:18.242 [info] {"source":"oban","duration":887,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:39:18.840 [debug] Current batch of media processed. Will check again in 1000ms 16:39:19.841 [debug] Current batch of media processed. Will check again in 1000ms 16:39:20.594 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=aH9ctWaxGgQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/5b/1c/5b1cca2af5ddaa7d966b08bc75943a80dbfa52011701c5697c8fc47f857f7dd0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:39:20.632 [debug] Running yt-dlp command for action: download_thumbnail 16:39:20.634 [debug] QUERY OK source="settings" db=0.3ms idle=1395.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:20.634 [debug] QUERY OK source="settings" db=0.2ms idle=1396.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:20.635 [debug] QUERY OK source="settings" db=0.2ms idle=1292.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:20.635 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=aH9ctWaxGgQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/5/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/f8/37/f8371ea86dc47bafc6c7ff83a433d7b625eed9859c07a0188ef116afd958d7b5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:39:20.842 [debug] Current batch of media processed. Will check again in 1000ms 16:39:21.843 [debug] Current batch of media processed. Will check again in 1000ms 16:39:22.845 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Claude: https://claude.ai/referral/NWuVXWV9ww\n\n➡️\u00A0My free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=173\n\nLearn how #Claude AI handles complex tasks differently from #ChatGPT and Google #Gemini.\n\nIn this video we cover Claude's most powerful features: Projects for managing multi-level context, Artifacts for handling complex outputs, interactive dashboards for visualizing dense information, and data analysis capabilities for deriving business insights from unstructured data.\n\n*TIMESTAMPS*\n00:00 Claude compared to ChatGPT and Gemini\n00:23 Optimize Your Claude Settings\n01:27 Artifacts Feature in Claude\n02:43 Native Screenshot Feature\n03:47 Writing Styles\n04:46 Claude Projects\n07:19 Interactive Dashboards\n09:27 Data Analytics and Visualization\n11:57 Quick Recap\n\n*RESOURCES MENTIONED*\nClaude: https://claude.ai/referral/NWuVXWV9ww\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=173\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "duration" => 764, "filename" => "/downloads/Jeff Su/2025-02-11 I Switched 50% of My AI Work to Claude, Here's Why/I Switched 50% of My AI Work to Claude, Here's Why [RudrWy9uPZE].mp4", "id" => "RudrWy9uPZE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=RudrWy9uPZE", "playlist_index" => 29, "timestamp" => 1739278841, "title" => "I Switched 50% of My AI Work to Claude, Here's Why", "upload_date" => "20250211"} 16:39:22.846 [debug] QUERY OK source="sources" db=0.5ms idle=607.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:39:22.846 [debug] QUERY OK source="sources" db=0.2ms idle=608.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:22.847 [debug] QUERY OK source="media_items" db=0.2ms idle=609.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-11 13:00:41Z], 1] 16:39:22.849 [debug] QUERY OK source="media_items" db=1.5ms idle=609.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Claude: https://claude.ai/referral/NWuVXWV9ww\n\n➡️\u00A0My free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=173\n\nLearn how #Claude AI handles complex tasks differently from #ChatGPT and Google #Gemini.\n\nIn this video we cover Claude's most powerful features: Projects for managing multi-level context, Artifacts for handling complex outputs, interactive dashboards for visualizing dense information, and data analysis capabilities for deriving business insights from unstructured data.\n\n*TIMESTAMPS*\n00:00 Claude compared to ChatGPT and Gemini\n00:23 Optimize Your Claude Settings\n01:27 Artifacts Feature in Claude\n02:43 Native Screenshot Feature\n03:47 Writing Styles\n04:46 Claude Projects\n07:19 Interactive Dashboards\n09:27 Data Analytics and Visualization\n11:57 Quick Recap\n\n*RESOURCES MENTIONED*\nClaude: https://claude.ai/referral/NWuVXWV9ww\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=173\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "I Switched 50% of My AI Work to Claude, Here's Why", "dad575b5-7f1c-4d06-8ce6-5bde6fd84e23", false, "RudrWy9uPZE", 1, [], 764, false, "https://www.youtube.com/watch?v=RudrWy9uPZE", 29, "/downloads/Jeff Su/2025-02-11 I Switched 50% of My AI Work to Claude, Here's Why/I Switched 50% of My AI Work to Claude, Here's Why [RudrWy9uPZE].mp4", false, false, 99, ~U[2025-02-11 13:00:41Z], ~U[2026-04-23 14:39:22Z], ~U[2026-04-23 14:39:22Z], "Claude: https://claude.ai/referral/NWuVXWV9ww\n\n➡️\u00A0My free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=173\n\nLearn how #Claude AI handles complex tasks differently from #ChatGPT and Google #Gemini.\n\nIn this video we cover Claude's most powerful features: Projects for managing multi-level context, Artifacts for handling complex outputs, interactive dashboards for visualizing dense information, and data analysis capabilities for deriving business insights from unstructured data.\n\n*TIMESTAMPS*\n00:00 Claude compared to ChatGPT and Gemini\n00:23 Optimize Your Claude Settings\n01:27 Artifacts Feature in Claude\n02:43 Native Screenshot Feature\n03:47 Writing Styles\n04:46 Claude Projects\n07:19 Interactive Dashboards\n09:27 Data Analytics and Visualization\n11:57 Quick Recap\n\n*RESOURCES MENTIONED*\nClaude: https://claude.ai/referral/NWuVXWV9ww\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=173\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "I Switched 50% of My AI Work to Claude, Here's Why", "RudrWy9uPZE", 1, 764, false, "https://www.youtube.com/watch?v=RudrWy9uPZE", "/downloads/Jeff Su/2025-02-11 I Switched 50% of My AI Work to Claude, Here's Why/I Switched 50% of My AI Work to Claude, Here's Why [RudrWy9uPZE].mp4", false, ~U[2025-02-11 13:00:41Z]] 16:39:22.850 [debug] QUERY OK source="sources" db=0.2ms idle=500.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:22.850 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:39:22.851 [debug] QUERY OK source="media_items" db=0.3ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29] 16:39:22.851 [info] Kicking off download for media item #29 (RudrWy9uPZE) 16:39:22.854 [debug] QUERY OK source="tasks" db=0.2ms idle=3.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [33, 29, ~U[2026-04-23 14:39:22Z], ~U[2026-04-23 14:39:22Z]] 16:39:22.854 [debug] Current batch of media processed. Will check again in 1000ms 16:39:23.854 [debug] Current batch of media processed. Will check again in 1000ms 16:39:24.855 [debug] Current batch of media processed. Will check again in 1000ms 16:39:25.856 [debug] Current batch of media processed. Will check again in 1000ms 16:39:26.023 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=htZRCE2GgIs --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8b/20/8b20418dde658b4b125f0c818b8ad4434931bb01f1307040abfd1421c7d769ed.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:39:26.060 [debug] Running yt-dlp command for action: download_thumbnail 16:39:26.061 [debug] QUERY OK source="settings" db=0.2ms idle=1823.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:26.061 [debug] QUERY OK source="settings" db=0.1ms idle=1823.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:26.062 [debug] QUERY OK source="settings" db=0.1ms idle=1823.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:26.062 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=htZRCE2GgIs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/6/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/eb/0d/eb0d75312d61dceda347e2c9e677291a66504de17ea378df5d293428d91ae195.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:39:26.858 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔗\u00A0Link to the presented Notion page: https://www.jeffsu.org/deepseek-what-actually-matters-for-the-everyday-user?utm_source=youtube&utm_medium=video&utm_campaign=174\n\nA no-nonsense breakdown of DeepSeek's recent AI developments, clearing up common misconceptions and explaining what actually matters for everyday AI users.\n\nLearn about DeepSeek's true development costs, its relationship with OpenAI's models, data privacy concerns, and practical implications for both free and premium #AI tool users. Get clarity on #DeepSeek R1's capabilities compared to #ChatGPT, and understand how to safely access advanced AI features without compromising your data.\n\n*TIMESTAMPS*\n00:00 DeepSeek hype and misinformation\n00:28 Myth #1\n01:08 Myth #2\n02:22 Myth #3\n03:51 Myth #4\n04:57 Myth #5\n05:51 Myth #6\n06:52 Myth #7\n07:37 Myth #8\n08:13 Myth #9\n09:43 Myth #10\n10:41 Implication #1\n11:05 Implication #2\n11:40 Implication #3\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=174\nMy AI toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=174\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "duration" => 803, "filename" => "/downloads/Jeff Su/2025-02-03 DeepSeek: What Actually Matters (for the everyday user)/DeepSeek: What Actually Matters (for the everyday user) [wBi8IDngmiE].mp4", "id" => "wBi8IDngmiE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wBi8IDngmiE", "playlist_index" => 30, "timestamp" => 1738587680, "title" => "DeepSeek: What Actually Matters (for the everyday user)", "upload_date" => "20250203"} 16:39:26.859 [debug] QUERY OK source="sources" db=0.3ms idle=797.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:39:26.859 [debug] QUERY OK source="sources" db=0.3ms idle=797.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:26.860 [debug] QUERY OK source="media_items" db=0.2ms idle=797.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-03 13:01:20Z], 1] 16:39:26.862 [debug] QUERY OK source="media_items" db=1.5ms idle=622.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔗\u00A0Link to the presented Notion page: https://www.jeffsu.org/deepseek-what-actually-matters-for-the-everyday-user?utm_source=youtube&utm_medium=video&utm_campaign=174\n\nA no-nonsense breakdown of DeepSeek's recent AI developments, clearing up common misconceptions and explaining what actually matters for everyday AI users.\n\nLearn about DeepSeek's true development costs, its relationship with OpenAI's models, data privacy concerns, and practical implications for both free and premium #AI tool users. Get clarity on #DeepSeek R1's capabilities compared to #ChatGPT, and understand how to safely access advanced AI features without compromising your data.\n\n*TIMESTAMPS*\n00:00 DeepSeek hype and misinformation\n00:28 Myth #1\n01:08 Myth #2\n02:22 Myth #3\n03:51 Myth #4\n04:57 Myth #5\n05:51 Myth #6\n06:52 Myth #7\n07:37 Myth #8\n08:13 Myth #9\n09:43 Myth #10\n10:41 Implication #1\n11:05 Implication #2\n11:40 Implication #3\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=174\nMy AI toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=174\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "DeepSeek: What Actually Matters (for the everyday user)", "f65dffa5-8182-48e4-b861-4cb655e96c4c", false, "wBi8IDngmiE", 1, [], 803, false, "https://www.youtube.com/watch?v=wBi8IDngmiE", 30, "/downloads/Jeff Su/2025-02-03 DeepSeek: What Actually Matters (for the everyday user)/DeepSeek: What Actually Matters (for the everyday user) [wBi8IDngmiE].mp4", false, false, 99, ~U[2025-02-03 13:01:20Z], ~U[2026-04-23 14:39:26Z], ~U[2026-04-23 14:39:26Z], "🔗\u00A0Link to the presented Notion page: https://www.jeffsu.org/deepseek-what-actually-matters-for-the-everyday-user?utm_source=youtube&utm_medium=video&utm_campaign=174\n\nA no-nonsense breakdown of DeepSeek's recent AI developments, clearing up common misconceptions and explaining what actually matters for everyday AI users.\n\nLearn about DeepSeek's true development costs, its relationship with OpenAI's models, data privacy concerns, and practical implications for both free and premium #AI tool users. Get clarity on #DeepSeek R1's capabilities compared to #ChatGPT, and understand how to safely access advanced AI features without compromising your data.\n\n*TIMESTAMPS*\n00:00 DeepSeek hype and misinformation\n00:28 Myth #1\n01:08 Myth #2\n02:22 Myth #3\n03:51 Myth #4\n04:57 Myth #5\n05:51 Myth #6\n06:52 Myth #7\n07:37 Myth #8\n08:13 Myth #9\n09:43 Myth #10\n10:41 Implication #1\n11:05 Implication #2\n11:40 Implication #3\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=174\nMy AI toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=174\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "DeepSeek: What Actually Matters (for the everyday user)", "wBi8IDngmiE", 1, 803, false, "https://www.youtube.com/watch?v=wBi8IDngmiE", "/downloads/Jeff Su/2025-02-03 DeepSeek: What Actually Matters (for the everyday user)/DeepSeek: What Actually Matters (for the everyday user) [wBi8IDngmiE].mp4", false, ~U[2025-02-03 13:01:20Z]] 16:39:26.863 [debug] QUERY OK source="sources" db=0.4ms idle=505.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:26.864 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=4.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:39:26.865 [debug] QUERY OK source="media_items" db=0.3ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [30] 16:39:26.865 [info] Kicking off download for media item #30 (wBi8IDngmiE) 16:39:26.867 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=3.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [34, 30, ~U[2026-04-23 14:39:26Z], ~U[2026-04-23 14:39:26Z]] 16:39:26.867 [debug] Current batch of media processed. Will check again in 1000ms 16:39:27.869 [debug] Current batch of media processed. Will check again in 1000ms 16:39:28.292 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=aH9ctWaxGgQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/5/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/f8/37/f8371ea86dc47bafc6c7ff83a433d7b625eed9859c07a0188ef116afd958d7b5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:39:28.294 [debug] QUERY OK db=0.1ms queue=0.1ms idle=934.8ms begin [] 16:39:28.296 [debug] QUERY OK source="media_items" db=1.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:39:20Z], "/downloads/Jeff Su/2026-02-03 The 5 AI Tools You Need After ChatGPT (that do real work)/The 5 AI Tools You Need After ChatGPT (that do real work) [aH9ctWaxGgQ].mp4", "/downloads/Jeff Su/2026-02-03 The 5 AI Tools You Need After ChatGPT (that do real work)/The 5 AI Tools You Need After ChatGPT (that do real work) [aH9ctWaxGgQ].info.json", "/downloads/Jeff Su/2026-02-03 The 5 AI Tools You Need After ChatGPT (that do real work)/The 5 AI Tools You Need After ChatGPT (that do real work) [aH9ctWaxGgQ].nfo", "/downloads/Jeff Su/2026-02-03 The 5 AI Tools You Need After ChatGPT (that do real work)/The 5 AI Tools You Need After ChatGPT (that do real work) [aH9ctWaxGgQ]-thumb.jpg", ~U[2026-04-23 14:39:28Z], 5] 16:39:28.299 [debug] QUERY OK source="media_metadata" db=2.6ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/5/metadata.json.gz", "/config/metadata/media_items/5/thumbnail.jpg", 5, ~U[2026-04-23 14:39:28Z], ~U[2026-04-23 14:39:28Z]] 16:39:28.300 [debug] QUERY OK db=1.5ms commit [] 16:39:28.304 [debug] QUERY OK source="media_items" db=2.2ms idle=59.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [44761053, ~U[2026-04-23 14:39:28Z], 5] 16:39:28.306 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:39:28.307 [info] {"args":{"id":5},"id":9,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":40305448,"event":"job:stop","queue_time":68999843,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:39:28.314 [info] {"args":{"id":7},"id":11,"meta":{},"system_time":1776955168314184828,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:39:28.315 [debug] QUERY OK source="media_items" db=0.6ms idle=72.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" = ?) [7] 16:39:28.315 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:39:28.316 [debug] QUERY OK source="sources" db=0.2ms idle=14.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:28.316 [debug] QUERY OK source="media_profiles" db=0.3ms idle=12.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] 16:39:28.317 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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 [7] 16:39:28.318 [debug] QUERY OK source="media_metadata" db=0.2ms idle=4.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [7] 16:39:28.319 [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] 16:39:28.320 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:28.320 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:39:28.321 [debug] Running yt-dlp command for action: get_downloadable_status 16:39:28.322 [debug] QUERY OK source="settings" db=0.3ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:28.324 [debug] QUERY OK source="settings" db=0.8ms 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 [] 16:39:28.326 [debug] QUERY OK source="settings" db=1.9ms idle=5.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:28.326 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=B23W1gRT9eY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d9/41/d941b95ed4408dfa3f889e39fea1a7db95f28c3ab221bf5ccc3571ac713ad4b3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:39:28.869 [debug] Current batch of media processed. Will check again in 1000ms 16:39:29.870 [debug] Current batch of media processed. Will check again in 1000ms 16:39:30.872 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯\u00A0Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=172\n\nFeeling overwhelmed by all the #AI noise?\n\nThis video breaks down three key strategies to become AI-native in 2025: building a focused \"Minimum Viable Toolkit\" instead of chasing every new tool, implementing friction-free prompt #workflows, and creating sustainable learning systems to stay current with AI developments. Perfect for non-technical professionals looking to effectively integrate AI into their daily work.\n\n*TIMESTAMPS*\n00:00 I feel overwhelmed by AI\n00:37 The problem with learning AI\n01:20 Challenge 1: AI Tools Paralysis\n04:40 Challenge 2: Death by Prompts\n07:18 Challenge 3: Update Suffocation\n09:34 Recap of 3 Strategies\n\n*RESOURCES MENTIONED*\nAI Action Plan Doc: https://docs.google.com/document/d/1fs7hq12UqZHk7uSq6yN9x0vISouroAmV_F_Ln3Dm_R4/copy\nMy AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=172\nMy Perplexity Tutorial: https://youtu.be/YoWdogtZRw8\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "duration" => 611, "filename" => "/downloads/Jeff Su/2025-01-21 You're Not Behind: Become AI-Native (without the overwhelm)/You're Not Behind: Become AI-Native (without the overwhelm) [j63bBK_ct-M].mp4", "id" => "j63bBK_ct-M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=j63bBK_ct-M", "playlist_index" => 31, "timestamp" => 1737464465, "title" => "You're Not Behind: Become AI-Native (without the overwhelm)", "upload_date" => "20250121"} 16:39:30.873 [debug] QUERY OK source="sources" db=0.5ms idle=630.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:39:30.874 [debug] QUERY OK source="sources" db=0.3ms idle=631.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:30.874 [debug] QUERY OK source="media_items" db=0.2ms idle=632.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-21 13:01:05Z], 1] 16:39:30.885 [debug] QUERY OK source="media_items" db=9.5ms idle=632.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯\u00A0Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=172\n\nFeeling overwhelmed by all the #AI noise?\n\nThis video breaks down three key strategies to become AI-native in 2025: building a focused \"Minimum Viable Toolkit\" instead of chasing every new tool, implementing friction-free prompt #workflows, and creating sustainable learning systems to stay current with AI developments. Perfect for non-technical professionals looking to effectively integrate AI into their daily work.\n\n*TIMESTAMPS*\n00:00 I feel overwhelmed by AI\n00:37 The problem with learning AI\n01:20 Challenge 1: AI Tools Paralysis\n04:40 Challenge 2: Death by Prompts\n07:18 Challenge 3: Update Suffocation\n09:34 Recap of 3 Strategies\n\n*RESOURCES MENTIONED*\nAI Action Plan Doc: https://docs.google.com/document/d/1fs7hq12UqZHk7uSq6yN9x0vISouroAmV_F_Ln3Dm_R4/copy\nMy AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=172\nMy Perplexity Tutorial: https://youtu.be/YoWdogtZRw8\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "You're Not Behind: Become AI-Native (without the overwhelm)", "15859ec1-f063-4188-9ee1-e06e6c8e6f2d", false, "j63bBK_ct-M", 1, [], 611, false, "https://www.youtube.com/watch?v=j63bBK_ct-M", 31, "/downloads/Jeff Su/2025-01-21 You're Not Behind: Become AI-Native (without the overwhelm)/You're Not Behind: Become AI-Native (without the overwhelm) [j63bBK_ct-M].mp4", false, false, 99, ~U[2025-01-21 13:01:05Z], ~U[2026-04-23 14:39:30Z], ~U[2026-04-23 14:39:30Z], "🎯\u00A0Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=172\n\nFeeling overwhelmed by all the #AI noise?\n\nThis video breaks down three key strategies to become AI-native in 2025: building a focused \"Minimum Viable Toolkit\" instead of chasing every new tool, implementing friction-free prompt #workflows, and creating sustainable learning systems to stay current with AI developments. Perfect for non-technical professionals looking to effectively integrate AI into their daily work.\n\n*TIMESTAMPS*\n00:00 I feel overwhelmed by AI\n00:37 The problem with learning AI\n01:20 Challenge 1: AI Tools Paralysis\n04:40 Challenge 2: Death by Prompts\n07:18 Challenge 3: Update Suffocation\n09:34 Recap of 3 Strategies\n\n*RESOURCES MENTIONED*\nAI Action Plan Doc: https://docs.google.com/document/d/1fs7hq12UqZHk7uSq6yN9x0vISouroAmV_F_Ln3Dm_R4/copy\nMy AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=172\nMy Perplexity Tutorial: https://youtu.be/YoWdogtZRw8\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "You're Not Behind: Become AI-Native (without the overwhelm)", "j63bBK_ct-M", 1, 611, false, "https://www.youtube.com/watch?v=j63bBK_ct-M", "/downloads/Jeff Su/2025-01-21 You're Not Behind: Become AI-Native (without the overwhelm)/You're Not Behind: Become AI-Native (without the overwhelm) [j63bBK_ct-M].mp4", false, ~U[2025-01-21 13:01:05Z]] 16:39:30.885 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:39:30.886 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.2ms idle=12.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] 16:39:30.887 [debug] QUERY OK source="media_items" db=0.3ms idle=12.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 [31] 16:39:30.887 [info] Kicking off download for media item #31 (j63bBK_ct-M) 16:39:30.890 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [35, 31, ~U[2026-04-23 14:39:30Z], ~U[2026-04-23 14:39:30Z]] 16:39:30.890 [debug] Current batch of media processed. Will check again in 1000ms 16:39:31.890 [debug] Current batch of media processed. Will check again in 1000ms 16:39:32.230 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=htZRCE2GgIs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/6/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/eb/0d/eb0d75312d61dceda347e2c9e677291a66504de17ea378df5d293428d91ae195.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:39:32.231 [debug] QUERY OK db=0.1ms idle=1343.7ms begin [] 16:39:32.232 [debug] QUERY OK source="media_items" db=1.2ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:39:26Z], "/downloads/Jeff Su/2026-01-20 The Only AI Tools You Need (12-Minute Guide)/The Only AI Tools You Need (12-Minute Guide) [htZRCE2GgIs].mp4", "/downloads/Jeff Su/2026-01-20 The Only AI Tools You Need (12-Minute Guide)/The Only AI Tools You Need (12-Minute Guide) [htZRCE2GgIs].info.json", "/downloads/Jeff Su/2026-01-20 The Only AI Tools You Need (12-Minute Guide)/The Only AI Tools You Need (12-Minute Guide) [htZRCE2GgIs].nfo", "/downloads/Jeff Su/2026-01-20 The Only AI Tools You Need (12-Minute Guide)/The Only AI Tools You Need (12-Minute Guide) [htZRCE2GgIs]-thumb.jpg", ~U[2026-04-23 14:39:32Z], 6] 16:39:32.234 [debug] QUERY OK source="media_metadata" db=1.0ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/6/metadata.json.gz", "/config/metadata/media_items/6/thumbnail.jpg", 6, ~U[2026-04-23 14:39:32Z], ~U[2026-04-23 14:39:32Z]] 16:39:32.234 [debug] QUERY OK db=0.3ms commit [] 16:39:32.237 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=1347.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [38770108, ~U[2026-04-23 14:39:32Z], 6] 16:39:32.238 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:39:32.239 [info] {"args":{"id":6},"id":10,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":35803105,"event":"job:stop","queue_time":73433893,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:39:32.247 [info] {"args":{"id":8},"id":12,"meta":{},"system_time":1776955172247189672,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:39:32.248 [debug] QUERY OK source="media_items" db=0.5ms idle=12.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" = ?) [8] 16:39:32.250 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:39:32.252 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=12.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:32.254 [debug] QUERY OK source="media_profiles" db=1.7ms queue=0.1ms idle=13.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] 16:39:32.256 [debug] QUERY OK source="media_items" db=0.9ms idle=13.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [8] 16:39:32.258 [debug] QUERY OK source="media_metadata" db=0.2ms idle=10.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [8] 16:39:32.258 [debug] QUERY OK source="media_profiles" db=0.6ms idle=9.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:39:32.260 [debug] QUERY OK source="settings" db=0.8ms idle=7.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:32.261 [debug] QUERY OK source="settings" db=0.6ms idle=6.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:32.263 [debug] Running yt-dlp command for action: get_downloadable_status 16:39:32.264 [debug] QUERY OK source="settings" db=0.3ms idle=7.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:32.266 [debug] QUERY OK source="settings" db=1.7ms 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 [] 16:39:32.268 [debug] QUERY OK source="settings" db=2.0ms idle=7.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:32.270 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bTLmt9BKGVc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5c/6b/5c6b0a57c28b6dba82bf718be3aa815e64cbb960494863432ef3260fd9d28ab7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:39:32.891 [debug] Current batch of media processed. Will check again in 1000ms 16:39:33.892 [debug] Current batch of media processed. Will check again in 1000ms 16:39:34.899 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯\u00A0My free Job Search Toolkit - https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=171\n\nMaster the art of salary #negotiation with evidence-based strategies backed by LinkedIn's comprehensive report of 93,000+ data points.\n\nLearn why 93% of candidates who negotiate receive higher offers, discover how negotiation can double your lifetime earnings, and implement three practical techniques: avoiding the early salary trap, using the bolstering range method, and applying the Double Nope rule.\n\n*TIMESTAMPS*\n00:00 Evidence-Based Negotiation Tips for Job Seekers\n00:18 Key Takeaway #1\n01:42 Key Takeaway #2\n02:42 Key Takeaway #3\n03:43 Avoid the “Early Ask” Salary Trap\n05:10 Prepare Your Bolstering Range\n06:17 Adhere to the Double Nope Rule\n07:30 Bonus Tip for Job Seekers\n\n*RESOURCES MENTIONED*\nSalary Calculation Spreadsheet: https://www.jeffsu.org/negotiate-a-higher-salary-3-evidence-based-tips\nAustin Belcak's Negotiation Script: https://cultivatedculture.com/salary-resources/\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#jobsearch #joboffer", "duration" => 479, "filename" => "/downloads/Jeff Su/2025-01-07 How to Negotiate a Higher Salary: 3 Evidence-Based Tips!/How to Negotiate a Higher Salary: 3 Evidence-Based Tips! [e2_HXKNIzaM].mp4", "id" => "e2_HXKNIzaM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=e2_HXKNIzaM", "playlist_index" => 32, "timestamp" => 1736254852, "title" => "How to Negotiate a Higher Salary: 3 Evidence-Based Tips!", "upload_date" => "20250107"} 16:39:34.902 [debug] QUERY OK source="sources" db=2.4ms queue=0.1ms idle=657.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:39:34.904 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=660.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:34.907 [debug] QUERY OK source="media_items" db=2.0ms idle=663.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-07 13:00:52Z], 1] 16:39:34.912 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=666.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯\u00A0My free Job Search Toolkit - https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=171\n\nMaster the art of salary #negotiation with evidence-based strategies backed by LinkedIn's comprehensive report of 93,000+ data points.\n\nLearn why 93% of candidates who negotiate receive higher offers, discover how negotiation can double your lifetime earnings, and implement three practical techniques: avoiding the early salary trap, using the bolstering range method, and applying the Double Nope rule.\n\n*TIMESTAMPS*\n00:00 Evidence-Based Negotiation Tips for Job Seekers\n00:18 Key Takeaway #1\n01:42 Key Takeaway #2\n02:42 Key Takeaway #3\n03:43 Avoid the “Early Ask” Salary Trap\n05:10 Prepare Your Bolstering Range\n06:17 Adhere to the Double Nope Rule\n07:30 Bonus Tip for Job Seekers\n\n*RESOURCES MENTIONED*\nSalary Calculation Spreadsheet: https://www.jeffsu.org/negotiate-a-higher-salary-3-evidence-based-tips\nAustin Belcak's Negotiation Script: https://cultivatedculture.com/salary-resources/\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#jobsearch #joboffer", "How to Negotiate a Higher Salary: 3 Evidence-Based Tips!", "d498f930-fbf6-48a1-ae64-aab887355b72", false, "e2_HXKNIzaM", 1, [], 479, false, "https://www.youtube.com/watch?v=e2_HXKNIzaM", 32, "/downloads/Jeff Su/2025-01-07 How to Negotiate a Higher Salary: 3 Evidence-Based Tips!/How to Negotiate a Higher Salary: 3 Evidence-Based Tips! [e2_HXKNIzaM].mp4", false, false, 99, ~U[2025-01-07 13:00:52Z], ~U[2026-04-23 14:39:34Z], ~U[2026-04-23 14:39:34Z], "🎯\u00A0My free Job Search Toolkit - https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=171\n\nMaster the art of salary #negotiation with evidence-based strategies backed by LinkedIn's comprehensive report of 93,000+ data points.\n\nLearn why 93% of candidates who negotiate receive higher offers, discover how negotiation can double your lifetime earnings, and implement three practical techniques: avoiding the early salary trap, using the bolstering range method, and applying the Double Nope rule.\n\n*TIMESTAMPS*\n00:00 Evidence-Based Negotiation Tips for Job Seekers\n00:18 Key Takeaway #1\n01:42 Key Takeaway #2\n02:42 Key Takeaway #3\n03:43 Avoid the “Early Ask” Salary Trap\n05:10 Prepare Your Bolstering Range\n06:17 Adhere to the Double Nope Rule\n07:30 Bonus Tip for Job Seekers\n\n*RESOURCES MENTIONED*\nSalary Calculation Spreadsheet: https://www.jeffsu.org/negotiate-a-higher-salary-3-evidence-based-tips\nAustin Belcak's Negotiation Script: https://cultivatedculture.com/salary-resources/\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#jobsearch #joboffer", "How to Negotiate a Higher Salary: 3 Evidence-Based Tips!", "e2_HXKNIzaM", 1, 479, false, "https://www.youtube.com/watch?v=e2_HXKNIzaM", "/downloads/Jeff Su/2025-01-07 How to Negotiate a Higher Salary: 3 Evidence-Based Tips!/How to Negotiate a Higher Salary: 3 Evidence-Based Tips! [e2_HXKNIzaM].mp4", false, ~U[2025-01-07 13:00:52Z]] 16:39:34.913 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=538.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:34.915 [debug] QUERY OK source="media_profiles" db=1.5ms idle=11.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:39:34.917 [debug] QUERY OK source="media_items" db=1.7ms idle=11.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [32] 16:39:34.917 [info] Kicking off download for media item #32 (e2_HXKNIzaM) 16:39:34.924 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=10.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [36, 32, ~U[2026-04-23 14:39:34Z], ~U[2026-04-23 14:39:34Z]] 16:39:34.924 [debug] Current batch of media processed. Will check again in 1000ms 16:39:34.933 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=B23W1gRT9eY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d9/41/d941b95ed4408dfa3f889e39fea1a7db95f28c3ab221bf5ccc3571ac713ad4b3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:39:34.933 [debug] Running yt-dlp command for action: download 16:39:34.934 [debug] QUERY OK source="settings" db=0.5ms idle=18.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:34.935 [debug] QUERY OK source="settings" db=0.1ms idle=17.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:34.935 [debug] QUERY OK source="settings" db=0.1ms idle=11.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:34.935 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=B23W1gRT9eY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/70/3f/703fda3a328df06f32143055779026c5749b6fa9cd47e76c00dde76bce671235.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:39:35.925 [debug] Current batch of media processed. Will check again in 1000ms 16:39:36.926 [debug] Current batch of media processed. Will check again in 1000ms 16:39:37.927 [debug] Current batch of media processed. Will check again in 1000ms 16:39:38.411 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bTLmt9BKGVc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5c/6b/5c6b0a57c28b6dba82bf718be3aa815e64cbb960494863432ef3260fd9d28ab7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:39:38.412 [debug] Running yt-dlp command for action: download 16:39:38.413 [debug] QUERY OK source="settings" db=0.8ms idle=170.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:38.413 [debug] QUERY OK source="settings" db=0.1ms idle=171.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:38.413 [debug] QUERY OK source="settings" db=0.1ms idle=171.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:39:38.414 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bTLmt9BKGVc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/7c/8c/7c8c4fd950c7625e05b5e0f62a145893683745946177bfb3b33b3703309fbe4e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:39:38.929 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "➡️\u00A0Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=170\n\nPut simply, #NotebookLM is perfect for professionals working with large amounts of documentation who need reliable information synthesis.\n\nIn this video I go through how to leverage NotebookLM effectively for analyzing documents, PDFs, and video content across multiple formats.\n\nLet’s get started!\n\n*TIMESTAMPS*\n00:00 When to use NotebookLM\n00:36 NotebookLM Basics\n02:56 Step-by-step Workflow\n06:00 Focused Knowledge Retrieval\n08:09 Project Context Engine\n09:46 Targeted Insights Studio\n11:33 Beyond the Basics\n\n*RESOURCES MENTIONED*\nMy insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=170\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - https://get.tealhq.com/jeffsu\n\n#AI #productivity", "duration" => 756, "filename" => "/downloads/Jeff Su/2024-12-10 Learn 80% of NotebookLM in Under 13 Minutes!/Learn 80% of NotebookLM in Under 13 Minutes! [EOmgC3-hznM].mp4", "id" => "EOmgC3-hznM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=EOmgC3-hznM", "playlist_index" => 33, "timestamp" => 1733835616, "title" => "Learn 80% of NotebookLM in Under 13 Minutes!", "upload_date" => "20241210"} 16:39:38.929 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=687.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:39:38.930 [debug] QUERY OK source="sources" db=0.2ms idle=547.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:38.931 [debug] QUERY OK source="media_items" db=0.2ms idle=517.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-10 13:00:16Z], 1] 16:39:38.933 [debug] QUERY OK source="media_items" db=1.3ms idle=517.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["➡️\u00A0Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=170\n\nPut simply, #NotebookLM is perfect for professionals working with large amounts of documentation who need reliable information synthesis.\n\nIn this video I go through how to leverage NotebookLM effectively for analyzing documents, PDFs, and video content across multiple formats.\n\nLet’s get started!\n\n*TIMESTAMPS*\n00:00 When to use NotebookLM\n00:36 NotebookLM Basics\n02:56 Step-by-step Workflow\n06:00 Focused Knowledge Retrieval\n08:09 Project Context Engine\n09:46 Targeted Insights Studio\n11:33 Beyond the Basics\n\n*RESOURCES MENTIONED*\nMy insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=170\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - https://get.tealhq.com/jeffsu\n\n#AI #productivity", "Learn 80% of NotebookLM in Under 13 Minutes!", "de72d367-094a-4a35-aa4f-af32e12551b9", false, "EOmgC3-hznM", 1, [], 756, false, "https://www.youtube.com/watch?v=EOmgC3-hznM", 33, "/downloads/Jeff Su/2024-12-10 Learn 80% of NotebookLM in Under 13 Minutes!/Learn 80% of NotebookLM in Under 13 Minutes! [EOmgC3-hznM].mp4", false, false, 99, ~U[2024-12-10 13:00:16Z], ~U[2026-04-23 14:39:38Z], ~U[2026-04-23 14:39:38Z], "➡️\u00A0Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=170\n\nPut simply, #NotebookLM is perfect for professionals working with large amounts of documentation who need reliable information synthesis.\n\nIn this video I go through how to leverage NotebookLM effectively for analyzing documents, PDFs, and video content across multiple formats.\n\nLet’s get started!\n\n*TIMESTAMPS*\n00:00 When to use NotebookLM\n00:36 NotebookLM Basics\n02:56 Step-by-step Workflow\n06:00 Focused Knowledge Retrieval\n08:09 Project Context Engine\n09:46 Targeted Insights Studio\n11:33 Beyond the Basics\n\n*RESOURCES MENTIONED*\nMy insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=170\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - https://get.tealhq.com/jeffsu\n\n#AI #productivity", "Learn 80% of NotebookLM in Under 13 Minutes!", "EOmgC3-hznM", 1, 756, false, "https://www.youtube.com/watch?v=EOmgC3-hznM", "/downloads/Jeff Su/2024-12-10 Learn 80% of NotebookLM in Under 13 Minutes!/Learn 80% of NotebookLM in Under 13 Minutes! [EOmgC3-hznM].mp4", false, ~U[2024-12-10 13:00:16Z]] 16:39:38.933 [debug] QUERY OK source="sources" db=0.4ms idle=519.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:38.934 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.3ms idle=4.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:39:38.935 [debug] QUERY OK source="media_items" db=0.4ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [33] 16:39:38.935 [info] Kicking off download for media item #33 (EOmgC3-hznM) 16:39:38.940 [debug] QUERY OK source="tasks" db=0.9ms idle=5.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [37, 33, ~U[2026-04-23 14:39:38Z], ~U[2026-04-23 14:39:38Z]] 16:39:38.941 [debug] Current batch of media processed. Will check again in 1000ms 16:39:39.951 [debug] Current batch of media processed. Will check again in 1000ms 16:39:40.952 [debug] Current batch of media processed. Will check again in 1000ms 16:39:41.953 [debug] Current batch of media processed. Will check again in 1000ms 16:39:42.955 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "💡\u00A0The Workspace Academy: https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=169\n\nLearn 11 powerful #GoogleKeep features to transform your digital note-taking and #organization.\n\nFrom quick capture shortcuts and advanced search techniques to calendar integration and automated text extraction from images.\n\nPerfect for professionals looking to streamline their workflow, manage meeting notes more effectively, and create a sustainable system for processing information using Google Keep.\n\n*TIMESTAMPS*\n00:00 Google Keep Tips for Productivity\n00:10 Best way to Capture Notes in Keep\n00:40 Google Keep Settings\n01:20 Hidden Search Feature\n01:54 Bullet Points in Google Keep\n02:25 Transfer Information from Keep\n03:34 Link Google Keep to Calendar\n04:17 Save Websites to Google Keep\n05:05 Filter Notes by Color\n05:45 Create Checklists in Google Keep\n06:11 Grab Image Text from Photos\n07:04 Capture Voice Notes in Keep\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=169\nAccess my templates for free: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=169\nLinks & URLs mentioned in the video: https://www.jeffsu.org/google-keep-11-hidden-tips-for-better-digital-organization\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#productivity", "duration" => 474, "filename" => "/downloads/Jeff Su/2024-11-26 Google Keep: Top 11 Tips for Insane Digital Organization!/Google Keep: Top 11 Tips for Insane Digital Organization! [aKDqz07y2Mw].mp4", "id" => "aKDqz07y2Mw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=aKDqz07y2Mw", "playlist_index" => 34, "timestamp" => 1732626001, "title" => "Google Keep: Top 11 Tips for Insane Digital Organization!", "upload_date" => "20241126"} 16:39:42.957 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=714.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:39:42.959 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=715.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:42.961 [debug] QUERY OK source="media_items" db=2.0ms queue=0.1ms idle=717.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-26 13:00:01Z], 1] 16:39:42.966 [debug] QUERY OK source="media_items" db=3.4ms idle=720.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["💡\u00A0The Workspace Academy: https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=169\n\nLearn 11 powerful #GoogleKeep features to transform your digital note-taking and #organization.\n\nFrom quick capture shortcuts and advanced search techniques to calendar integration and automated text extraction from images.\n\nPerfect for professionals looking to streamline their workflow, manage meeting notes more effectively, and create a sustainable system for processing information using Google Keep.\n\n*TIMESTAMPS*\n00:00 Google Keep Tips for Productivity\n00:10 Best way to Capture Notes in Keep\n00:40 Google Keep Settings\n01:20 Hidden Search Feature\n01:54 Bullet Points in Google Keep\n02:25 Transfer Information from Keep\n03:34 Link Google Keep to Calendar\n04:17 Save Websites to Google Keep\n05:05 Filter Notes by Color\n05:45 Create Checklists in Google Keep\n06:11 Grab Image Text from Photos\n07:04 Capture Voice Notes in Keep\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=169\nAccess my templates for free: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=169\nLinks & URLs mentioned in the video: https://www.jeffsu.org/google-keep-11-hidden-tips-for-better-digital-organization\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#productivity", "Google Keep: Top 11 Tips for Insane Digital Organization!", "128d8a85-b063-49f3-bbbe-05d383c797ff", false, "aKDqz07y2Mw", 1, [], 474, false, "https://www.youtube.com/watch?v=aKDqz07y2Mw", 34, "/downloads/Jeff Su/2024-11-26 Google Keep: Top 11 Tips for Insane Digital Organization!/Google Keep: Top 11 Tips for Insane Digital Organization! [aKDqz07y2Mw].mp4", false, false, 99, ~U[2024-11-26 13:00:01Z], ~U[2026-04-23 14:39:42Z], ~U[2026-04-23 14:39:42Z], "💡\u00A0The Workspace Academy: https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=169\n\nLearn 11 powerful #GoogleKeep features to transform your digital note-taking and #organization.\n\nFrom quick capture shortcuts and advanced search techniques to calendar integration and automated text extraction from images.\n\nPerfect for professionals looking to streamline their workflow, manage meeting notes more effectively, and create a sustainable system for processing information using Google Keep.\n\n*TIMESTAMPS*\n00:00 Google Keep Tips for Productivity\n00:10 Best way to Capture Notes in Keep\n00:40 Google Keep Settings\n01:20 Hidden Search Feature\n01:54 Bullet Points in Google Keep\n02:25 Transfer Information from Keep\n03:34 Link Google Keep to Calendar\n04:17 Save Websites to Google Keep\n05:05 Filter Notes by Color\n05:45 Create Checklists in Google Keep\n06:11 Grab Image Text from Photos\n07:04 Capture Voice Notes in Keep\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=169\nAccess my templates for free: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=169\nLinks & URLs mentioned in the video: https://www.jeffsu.org/google-keep-11-hidden-tips-for-better-digital-organization\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#productivity", "Google Keep: Top 11 Tips for Insane Digital Organization!", "aKDqz07y2Mw", 1, 474, false, "https://www.youtube.com/watch?v=aKDqz07y2Mw", "/downloads/Jeff Su/2024-11-26 Google Keep: Top 11 Tips for Insane Digital Organization!/Google Keep: Top 11 Tips for Insane Digital Organization! [aKDqz07y2Mw].mp4", false, ~U[2024-11-26 13:00:01Z]] 16:39:42.967 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=575.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:42.968 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=10.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] 16:39:42.969 [debug] QUERY OK source="media_items" db=0.4ms idle=9.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [34] 16:39:42.969 [info] Kicking off download for media item #34 (aKDqz07y2Mw) 16:39:42.972 [debug] QUERY OK source="tasks" db=0.3ms idle=4.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [38, 34, ~U[2026-04-23 14:39:42Z], ~U[2026-04-23 14:39:42Z]] 16:39:42.972 [debug] Current batch of media processed. Will check again in 1000ms 16:39:43.972 [debug] Current batch of media processed. Will check again in 1000ms 16:39:44.973 [debug] Current batch of media processed. Will check again in 1000ms 16:39:45.921 [info] CONNECTED TO Phoenix.LiveView.Socket in 40µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DBZ0BAIVW1wwEnR_ZgtJcR4COQsmUjkfHr0fJWn8sgM0Vg0EXNHXddpu", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "1", "_track_static" => %{"0" => "https://pinch.msdlx.de/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinch.msdlx.de/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 16:39:45.974 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "downloaded"} 16:39:45.975 [debug] QUERY OK source="media_items" db=0.3ms idle=1732.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)) [] 16:39:45.976 [debug] QUERY OK source="media_items" db=0.9ms idle=1733.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] 16:39:45.977 [debug] QUERY OK source="sources" db=0.3ms idle=1734.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:45.977 [debug] Replied in 2ms 16:39:45.980 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎉\u00A0Unlock AI for $10 per month →\u00A0https://ntn.so/JeffSu\n\n📑\u00A0Grab my Notion Toolkit for free: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=168\n\nMaster Notion with 8 practical workflow tips including notes threads for recurring meetings, inbox views for database management, and advanced techniques for Notion AI integration.\n\nLearn essential productivity features like dynamic Buttons, how best to use Synced Blocks in Notion, and the PARA organization method. This is perfect for both beginners looking to get started and intermediate users wanting to optimize their workspace!\n\n*TIMESTAMPS*\n00:00 Notion made easy\n00:10 Use Notes Threads\n01:48 Add an Outstanding section\n02:36 Naming Convention for Notes\n03:27 Grounding outputs with Notion AI\n05:31 Always create Inbox Views\n07:26 Backend vs. Frontend\n09:41 The True Power of Buttons\n11:29 Best Practices for Synced Blocks\n\n*RESOURCES MENTIONED*\nGrab my Notion Toolkit for free: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=168\nSign up for my newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=168\nMy Notion Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2yQ69AlfI2EMtLUiw_uNPfL\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#NotionPartner #Notion #NotionAI", "duration" => 797, "filename" => "/downloads/Jeff Su/2024-11-12 Notion was HARD until I Learned These 8 Tips!/Notion was HARD until I Learned These 8 Tips! [N0hod3YFCy4].mp4", "id" => "N0hod3YFCy4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=N0hod3YFCy4", "playlist_index" => 35, "timestamp" => 1731416432, "title" => "Notion was HARD until I Learned These 8 Tips!", "upload_date" => "20241112"} 16:39:45.981 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "pending"} 16:39:45.981 [debug] QUERY OK source="sources" db=0.7ms idle=1586.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:39:45.982 [debug] QUERY OK source="media_items" db=0.6ms idle=584.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 16:39:45.983 [debug] QUERY OK source="sources" db=0.7ms 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" = ?) [1] 16:39:45.983 [debug] QUERY OK source="media_items" db=0.3ms idle=6.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-12 13:00:32Z], 1] 16:39:45.984 [debug] QUERY OK source="media_items" db=1.5ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 16:39:45.986 [debug] QUERY OK source="sources" db=1.7ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:45.986 [debug] Replied in 5ms 16:39:45.986 [debug] QUERY OK source="media_items" db=2.0ms idle=2.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎉\u00A0Unlock AI for $10 per month →\u00A0https://ntn.so/JeffSu\n\n📑\u00A0Grab my Notion Toolkit for free: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=168\n\nMaster Notion with 8 practical workflow tips including notes threads for recurring meetings, inbox views for database management, and advanced techniques for Notion AI integration.\n\nLearn essential productivity features like dynamic Buttons, how best to use Synced Blocks in Notion, and the PARA organization method. This is perfect for both beginners looking to get started and intermediate users wanting to optimize their workspace!\n\n*TIMESTAMPS*\n00:00 Notion made easy\n00:10 Use Notes Threads\n01:48 Add an Outstanding section\n02:36 Naming Convention for Notes\n03:27 Grounding outputs with Notion AI\n05:31 Always create Inbox Views\n07:26 Backend vs. Frontend\n09:41 The True Power of Buttons\n11:29 Best Practices for Synced Blocks\n\n*RESOURCES MENTIONED*\nGrab my Notion Toolkit for free: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=168\nSign up for my newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=168\nMy Notion Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2yQ69AlfI2EMtLUiw_uNPfL\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#NotionPartner #Notion #NotionAI", "Notion was HARD until I Learned These 8 Tips!", "38dc6471-3750-4f1a-b5bd-e9b13d3c4055", false, "N0hod3YFCy4", 1, [], 797, false, "https://www.youtube.com/watch?v=N0hod3YFCy4", 35, "/downloads/Jeff Su/2024-11-12 Notion was HARD until I Learned These 8 Tips!/Notion was HARD until I Learned These 8 Tips! [N0hod3YFCy4].mp4", false, false, 99, ~U[2024-11-12 13:00:32Z], ~U[2026-04-23 14:39:45Z], ~U[2026-04-23 14:39:45Z], "🎉\u00A0Unlock AI for $10 per month →\u00A0https://ntn.so/JeffSu\n\n📑\u00A0Grab my Notion Toolkit for free: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=168\n\nMaster Notion with 8 practical workflow tips including notes threads for recurring meetings, inbox views for database management, and advanced techniques for Notion AI integration.\n\nLearn essential productivity features like dynamic Buttons, how best to use Synced Blocks in Notion, and the PARA organization method. This is perfect for both beginners looking to get started and intermediate users wanting to optimize their workspace!\n\n*TIMESTAMPS*\n00:00 Notion made easy\n00:10 Use Notes Threads\n01:48 Add an Outstanding section\n02:36 Naming Convention for Notes\n03:27 Grounding outputs with Notion AI\n05:31 Always create Inbox Views\n07:26 Backend vs. Frontend\n09:41 The True Power of Buttons\n11:29 Best Practices for Synced Blocks\n\n*RESOURCES MENTIONED*\nGrab my Notion Toolkit for free: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=168\nSign up for my newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=168\nMy Notion Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2yQ69AlfI2EMtLUiw_uNPfL\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#NotionPartner #Notion #NotionAI", "Notion was HARD until I Learned These 8 Tips!", "N0hod3YFCy4", 1, 797, false, "https://www.youtube.com/watch?v=N0hod3YFCy4", "/downloads/Jeff Su/2024-11-12 Notion was HARD until I Learned These 8 Tips!/Notion was HARD until I Learned These 8 Tips! [N0hod3YFCy4].mp4", false, ~U[2024-11-12 13:00:32Z]] 16:39:45.987 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:45.987 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:39:45.988 [debug] QUERY OK source="media_items" db=0.4ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [35] 16:39:45.988 [info] Kicking off download for media item #35 (N0hod3YFCy4) 16:39:45.989 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:39:45.991 [debug] QUERY OK source="tasks" db=1.0ms idle=3.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 16:39:45.992 [debug] QUERY OK source="media_items" db=0.9ms idle=3.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [7, 8] 16:39:45.993 [debug] QUERY OK source="tasks" db=0.6ms idle=1.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [39, 35, ~U[2026-04-23 14:39:45Z], ~U[2026-04-23 14:39:45Z]] 16:39:45.993 [debug] Current batch of media processed. Will check again in 1000ms 16:39:45.994 [debug] QUERY OK source="sources" db=2.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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:45.994 [debug] Replied in 4ms 16:39:45.996 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:39:45.996 [debug] Replied in 127µs 16:39:46.067 [debug] HANDLE EVENT "check_matching_text" in Pinchflat.UpgradeButtonLive Parameters: %{"_target" => ["unlock-pro-textbox"], "_unused_unlock-pro-textbox" => "", "unlock-pro-textbox" => ""} 16:39:46.067 [debug] Replied in 175µs 16:39:46.993 [debug] Current batch of media processed. Will check again in 1000ms 16:39:47.995 [debug] Current batch of media processed. Will check again in 1000ms 16:39:48.244 [info] {"source":"oban","duration":1070,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:39:48.996 [debug] Current batch of media processed. Will check again in 1000ms 16:39:49.998 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Here are 20 essential #Gmail settings that will transform your inbox experience!\n\nFrom disabling annoying nudges to setting up efficient swipe actions on mobile, this comprehensive guide covers both desktop and iOS/Android Gmail optimization. Perfect for anyone looking to declutter their inbox and streamline their email workflow.\n\n*TIMESTAMPS*\n00:00 20 Gmail Settings You Need to Change\n00:13 Declutter your inbox\n00:30 Disable Hover Actions\n00:45 Maximize Undo Send\n01:11 Update Button Labels\n01:26 Must-Use Shortcuts\n02:05 Auto-Advance conversations\n02:45 Turn Off Ads in Gmail\n03:06 Disable Nudges\n03:25 Gmail Signature Settings\n03:38 Cleaner Layout in Gmail\n04:18 System Label Settings in Gmail\n05:01 Category Settings in Gmail\n05:24 Enable Gmail Templates\n06:12 Gemini Settings in Gmail\n06:34 Android Theme in Gmail\n06:43 Swipe actions in Gmail Mobile app\n07:05 Conversation Density\n07:25 Default Apps in iOS\n07:42 Turn off Additional Diagnostics\n\n*RESOURCES MENTIONED*\n\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=167\nDownload my Gmail filters: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=167\nGoogle Workspace Tutorial Playlist: https://www.youtube.com/watch?v=MM-MPS57qKA&list=PLo-kPya_Ww2yGaxjUQxUK4zFv76eM-Nzj\nTask Zero for Gmail workflow: https://academy.jeffsu.org/workspace-academy?utm_source=mywebsite&utm_medium=post&utm_campaign=167\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#productivity #inboxmanagement", "duration" => 483, "filename" => "/downloads/Jeff Su/2024-10-29 20 Gmail Settings EVERYONE Needs to Change!/20 Gmail Settings EVERYONE Needs to Change! [v-9CVpuoIEo].mp4", "id" => "v-9CVpuoIEo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=v-9CVpuoIEo", "playlist_index" => 36, "timestamp" => 1730206870, "title" => "20 Gmail Settings EVERYONE Needs to Change!", "upload_date" => "20241029"} 16:39:49.999 [debug] QUERY OK source="sources" db=0.3ms idle=1595.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:39:49.999 [debug] QUERY OK source="sources" db=0.2ms idle=757.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:50.000 [debug] QUERY OK source="media_items" db=0.5ms idle=757.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-29 13:01:10Z], 1] 16:39:50.003 [debug] QUERY OK source="media_items" db=2.0ms idle=759.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Here are 20 essential #Gmail settings that will transform your inbox experience!\n\nFrom disabling annoying nudges to setting up efficient swipe actions on mobile, this comprehensive guide covers both desktop and iOS/Android Gmail optimization. Perfect for anyone looking to declutter their inbox and streamline their email workflow.\n\n*TIMESTAMPS*\n00:00 20 Gmail Settings You Need to Change\n00:13 Declutter your inbox\n00:30 Disable Hover Actions\n00:45 Maximize Undo Send\n01:11 Update Button Labels\n01:26 Must-Use Shortcuts\n02:05 Auto-Advance conversations\n02:45 Turn Off Ads in Gmail\n03:06 Disable Nudges\n03:25 Gmail Signature Settings\n03:38 Cleaner Layout in Gmail\n04:18 System Label Settings in Gmail\n05:01 Category Settings in Gmail\n05:24 Enable Gmail Templates\n06:12 Gemini Settings in Gmail\n06:34 Android Theme in Gmail\n06:43 Swipe actions in Gmail Mobile app\n07:05 Conversation Density\n07:25 Default Apps in iOS\n07:42 Turn off Additional Diagnostics\n\n*RESOURCES MENTIONED*\n\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=167\nDownload my Gmail filters: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=167\nGoogle Workspace Tutorial Playlist: https://www.youtube.com/watch?v=MM-MPS57qKA&list=PLo-kPya_Ww2yGaxjUQxUK4zFv76eM-Nzj\nTask Zero for Gmail workflow: https://academy.jeffsu.org/workspace-academy?utm_source=mywebsite&utm_medium=post&utm_campaign=167\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#productivity #inboxmanagement", "20 Gmail Settings EVERYONE Needs to Change!", "ae30b4d5-efc0-41ec-8964-b354f6fd3e64", false, "v-9CVpuoIEo", 1, [], 483, false, "https://www.youtube.com/watch?v=v-9CVpuoIEo", 36, "/downloads/Jeff Su/2024-10-29 20 Gmail Settings EVERYONE Needs to Change!/20 Gmail Settings EVERYONE Needs to Change! [v-9CVpuoIEo].mp4", false, false, 99, ~U[2024-10-29 13:01:10Z], ~U[2026-04-23 14:39:50Z], ~U[2026-04-23 14:39:50Z], "Here are 20 essential #Gmail settings that will transform your inbox experience!\n\nFrom disabling annoying nudges to setting up efficient swipe actions on mobile, this comprehensive guide covers both desktop and iOS/Android Gmail optimization. Perfect for anyone looking to declutter their inbox and streamline their email workflow.\n\n*TIMESTAMPS*\n00:00 20 Gmail Settings You Need to Change\n00:13 Declutter your inbox\n00:30 Disable Hover Actions\n00:45 Maximize Undo Send\n01:11 Update Button Labels\n01:26 Must-Use Shortcuts\n02:05 Auto-Advance conversations\n02:45 Turn Off Ads in Gmail\n03:06 Disable Nudges\n03:25 Gmail Signature Settings\n03:38 Cleaner Layout in Gmail\n04:18 System Label Settings in Gmail\n05:01 Category Settings in Gmail\n05:24 Enable Gmail Templates\n06:12 Gemini Settings in Gmail\n06:34 Android Theme in Gmail\n06:43 Swipe actions in Gmail Mobile app\n07:05 Conversation Density\n07:25 Default Apps in iOS\n07:42 Turn off Additional Diagnostics\n\n*RESOURCES MENTIONED*\n\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=167\nDownload my Gmail filters: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=167\nGoogle Workspace Tutorial Playlist: https://www.youtube.com/watch?v=MM-MPS57qKA&list=PLo-kPya_Ww2yGaxjUQxUK4zFv76eM-Nzj\nTask Zero for Gmail workflow: https://academy.jeffsu.org/workspace-academy?utm_source=mywebsite&utm_medium=post&utm_campaign=167\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#productivity #inboxmanagement", "20 Gmail Settings EVERYONE Needs to Change!", "v-9CVpuoIEo", 1, 483, false, "https://www.youtube.com/watch?v=v-9CVpuoIEo", "/downloads/Jeff Su/2024-10-29 20 Gmail Settings EVERYONE Needs to Change!/20 Gmail Settings EVERYONE Needs to Change! [v-9CVpuoIEo].mp4", false, ~U[2024-10-29 13:01:10Z]] 16:39:50.004 [debug] QUERY OK source="sources" db=0.3ms idle=599.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:50.005 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:39:50.007 [debug] QUERY OK source="media_items" db=1.1ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [36] 16:39:50.007 [info] Kicking off download for media item #36 (v-9CVpuoIEo) 16:39:50.010 [debug] QUERY OK source="tasks" db=0.2ms idle=5.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [40, 36, ~U[2026-04-23 14:39:50Z], ~U[2026-04-23 14:39:50Z]] 16:39:50.010 [debug] Current batch of media processed. Will check again in 1000ms 16:39:51.011 [debug] Current batch of media processed. Will check again in 1000ms 16:39:52.012 [debug] Current batch of media processed. Will check again in 1000ms 16:39:53.013 [debug] Current batch of media processed. Will check again in 1000ms 16:39:54.015 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sign up for Google’s Project Management Certification on Coursera here: https://imp.i384100.net/js-project-management\n\nGrab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=166\n\nSince we’re all pretty tired of generic #ChatGPT tutorials, this video dives deep into 5 practical ways professionals can leverage ChatGPT to enhance #productivity and achieve better results.\n\n*TIMESTAMPS*\n00:00 How to use ChatGPT for work\n00:10 Context Cheating\n02:10 Convert with Intention\n04:19 Answer Leveling\n06:10 Seamless Data Extraction\n08:06 Uncover Actionable Insights\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=166\nPrompts from this video: https://www.jeffsu.org/top-5-chatgpt-use-cases-for-professionals\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#ai", "duration" => 648, "filename" => "/downloads/Jeff Su/2024-10-15 Top 5 ChatGPT Use Cases for Professionals!/Top 5 ChatGPT Use Cases for Professionals! [EDkaQj7K5_c].mp4", "id" => "EDkaQj7K5_c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=EDkaQj7K5_c", "playlist_index" => 37, "timestamp" => 1728997215, "title" => "Top 5 ChatGPT Use Cases for Professionals!", "upload_date" => "20241015"} 16:39:54.016 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=773.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:39:54.016 [debug] QUERY OK source="sources" db=0.2ms idle=774.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:54.017 [debug] QUERY OK source="media_items" db=0.2ms idle=774.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-15 13:00:15Z], 1] 16:39:54.019 [debug] QUERY OK source="media_items" db=1.4ms idle=775.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sign up for Google’s Project Management Certification on Coursera here: https://imp.i384100.net/js-project-management\n\nGrab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=166\n\nSince we’re all pretty tired of generic #ChatGPT tutorials, this video dives deep into 5 practical ways professionals can leverage ChatGPT to enhance #productivity and achieve better results.\n\n*TIMESTAMPS*\n00:00 How to use ChatGPT for work\n00:10 Context Cheating\n02:10 Convert with Intention\n04:19 Answer Leveling\n06:10 Seamless Data Extraction\n08:06 Uncover Actionable Insights\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=166\nPrompts from this video: https://www.jeffsu.org/top-5-chatgpt-use-cases-for-professionals\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#ai", "Top 5 ChatGPT Use Cases for Professionals!", "fdcd65a3-aa41-42b0-a329-e2205975f585", false, "EDkaQj7K5_c", 1, [], 648, false, "https://www.youtube.com/watch?v=EDkaQj7K5_c", 37, "/downloads/Jeff Su/2024-10-15 Top 5 ChatGPT Use Cases for Professionals!/Top 5 ChatGPT Use Cases for Professionals! [EDkaQj7K5_c].mp4", false, false, 99, ~U[2024-10-15 13:00:15Z], ~U[2026-04-23 14:39:54Z], ~U[2026-04-23 14:39:54Z], "Sign up for Google’s Project Management Certification on Coursera here: https://imp.i384100.net/js-project-management\n\nGrab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=166\n\nSince we’re all pretty tired of generic #ChatGPT tutorials, this video dives deep into 5 practical ways professionals can leverage ChatGPT to enhance #productivity and achieve better results.\n\n*TIMESTAMPS*\n00:00 How to use ChatGPT for work\n00:10 Context Cheating\n02:10 Convert with Intention\n04:19 Answer Leveling\n06:10 Seamless Data Extraction\n08:06 Uncover Actionable Insights\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=166\nPrompts from this video: https://www.jeffsu.org/top-5-chatgpt-use-cases-for-professionals\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#ai", "Top 5 ChatGPT Use Cases for Professionals!", "EDkaQj7K5_c", 1, 648, false, "https://www.youtube.com/watch?v=EDkaQj7K5_c", "/downloads/Jeff Su/2024-10-15 Top 5 ChatGPT Use Cases for Professionals!/Top 5 ChatGPT Use Cases for Professionals! [EDkaQj7K5_c].mp4", false, ~U[2024-10-15 13:00:15Z]] 16:39:54.020 [debug] QUERY OK source="sources" db=0.3ms idle=605.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:54.020 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:39:54.021 [debug] QUERY OK source="media_items" db=0.3ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [37] 16:39:54.021 [info] Kicking off download for media item #37 (EDkaQj7K5_c) 16:39:54.024 [debug] QUERY OK source="tasks" db=0.9ms idle=3.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [41, 37, ~U[2026-04-23 14:39:54Z], ~U[2026-04-23 14:39:54Z]] 16:39:54.024 [debug] Current batch of media processed. Will check again in 1000ms 16:39:55.025 [debug] Current batch of media processed. Will check again in 1000ms 16:39:56.026 [debug] Current batch of media processed. Will check again in 1000ms 16:39:57.027 [debug] Current batch of media processed. Will check again in 1000ms 16:39:58.029 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Unlock the full potential of #GoogleSheets with these 10 incredible tips!\n\nLearn how to streamline data formatting, create dynamic grouped views, master filters, clean and extract data effortlessly, and leverage powerful shortcuts. Plus, discover real-world applications, collaboration tips, and currency conversion tricks.\n\n*TIMESTAMPS*\n00:00 10 Google Sheet Tips for Productivity\n00:11 Convert to Table\n01:45 Grouped Views\n02:46 Advanced Filter Tips\n03:58 Must-know Data Cleaning Techniques\n06:17 Data Extraction in Google Sheets\n08:10 3 Must-use Shortcuts for Google Sheets\n09:58 Project Management in Google Sheets\n11:21 Collaboration Tips\n11:58 Convert Currencies in Sheets\n12:51 Formatting hack in Google Sheets\n\n*RESOURCES MENTIONED*\nSubscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=165\nLearn a powerful workflow - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=165\n\n*BE MY FRIEND:*\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#googleworkspace #productivity", "duration" => 807, "filename" => "/downloads/Jeff Su/2024-10-01 10 INCREDIBLE things Google Sheets can do Right Now!/10 INCREDIBLE things Google Sheets can do Right Now! [POZorIoSK5c].mp4", "id" => "POZorIoSK5c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=POZorIoSK5c", "playlist_index" => 38, "timestamp" => 1727787624, "title" => "10 INCREDIBLE things Google Sheets can do Right Now!", "upload_date" => "20241001"} 16:39:58.029 [debug] QUERY OK source="sources" db=0.3ms idle=787.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:39:58.030 [debug] QUERY OK source="sources" db=0.2ms idle=788.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:39:58.031 [debug] QUERY OK source="media_items" db=0.5ms idle=788.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-01 13:00:24Z], 1] 16:39:58.033 [debug] QUERY OK source="media_items" db=1.6ms idle=789.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Unlock the full potential of #GoogleSheets with these 10 incredible tips!\n\nLearn how to streamline data formatting, create dynamic grouped views, master filters, clean and extract data effortlessly, and leverage powerful shortcuts. Plus, discover real-world applications, collaboration tips, and currency conversion tricks.\n\n*TIMESTAMPS*\n00:00 10 Google Sheet Tips for Productivity\n00:11 Convert to Table\n01:45 Grouped Views\n02:46 Advanced Filter Tips\n03:58 Must-know Data Cleaning Techniques\n06:17 Data Extraction in Google Sheets\n08:10 3 Must-use Shortcuts for Google Sheets\n09:58 Project Management in Google Sheets\n11:21 Collaboration Tips\n11:58 Convert Currencies in Sheets\n12:51 Formatting hack in Google Sheets\n\n*RESOURCES MENTIONED*\nSubscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=165\nLearn a powerful workflow - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=165\n\n*BE MY FRIEND:*\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#googleworkspace #productivity", "10 INCREDIBLE things Google Sheets can do Right Now!", "f37fdbdd-1938-4293-9fb3-9cbac66cbf45", false, "POZorIoSK5c", 1, [], 807, false, "https://www.youtube.com/watch?v=POZorIoSK5c", 38, "/downloads/Jeff Su/2024-10-01 10 INCREDIBLE things Google Sheets can do Right Now!/10 INCREDIBLE things Google Sheets can do Right Now! [POZorIoSK5c].mp4", false, false, 99, ~U[2024-10-01 13:00:24Z], ~U[2026-04-23 14:39:58Z], ~U[2026-04-23 14:39:58Z], "Unlock the full potential of #GoogleSheets with these 10 incredible tips!\n\nLearn how to streamline data formatting, create dynamic grouped views, master filters, clean and extract data effortlessly, and leverage powerful shortcuts. Plus, discover real-world applications, collaboration tips, and currency conversion tricks.\n\n*TIMESTAMPS*\n00:00 10 Google Sheet Tips for Productivity\n00:11 Convert to Table\n01:45 Grouped Views\n02:46 Advanced Filter Tips\n03:58 Must-know Data Cleaning Techniques\n06:17 Data Extraction in Google Sheets\n08:10 3 Must-use Shortcuts for Google Sheets\n09:58 Project Management in Google Sheets\n11:21 Collaboration Tips\n11:58 Convert Currencies in Sheets\n12:51 Formatting hack in Google Sheets\n\n*RESOURCES MENTIONED*\nSubscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=165\nLearn a powerful workflow - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=165\n\n*BE MY FRIEND:*\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#googleworkspace #productivity", "10 INCREDIBLE things Google Sheets can do Right Now!", "POZorIoSK5c", 1, 807, false, "https://www.youtube.com/watch?v=POZorIoSK5c", "/downloads/Jeff Su/2024-10-01 10 INCREDIBLE things Google Sheets can do Right Now!/10 INCREDIBLE things Google Sheets can do Right Now! [POZorIoSK5c].mp4", false, ~U[2024-10-01 13:00:24Z]] 16:39:58.034 [debug] QUERY OK source="sources" db=0.7ms idle=611.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:39:58.035 [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] 16:39:58.036 [debug] QUERY OK source="media_items" db=0.3ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [38] 16:39:58.036 [info] Kicking off download for media item #38 (POZorIoSK5c) 16:39:58.039 [debug] QUERY OK source="tasks" db=0.2ms idle=4.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [42, 38, ~U[2026-04-23 14:39:58Z], ~U[2026-04-23 14:39:58Z]] 16:39:58.039 [debug] Current batch of media processed. Will check again in 1000ms 16:39:59.039 [debug] Current batch of media processed. Will check again in 1000ms 16:40:00.040 [debug] Current batch of media processed. Will check again in 1000ms 16:40:00.209 [info] {"source":"oban","duration":316,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:40:01.041 [debug] Current batch of media processed. Will check again in 1000ms 16:40:01.850 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=B23W1gRT9eY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/70/3f/703fda3a328df06f32143055779026c5749b6fa9cd47e76c00dde76bce671235.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:40:01.888 [debug] Running yt-dlp command for action: download_thumbnail 16:40:01.889 [debug] QUERY OK source="settings" db=0.2ms idle=647.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:01.890 [debug] QUERY OK source="settings" db=0.7ms idle=647.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:01.892 [debug] QUERY OK source="settings" db=1.8ms idle=648.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:01.893 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=B23W1gRT9eY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/7/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/27/f1/27f1410f91ca614d39263770c43fbce4dd2ed706c165e32006849f5c4345a74e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:40:02.043 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=164\n\nTry Perplexity yourself: https://perplexity.ai/pro?referral_code=PEDDZAKZ\n\nThis video offers a concise overview of #Perplexity, comparing it to #ChatGPT, Google #Gemini, and Google Search.\n\nLearn how to optimize Perplexity's settings, utilize the \"Focus\" feature, and leverage collections for streamlined research.\n\nWe also explore Perplexity's strengths in factual accuracy and its limitations in creative tasks. Perfect for beginners seeking to enhance their AI toolkit.\n\n*TIMESTAMPS*\n00:00 How to use Perplexity (for beginners)\n00:51 Settings for Perplexity\n02:25 Perplexity Search\n05:34 Collections Feature\n07:26 What Perplexity is NOT good for\n08:16 Perplexity Pro Features\n\n*RESOURCES MENTIONED*\nWorkspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=164\nSummary of Google's Intro to AI Course: https://youtu.be/Yq0QkCxoTHM\nMake a copy of my Perplexity Profile: https://www.jeffsu.org/perplexity-a-comprehensive-guide/\nThe SCQA Framework Prompt: https://jeffsu.gumroad.com/l/prompt-for-presentations\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "duration" => 592, "filename" => "/downloads/Jeff Su/2024-09-17 Learn 80% of Perplexity in under 10 minutes!/Learn 80% of Perplexity in under 10 minutes! [YoWdogtZRw8].mp4", "id" => "YoWdogtZRw8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=YoWdogtZRw8", "playlist_index" => 39, "timestamp" => 1726578039, "title" => "Learn 80% of Perplexity in under 10 minutes!", "upload_date" => "20240917"} 16:40:02.044 [debug] QUERY OK source="sources" db=0.7ms idle=801.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:40:02.045 [debug] QUERY OK source="sources" db=0.2ms idle=613.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:02.045 [debug] QUERY OK source="media_items" db=0.4ms idle=155.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-17 13:00:39Z], 1] 16:40:02.048 [debug] QUERY OK source="media_items" db=2.0ms idle=155.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=164\n\nTry Perplexity yourself: https://perplexity.ai/pro?referral_code=PEDDZAKZ\n\nThis video offers a concise overview of #Perplexity, comparing it to #ChatGPT, Google #Gemini, and Google Search.\n\nLearn how to optimize Perplexity's settings, utilize the \"Focus\" feature, and leverage collections for streamlined research.\n\nWe also explore Perplexity's strengths in factual accuracy and its limitations in creative tasks. Perfect for beginners seeking to enhance their AI toolkit.\n\n*TIMESTAMPS*\n00:00 How to use Perplexity (for beginners)\n00:51 Settings for Perplexity\n02:25 Perplexity Search\n05:34 Collections Feature\n07:26 What Perplexity is NOT good for\n08:16 Perplexity Pro Features\n\n*RESOURCES MENTIONED*\nWorkspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=164\nSummary of Google's Intro to AI Course: https://youtu.be/Yq0QkCxoTHM\nMake a copy of my Perplexity Profile: https://www.jeffsu.org/perplexity-a-comprehensive-guide/\nThe SCQA Framework Prompt: https://jeffsu.gumroad.com/l/prompt-for-presentations\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "Learn 80% of Perplexity in under 10 minutes!", "464cf3c6-ee4a-43cd-bd62-210ce0cf16f5", false, "YoWdogtZRw8", 1, [], 592, false, "https://www.youtube.com/watch?v=YoWdogtZRw8", 39, "/downloads/Jeff Su/2024-09-17 Learn 80% of Perplexity in under 10 minutes!/Learn 80% of Perplexity in under 10 minutes! [YoWdogtZRw8].mp4", false, false, 99, ~U[2024-09-17 13:00:39Z], ~U[2026-04-23 14:40:02Z], ~U[2026-04-23 14:40:02Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=164\n\nTry Perplexity yourself: https://perplexity.ai/pro?referral_code=PEDDZAKZ\n\nThis video offers a concise overview of #Perplexity, comparing it to #ChatGPT, Google #Gemini, and Google Search.\n\nLearn how to optimize Perplexity's settings, utilize the \"Focus\" feature, and leverage collections for streamlined research.\n\nWe also explore Perplexity's strengths in factual accuracy and its limitations in creative tasks. Perfect for beginners seeking to enhance their AI toolkit.\n\n*TIMESTAMPS*\n00:00 How to use Perplexity (for beginners)\n00:51 Settings for Perplexity\n02:25 Perplexity Search\n05:34 Collections Feature\n07:26 What Perplexity is NOT good for\n08:16 Perplexity Pro Features\n\n*RESOURCES MENTIONED*\nWorkspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=164\nSummary of Google's Intro to AI Course: https://youtu.be/Yq0QkCxoTHM\nMake a copy of my Perplexity Profile: https://www.jeffsu.org/perplexity-a-comprehensive-guide/\nThe SCQA Framework Prompt: https://jeffsu.gumroad.com/l/prompt-for-presentations\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "Learn 80% of Perplexity in under 10 minutes!", "YoWdogtZRw8", 1, 592, false, "https://www.youtube.com/watch?v=YoWdogtZRw8", "/downloads/Jeff Su/2024-09-17 Learn 80% of Perplexity in under 10 minutes!/Learn 80% of Perplexity in under 10 minutes! [YoWdogtZRw8].mp4", false, ~U[2024-09-17 13:00:39Z]] 16:40:02.049 [debug] QUERY OK source="sources" db=0.5ms idle=156.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:40:02.050 [debug] QUERY OK source="media_profiles" db=0.3ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:02.051 [debug] QUERY OK source="media_items" db=0.4ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [39] 16:40:02.051 [info] Kicking off download for media item #39 (YoWdogtZRw8) 16:40:02.054 [debug] QUERY OK source="tasks" db=0.3ms idle=4.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [43, 39, ~U[2026-04-23 14:40:02Z], ~U[2026-04-23 14:40:02Z]] 16:40:02.054 [debug] Current batch of media processed. Will check again in 1000ms 16:40:03.054 [debug] Current batch of media processed. Will check again in 1000ms 16:40:04.056 [debug] Current batch of media processed. Will check again in 1000ms 16:40:04.607 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bTLmt9BKGVc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/7c/8c/7c8c4fd950c7625e05b5e0f62a145893683745946177bfb3b33b3703309fbe4e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:40:04.642 [debug] Running yt-dlp command for action: download_thumbnail 16:40:04.643 [debug] QUERY OK source="settings" db=0.2ms idle=1401.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:04.644 [debug] QUERY OK source="settings" db=0.2ms idle=1402.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:04.644 [debug] QUERY OK source="settings" db=0.1ms idle=1402.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:04.644 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bTLmt9BKGVc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/8/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/0b/81/0b81e053621f9761538a9450b4a65be58033880e44391a2e8554022415e2cc5a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:40:05.057 [debug] Current batch of media processed. Will check again in 1000ms 16:40:06.058 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Sign up for Google’s Project Management Certification on Coursera here: https://imp.i384100.net/js-project-management\n\nGrab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=163\n\nCurious about #AI but don't know where to start? In this video, I break down 5 key takeaways from Google's AI Essentials course for beginners, share the pros and cons, and help you decide if this certification is worth your time.\n\nLet’s get started 😁\n\n*TIMESTAMPS*\n00:00 I took Google’s AI Essentials Course\n00:29 There are 3 Types of AI Tools\n03:39 Always surface Implied Context\n04:51 Zero-Shot vs. Few-Shot Prompting\n05:50 Chain-of-Thought Prompting\n06:53 Limitations of AI\n07:51 Pros and Cons of Google’s AI Essentials Course\n\n*RESOURCES MENTIONED*\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=163\nWrite the Perfect Prompt: https://youtu.be/jC4v5AS4RIM\nChatGPT for Job Seekers: https://youtu.be/2uN8PTXMY5c\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#Google #ChatGPT", "duration" => 612, "filename" => "/downloads/Jeff Su/2024-09-03 99% of Beginners Don't Know the Basics of AI/99% of Beginners Don't Know the Basics of AI [nVyD6THcvDQ].mp4", "id" => "nVyD6THcvDQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=nVyD6THcvDQ", "playlist_index" => 40, "timestamp" => 1725368449, "title" => "99% of Beginners Don't Know the Basics of AI", "upload_date" => "20240903"} 16:40:06.061 [debug] QUERY OK source="sources" db=2.6ms queue=0.1ms idle=1414.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:40:06.065 [debug] QUERY OK source="sources" db=3.0ms queue=0.1ms idle=1417.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:06.066 [debug] QUERY OK source="media_items" db=0.6ms idle=1420.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-03 13:00:49Z], 1] 16:40:06.070 [debug] QUERY OK source="media_items" db=3.7ms idle=824.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sign up for Google’s Project Management Certification on Coursera here: https://imp.i384100.net/js-project-management\n\nGrab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=163\n\nCurious about #AI but don't know where to start? In this video, I break down 5 key takeaways from Google's AI Essentials course for beginners, share the pros and cons, and help you decide if this certification is worth your time.\n\nLet’s get started 😁\n\n*TIMESTAMPS*\n00:00 I took Google’s AI Essentials Course\n00:29 There are 3 Types of AI Tools\n03:39 Always surface Implied Context\n04:51 Zero-Shot vs. Few-Shot Prompting\n05:50 Chain-of-Thought Prompting\n06:53 Limitations of AI\n07:51 Pros and Cons of Google’s AI Essentials Course\n\n*RESOURCES MENTIONED*\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=163\nWrite the Perfect Prompt: https://youtu.be/jC4v5AS4RIM\nChatGPT for Job Seekers: https://youtu.be/2uN8PTXMY5c\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#Google #ChatGPT", "99% of Beginners Don't Know the Basics of AI", "3513f5c7-59d9-4b48-b508-5b31b90a353f", false, "nVyD6THcvDQ", 1, [], 612, false, "https://www.youtube.com/watch?v=nVyD6THcvDQ", 40, "/downloads/Jeff Su/2024-09-03 99% of Beginners Don't Know the Basics of AI/99% of Beginners Don't Know the Basics of AI [nVyD6THcvDQ].mp4", false, false, 99, ~U[2024-09-03 13:00:49Z], ~U[2026-04-23 14:40:06Z], ~U[2026-04-23 14:40:06Z], "Sign up for Google’s Project Management Certification on Coursera here: https://imp.i384100.net/js-project-management\n\nGrab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=163\n\nCurious about #AI but don't know where to start? In this video, I break down 5 key takeaways from Google's AI Essentials course for beginners, share the pros and cons, and help you decide if this certification is worth your time.\n\nLet’s get started 😁\n\n*TIMESTAMPS*\n00:00 I took Google’s AI Essentials Course\n00:29 There are 3 Types of AI Tools\n03:39 Always surface Implied Context\n04:51 Zero-Shot vs. Few-Shot Prompting\n05:50 Chain-of-Thought Prompting\n06:53 Limitations of AI\n07:51 Pros and Cons of Google’s AI Essentials Course\n\n*RESOURCES MENTIONED*\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=163\nWrite the Perfect Prompt: https://youtu.be/jC4v5AS4RIM\nChatGPT for Job Seekers: https://youtu.be/2uN8PTXMY5c\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#Google #ChatGPT", "99% of Beginners Don't Know the Basics of AI", "nVyD6THcvDQ", 1, 612, false, "https://www.youtube.com/watch?v=nVyD6THcvDQ", "/downloads/Jeff Su/2024-09-03 99% of Beginners Don't Know the Basics of AI/99% of Beginners Don't Know the Basics of AI [nVyD6THcvDQ].mp4", false, ~U[2024-09-03 13:00:49Z]] 16:40:06.072 [debug] QUERY OK source="sources" db=1.2ms idle=632.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:40:06.075 [debug] QUERY OK source="media_profiles" db=1.9ms queue=0.1ms idle=11.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:06.077 [debug] QUERY OK source="media_items" db=1.6ms idle=10.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [40] 16:40:06.077 [info] Kicking off download for media item #40 (nVyD6THcvDQ) 16:40:06.081 [debug] QUERY OK source="tasks" db=0.3ms idle=8.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [44, 40, ~U[2026-04-23 14:40:06Z], ~U[2026-04-23 14:40:06Z]] 16:40:06.081 [debug] Current batch of media processed. Will check again in 1000ms 16:40:07.083 [debug] Current batch of media processed. Will check again in 1000ms 16:40:08.083 [debug] Current batch of media processed. Will check again in 1000ms 16:40:09.085 [debug] Current batch of media processed. Will check again in 1000ms 16:40:10.085 [debug] Current batch of media processed. Will check again in 1000ms 16:40:10.463 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=B23W1gRT9eY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/7/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/27/f1/27f1410f91ca614d39263770c43fbce4dd2ed706c165e32006849f5c4345a74e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:40:10.464 [debug] QUERY OK db=0.1ms idle=1222.2ms begin [] 16:40:10.465 [debug] QUERY OK source="media_items" db=0.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:40:01Z], "/downloads/Jeff Su/2026-01-06 Top 6 AI Trends That Will Define 2026 (backed by data)/Top 6 AI Trends That Will Define 2026 (backed by data) [B23W1gRT9eY].mp4", "/downloads/Jeff Su/2026-01-06 Top 6 AI Trends That Will Define 2026 (backed by data)/Top 6 AI Trends That Will Define 2026 (backed by data) [B23W1gRT9eY].info.json", "/downloads/Jeff Su/2026-01-06 Top 6 AI Trends That Will Define 2026 (backed by data)/Top 6 AI Trends That Will Define 2026 (backed by data) [B23W1gRT9eY].nfo", "/downloads/Jeff Su/2026-01-06 Top 6 AI Trends That Will Define 2026 (backed by data)/Top 6 AI Trends That Will Define 2026 (backed by data) [B23W1gRT9eY]-thumb.jpg", ~U[2026-04-23 14:40:10Z], 7] 16:40:10.466 [debug] QUERY OK source="media_metadata" db=0.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/7/metadata.json.gz", "/config/metadata/media_items/7/thumbnail.jpg", 7, ~U[2026-04-23 14:40:10Z], ~U[2026-04-23 14:40:10Z]] 16:40:10.467 [debug] QUERY OK db=0.2ms commit [] 16:40:10.469 [debug] QUERY OK source="media_items" db=1.5ms idle=1225.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [48558754, ~U[2026-04-23 14:40:10Z], 7] 16:40:10.469 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:40:10.470 [info] {"args":{"id":7},"id":11,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":42155347,"event":"job:stop","queue_time":99312798,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:40:10.477 [info] {"args":{"id":9},"id":13,"meta":{},"system_time":1776955210477036801,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:40:10.477 [debug] QUERY OK source="media_items" db=0.2ms idle=28.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" = ?) [9] 16:40:10.478 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:40:10.478 [debug] QUERY OK source="sources" db=0.2ms idle=11.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:10.479 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=9.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] 16:40:10.479 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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 [9] 16:40:10.481 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [9] 16:40:10.481 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:10.482 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:40:10.482 [debug] QUERY OK source="settings" db=0.1ms 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 [] 16:40:10.483 [debug] Running yt-dlp command for action: get_downloadable_status 16:40:10.484 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:40:10.484 [debug] QUERY OK source="settings" db=0.2ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:10.485 [debug] QUERY OK source="settings" db=0.1ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:10.485 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=E7YiKBeOneo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/69/79/697908a3ac73ebc86eaac7794a29359760e643eb9f636d3c11cfb355daceb5ea.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:40:11.086 [debug] Current batch of media processed. Will check again in 1000ms 16:40:12.088 [debug] Current batch of media processed. Will check again in 1000ms 16:40:12.439 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bTLmt9BKGVc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/8/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/0b/81/0b81e053621f9761538a9450b4a65be58033880e44391a2e8554022415e2cc5a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:40:12.440 [debug] QUERY OK db=0.0ms idle=988.9ms begin [] 16:40:12.441 [debug] QUERY OK source="media_items" db=0.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:40:04Z], "/downloads/Jeff Su/2025-12-16 Master Gemini 3.1 for Work in 12 Minutes (2026)/Master Gemini 3.1 for Work in 12 Minutes (2026) [bTLmt9BKGVc].mp4", "/downloads/Jeff Su/2025-12-16 Master Gemini 3.1 for Work in 12 Minutes (2026)/Master Gemini 3.1 for Work in 12 Minutes (2026) [bTLmt9BKGVc].info.json", "/downloads/Jeff Su/2025-12-16 Master Gemini 3.1 for Work in 12 Minutes (2026)/Master Gemini 3.1 for Work in 12 Minutes (2026) [bTLmt9BKGVc].nfo", "/downloads/Jeff Su/2025-12-16 Master Gemini 3.1 for Work in 12 Minutes (2026)/Master Gemini 3.1 for Work in 12 Minutes (2026) [bTLmt9BKGVc]-thumb.jpg", ~U[2026-04-23 14:40:12Z], 8] 16:40:12.442 [debug] QUERY OK source="media_metadata" db=0.6ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/8/metadata.json.gz", "/config/metadata/media_items/8/thumbnail.jpg", 8, ~U[2026-04-23 14:40:12Z], ~U[2026-04-23 14:40:12Z]] 16:40:12.442 [debug] QUERY OK db=0.3ms commit [] 16:40:12.444 [debug] QUERY OK source="media_items" db=1.6ms idle=200.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [40801820, ~U[2026-04-23 14:40:12Z], 8] 16:40:12.444 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:40:12.445 [info] {"args":{"id":8},"id":12,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":40197565,"event":"job:stop","queue_time":98244864,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:40:12.451 [info] {"args":{"id":10},"id":14,"meta":{},"system_time":1776955212451708841,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:40:12.452 [debug] QUERY OK source="media_items" db=0.7ms idle=9.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" = ?) [10] 16:40:12.453 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:40:12.453 [debug] QUERY OK source="sources" db=0.2ms idle=8.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:12.454 [debug] QUERY OK source="media_profiles" db=0.2ms idle=8.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:12.454 [debug] QUERY OK source="media_items" db=0.3ms 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 [10] 16:40:12.455 [debug] QUERY OK source="media_metadata" db=0.1ms idle=2.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [10] 16:40:12.455 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:12.456 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:12.456 [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 [] 16:40:12.457 [debug] Running yt-dlp command for action: get_downloadable_status 16:40:12.458 [debug] QUERY OK source="settings" db=0.1ms 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 [] 16:40:12.458 [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 [] 16:40:12.458 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:12.458 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4Fu23_l9F_o --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d4/91/d49182dd5eb6868a577178561a4c0e97c95e8e0210e5485c222de95222fe747c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:40:13.089 [debug] Current batch of media processed. Will check again in 1000ms 16:40:14.091 [debug] Current batch of media processed. Will check again in 1000ms 16:40:15.091 [debug] Current batch of media processed. Will check again in 1000ms 16:40:16.092 [debug] Current batch of media processed. Will check again in 1000ms 16:40:16.099 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=E7YiKBeOneo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/69/79/697908a3ac73ebc86eaac7794a29359760e643eb9f636d3c11cfb355daceb5ea.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:40:16.100 [debug] Running yt-dlp command for action: download 16:40:16.101 [debug] QUERY OK source="settings" db=0.3ms idle=1858.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:16.101 [debug] QUERY OK source="settings" db=0.2ms idle=1859.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:16.101 [debug] QUERY OK source="settings" db=0.2ms idle=1859.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:16.102 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=E7YiKBeOneo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/fe/ce/fecebd4d60a6084d2c422d3988faebe00c55f5e54c9a524bce301b373e2f5dad.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:40:17.094 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🗃️\u00A0Learn more about Dropbox for teams: https://www.dropbox.com/jeffsu\n\nIn this video I share 10 incredible #Mac apps that will revolutionize your workflow! From file management and #productivity boosters to handy utilities, this video is packed with hidden gems you won't want to miss. \n\nI'll show you how to streamline your tasks, save time, and make the most of your #Macbook experience. Don't settle for the ordinary – discover these lesser-known apps and unlock your Mac's full potential.\n\n*TIMESTAMPS*\n00:00 App #1\n01:13 App #2\n02:17 App #3\n03:27 App #4\n05:49 App #5\n07:16 App #6\n08:04 App #7\n09:00 App #8\n10:51 App #9\n11:46 App #10\n\n*RESOURCES MENTIONED*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=162\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=162\n\n*THE APPS*\nItsycal - https://www.mowglii.com/itsycal/\nLocal Send - https://localsend.org/\nTransnomino - https://www.transnomino.com/\nChatGPT for the Mac - https://openai.com/chatgpt/mac/\nOnlySwitch - https://github.com/jacklandrin/OnlySwitch\nImage Optim - https://imageoptim.com/mac\nHyperDuck - https://sindresorhus.com/hyperduck\nGrab2Text - https://apps.apple.com/us/app/grab2text/id6475956137?mt=12\nRocket - https://matthewpalmer.net/rocket/\nCleanShot X - https://geni.us/cleanshotx\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=162\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "duration" => 762, "filename" => "/downloads/Jeff Su/2024-08-20 10 Mac Apps You Haven't Heard Of (but should be using)/10 Mac Apps You Haven't Heard Of (but should be using) [JqKB97HpWrk].mp4", "id" => "JqKB97HpWrk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JqKB97HpWrk", "playlist_index" => 41, "timestamp" => 1724158820, "title" => "10 Mac Apps You Haven't Heard Of (but should be using)", "upload_date" => "20240820"} 16:40:17.095 [debug] QUERY OK source="sources" db=0.6ms idle=993.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:40:17.096 [debug] QUERY OK source="sources" db=0.3ms idle=994.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:17.097 [debug] QUERY OK source="media_items" db=0.4ms idle=994.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-20 13:00:20Z], 1] 16:40:17.106 [debug] QUERY OK source="media_items" db=7.9ms idle=855.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🗃️\u00A0Learn more about Dropbox for teams: https://www.dropbox.com/jeffsu\n\nIn this video I share 10 incredible #Mac apps that will revolutionize your workflow! From file management and #productivity boosters to handy utilities, this video is packed with hidden gems you won't want to miss. \n\nI'll show you how to streamline your tasks, save time, and make the most of your #Macbook experience. Don't settle for the ordinary – discover these lesser-known apps and unlock your Mac's full potential.\n\n*TIMESTAMPS*\n00:00 App #1\n01:13 App #2\n02:17 App #3\n03:27 App #4\n05:49 App #5\n07:16 App #6\n08:04 App #7\n09:00 App #8\n10:51 App #9\n11:46 App #10\n\n*RESOURCES MENTIONED*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=162\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=162\n\n*THE APPS*\nItsycal - https://www.mowglii.com/itsycal/\nLocal Send - https://localsend.org/\nTransnomino - https://www.transnomino.com/\nChatGPT for the Mac - https://openai.com/chatgpt/mac/\nOnlySwitch - https://github.com/jacklandrin/OnlySwitch\nImage Optim - https://imageoptim.com/mac\nHyperDuck - https://sindresorhus.com/hyperduck\nGrab2Text - https://apps.apple.com/us/app/grab2text/id6475956137?mt=12\nRocket - https://matthewpalmer.net/rocket/\nCleanShot X - https://geni.us/cleanshotx\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=162\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "10 Mac Apps You Haven't Heard Of (but should be using)", "3433e933-1486-4425-8fac-3c82b77737e0", false, "JqKB97HpWrk", 1, [], 762, false, "https://www.youtube.com/watch?v=JqKB97HpWrk", 41, "/downloads/Jeff Su/2024-08-20 10 Mac Apps You Haven't Heard Of (but should be using)/10 Mac Apps You Haven't Heard Of (but should be using) [JqKB97HpWrk].mp4", false, false, 99, ~U[2024-08-20 13:00:20Z], ~U[2026-04-23 14:40:17Z], ~U[2026-04-23 14:40:17Z], "🗃️\u00A0Learn more about Dropbox for teams: https://www.dropbox.com/jeffsu\n\nIn this video I share 10 incredible #Mac apps that will revolutionize your workflow! From file management and #productivity boosters to handy utilities, this video is packed with hidden gems you won't want to miss. \n\nI'll show you how to streamline your tasks, save time, and make the most of your #Macbook experience. Don't settle for the ordinary – discover these lesser-known apps and unlock your Mac's full potential.\n\n*TIMESTAMPS*\n00:00 App #1\n01:13 App #2\n02:17 App #3\n03:27 App #4\n05:49 App #5\n07:16 App #6\n08:04 App #7\n09:00 App #8\n10:51 App #9\n11:46 App #10\n\n*RESOURCES MENTIONED*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=162\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=162\n\n*THE APPS*\nItsycal - https://www.mowglii.com/itsycal/\nLocal Send - https://localsend.org/\nTransnomino - https://www.transnomino.com/\nChatGPT for the Mac - https://openai.com/chatgpt/mac/\nOnlySwitch - https://github.com/jacklandrin/OnlySwitch\nImage Optim - https://imageoptim.com/mac\nHyperDuck - https://sindresorhus.com/hyperduck\nGrab2Text - https://apps.apple.com/us/app/grab2text/id6475956137?mt=12\nRocket - https://matthewpalmer.net/rocket/\nCleanShot X - https://geni.us/cleanshotx\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=162\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "10 Mac Apps You Haven't Heard Of (but should be using)", "JqKB97HpWrk", 1, 762, false, "https://www.youtube.com/watch?v=JqKB97HpWrk", "/downloads/Jeff Su/2024-08-20 10 Mac Apps You Haven't Heard Of (but should be using)/10 Mac Apps You Haven't Heard Of (but should be using) [JqKB97HpWrk].mp4", false, ~U[2024-08-20 13:00:20Z]] 16:40:17.107 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=641.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:40:17.109 [debug] QUERY OK source="media_profiles" db=1.1ms queue=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] 16:40:17.111 [debug] QUERY OK source="media_items" db=1.2ms idle=13.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 [41] 16:40:17.111 [info] Kicking off download for media item #41 (JqKB97HpWrk) 16:40:17.117 [debug] QUERY OK source="tasks" db=0.9ms queue=0.2ms idle=8.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [45, 41, ~U[2026-04-23 14:40:17Z], ~U[2026-04-23 14:40:17Z]] 16:40:17.117 [debug] Current batch of media processed. Will check again in 1000ms 16:40:18.117 [debug] Current batch of media processed. Will check again in 1000ms 16:40:18.246 [info] {"source":"oban","duration":890,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:40:19.008 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4Fu23_l9F_o --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d4/91/d49182dd5eb6868a577178561a4c0e97c95e8e0210e5485c222de95222fe747c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:40:19.010 [debug] Running yt-dlp command for action: download 16:40:19.011 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=769.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:19.011 [debug] QUERY OK source="settings" db=0.2ms idle=769.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:19.012 [debug] QUERY OK source="settings" db=0.1ms idle=770.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:19.012 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4Fu23_l9F_o --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a2/7c/a27c2c233f585dd31f198f9014fc5f98433b7f2a202b5ff4c6774e4a41aa35f6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:40:19.118 [debug] Current batch of media processed. Will check again in 1000ms 16:40:20.119 [debug] Current batch of media processed. Will check again in 1000ms 16:40:21.121 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I'm sharing my 10 favorite time-saving hacks that you can start using in #GoogleDocs today! \n\nFrom mastering the \"@\" command and unlocking the power of pageless mode to effortlessly managing version history and streamlining collaboration, these tips are designed to save you a massive amount of time.\n\n@Google\n\n*TIMESTAMPS*\n00:00 Top 10 Google Doc Tips for Productivity\n00:11 Use Building Blocks to Save Time\n02:09 Enable Pageless Mode in Google Docs\n04:02 Set Default Fonts in Google Docs\n06:34 Link to Headings and Comments\n07:20 Preview Suggested Edits\n08:58 Compose Email from Google Docs\n10:41 Email as PDF Shortcut\n11:29 Tips and Tricks for Tables\n12:31 Quality of Life Features in Google Docs\n\n*RESOURCES MENTIONED*\nGrab my Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=161\n\nAccess my productivity templates for free: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=161\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity #googleworkspace", "duration" => 830, "filename" => "/downloads/Jeff Su/2024-08-06 10 BEST Productivity Tips for Google Docs!/10 BEST Productivity Tips for Google Docs! [4rlqUHS9fgg].mp4", "id" => "4rlqUHS9fgg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4rlqUHS9fgg", "playlist_index" => 42, "timestamp" => 1722949204, "title" => "10 BEST Productivity Tips for Google Docs!", "upload_date" => "20240806"} 16:40:21.122 [debug] QUERY OK source="sources" db=0.3ms idle=879.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:40:21.122 [debug] QUERY OK source="sources" db=0.2ms idle=880.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:21.123 [debug] QUERY OK source="media_items" db=0.3ms idle=880.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-06 13:00:04Z], 1] 16:40:21.125 [debug] QUERY OK source="media_items" db=1.5ms idle=881.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I'm sharing my 10 favorite time-saving hacks that you can start using in #GoogleDocs today! \n\nFrom mastering the \"@\" command and unlocking the power of pageless mode to effortlessly managing version history and streamlining collaboration, these tips are designed to save you a massive amount of time.\n\n@Google\n\n*TIMESTAMPS*\n00:00 Top 10 Google Doc Tips for Productivity\n00:11 Use Building Blocks to Save Time\n02:09 Enable Pageless Mode in Google Docs\n04:02 Set Default Fonts in Google Docs\n06:34 Link to Headings and Comments\n07:20 Preview Suggested Edits\n08:58 Compose Email from Google Docs\n10:41 Email as PDF Shortcut\n11:29 Tips and Tricks for Tables\n12:31 Quality of Life Features in Google Docs\n\n*RESOURCES MENTIONED*\nGrab my Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=161\n\nAccess my productivity templates for free: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=161\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity #googleworkspace", "10 BEST Productivity Tips for Google Docs!", "05d7f1c9-9f26-40d4-acad-b93ce6805f0f", false, "4rlqUHS9fgg", 1, [], 830, false, "https://www.youtube.com/watch?v=4rlqUHS9fgg", 42, "/downloads/Jeff Su/2024-08-06 10 BEST Productivity Tips for Google Docs!/10 BEST Productivity Tips for Google Docs! [4rlqUHS9fgg].mp4", false, false, 99, ~U[2024-08-06 13:00:04Z], ~U[2026-04-23 14:40:21Z], ~U[2026-04-23 14:40:21Z], "In this video, I'm sharing my 10 favorite time-saving hacks that you can start using in #GoogleDocs today! \n\nFrom mastering the \"@\" command and unlocking the power of pageless mode to effortlessly managing version history and streamlining collaboration, these tips are designed to save you a massive amount of time.\n\n@Google\n\n*TIMESTAMPS*\n00:00 Top 10 Google Doc Tips for Productivity\n00:11 Use Building Blocks to Save Time\n02:09 Enable Pageless Mode in Google Docs\n04:02 Set Default Fonts in Google Docs\n06:34 Link to Headings and Comments\n07:20 Preview Suggested Edits\n08:58 Compose Email from Google Docs\n10:41 Email as PDF Shortcut\n11:29 Tips and Tricks for Tables\n12:31 Quality of Life Features in Google Docs\n\n*RESOURCES MENTIONED*\nGrab my Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=161\n\nAccess my productivity templates for free: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=161\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity #googleworkspace", "10 BEST Productivity Tips for Google Docs!", "4rlqUHS9fgg", 1, 830, false, "https://www.youtube.com/watch?v=4rlqUHS9fgg", "/downloads/Jeff Su/2024-08-06 10 BEST Productivity Tips for Google Docs!/10 BEST Productivity Tips for Google Docs! [4rlqUHS9fgg].mp4", false, ~U[2024-08-06 13:00:04Z]] 16:40:21.126 [debug] QUERY OK source="sources" db=0.3ms idle=652.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:40:21.127 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:21.127 [debug] QUERY OK source="media_items" db=0.3ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [42] 16:40:21.127 [info] Kicking off download for media item #42 (4rlqUHS9fgg) 16:40:21.130 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=3.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [46, 42, ~U[2026-04-23 14:40:21Z], ~U[2026-04-23 14:40:21Z]] 16:40:21.130 [debug] Current batch of media processed. Will check again in 1000ms 16:40:22.131 [debug] Current batch of media processed. Will check again in 1000ms 16:40:23.131 [debug] Current batch of media processed. Will check again in 1000ms 16:40:24.132 [debug] Current batch of media processed. Will check again in 1000ms 16:40:25.134 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My Job Search Toolkit - https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=160\n\nUse Teal to simplify your job search - https://get.tealhq.com/jeffsu\n\nThis video breaks down the latest research on #LinkedIn best practices and gives you 5 actionable tips to optimize your profile. \n\nFrom mastering keywords to crafting a compelling \"About\" section, learn how to stand out from the competition and get noticed by recruiters. \n\nLet’s get started!\n\n*TIMESTAMPS*\n00:00 The Biggest Issue with LinkedIn Advice\n00:33 5 Key Takeaways\n01:25 Master the Art of Keywords on LinkedIn\n03:21 Write Keyword-Driven Headlines\n04:47 Steal with Pride\n06:37 Write an Effective About Section\n08:08 Get Your Skills Endorsed on LinkedIn\n09:23 Free Job Search Toolkit?\n\n*RESOURCES I MENTION IN THE VIDEO*\nSarah’s original report: https://www.briefcasecoach.com/linkedin-best-practices?utm_medium=video&utm_source=jeffsu&utm_campaign=linkedin\nFind metrics for any role: https://youtu.be/IW472-d_8bs\nMake a copy of the prompts from this video: https://www.jeffsu.org/top-5-linkedin-profile-tips-for-2024-backed-by-data\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#LinkedIntips #jobsearch", "duration" => 586, "filename" => "/downloads/Jeff Su/2024-05-28 Top 5 LinkedIn Profile Tips! (backed by data)/Top 5 LinkedIn Profile Tips! (backed by data) [OKF7ZeWNrfg].mp4", "id" => "OKF7ZeWNrfg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OKF7ZeWNrfg", "playlist_index" => 43, "timestamp" => 1716912015, "title" => "Top 5 LinkedIn Profile Tips! (backed by data)", "upload_date" => "20240528"} 16:40:25.135 [debug] QUERY OK source="sources" db=0.5ms idle=892.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:40:25.136 [debug] QUERY OK source="sources" db=0.2ms idle=893.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:25.136 [debug] QUERY OK source="media_items" db=0.5ms idle=894.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-28 16:00:15Z], 1] 16:40:25.139 [debug] QUERY OK source="media_items" db=1.7ms idle=895.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Job Search Toolkit - https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=160\n\nUse Teal to simplify your job search - https://get.tealhq.com/jeffsu\n\nThis video breaks down the latest research on #LinkedIn best practices and gives you 5 actionable tips to optimize your profile. \n\nFrom mastering keywords to crafting a compelling \"About\" section, learn how to stand out from the competition and get noticed by recruiters. \n\nLet’s get started!\n\n*TIMESTAMPS*\n00:00 The Biggest Issue with LinkedIn Advice\n00:33 5 Key Takeaways\n01:25 Master the Art of Keywords on LinkedIn\n03:21 Write Keyword-Driven Headlines\n04:47 Steal with Pride\n06:37 Write an Effective About Section\n08:08 Get Your Skills Endorsed on LinkedIn\n09:23 Free Job Search Toolkit?\n\n*RESOURCES I MENTION IN THE VIDEO*\nSarah’s original report: https://www.briefcasecoach.com/linkedin-best-practices?utm_medium=video&utm_source=jeffsu&utm_campaign=linkedin\nFind metrics for any role: https://youtu.be/IW472-d_8bs\nMake a copy of the prompts from this video: https://www.jeffsu.org/top-5-linkedin-profile-tips-for-2024-backed-by-data\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#LinkedIntips #jobsearch", "Top 5 LinkedIn Profile Tips! (backed by data)", "e3d5966c-26ef-4f2b-ba17-6bc6466ec548", false, "OKF7ZeWNrfg", 1, [], 586, false, "https://www.youtube.com/watch?v=OKF7ZeWNrfg", 43, "/downloads/Jeff Su/2024-05-28 Top 5 LinkedIn Profile Tips! (backed by data)/Top 5 LinkedIn Profile Tips! (backed by data) [OKF7ZeWNrfg].mp4", false, false, 99, ~U[2024-05-28 16:00:15Z], ~U[2026-04-23 14:40:25Z], ~U[2026-04-23 14:40:25Z], "My Job Search Toolkit - https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=160\n\nUse Teal to simplify your job search - https://get.tealhq.com/jeffsu\n\nThis video breaks down the latest research on #LinkedIn best practices and gives you 5 actionable tips to optimize your profile. \n\nFrom mastering keywords to crafting a compelling \"About\" section, learn how to stand out from the competition and get noticed by recruiters. \n\nLet’s get started!\n\n*TIMESTAMPS*\n00:00 The Biggest Issue with LinkedIn Advice\n00:33 5 Key Takeaways\n01:25 Master the Art of Keywords on LinkedIn\n03:21 Write Keyword-Driven Headlines\n04:47 Steal with Pride\n06:37 Write an Effective About Section\n08:08 Get Your Skills Endorsed on LinkedIn\n09:23 Free Job Search Toolkit?\n\n*RESOURCES I MENTION IN THE VIDEO*\nSarah’s original report: https://www.briefcasecoach.com/linkedin-best-practices?utm_medium=video&utm_source=jeffsu&utm_campaign=linkedin\nFind metrics for any role: https://youtu.be/IW472-d_8bs\nMake a copy of the prompts from this video: https://www.jeffsu.org/top-5-linkedin-profile-tips-for-2024-backed-by-data\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#LinkedIntips #jobsearch", "Top 5 LinkedIn Profile Tips! (backed by data)", "OKF7ZeWNrfg", 1, 586, false, "https://www.youtube.com/watch?v=OKF7ZeWNrfg", "/downloads/Jeff Su/2024-05-28 Top 5 LinkedIn Profile Tips! (backed by data)/Top 5 LinkedIn Profile Tips! (backed by data) [OKF7ZeWNrfg].mp4", false, ~U[2024-05-28 16:00:15Z]] 16:40:25.139 [debug] QUERY OK source="sources" db=0.2ms idle=658.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:25.140 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:25.141 [debug] QUERY OK source="media_items" db=0.3ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [43] 16:40:25.141 [info] Kicking off download for media item #43 (OKF7ZeWNrfg) 16:40:25.143 [debug] QUERY OK source="tasks" db=0.3ms idle=3.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [47, 43, ~U[2026-04-23 14:40:25Z], ~U[2026-04-23 14:40:25Z]] 16:40:25.143 [debug] Current batch of media processed. Will check again in 1000ms 16:40:26.143 [debug] Current batch of media processed. Will check again in 1000ms 16:40:27.144 [debug] Current batch of media processed. Will check again in 1000ms 16:40:28.146 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=159\n\nUnleash the power of AI chatbots like #ChatGPT and #GoogleGemini with Google's latest guide to writing great #prompts!\n\nIn this video, I share 5 actionable tips to write better prompts and get the most out of your AI interactions.\n\nDiscover how to use multi-step workflows, time-saving templates, and top-down competitive analysis to generate high-quality content and valuable insights. \n\n*TIMESTAMPS*\n00:00 Google’s New AI Prompting Guide\n00:25 The Power of Three\n02:13 Multi-Step Workflows\n03:47 Template Time-Savers\n05:45 Top-Down Competitive Analysis\n07:47 Supercharge Your PDFs \n\n*RESOURCES MENTIONED*\nDownload Google’s Prompt Guide: https://inthecloud.withgoogle.com/gemini-for-google-workspace-prompt-guide/dl-cd.html\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=159\nCopy prompts from this video: https://www.jeffsu.org/googles-prompting-guide-5-things-to-know\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "duration" => 550, "filename" => "/downloads/Jeff Su/2024-05-14 Google’s NEW Prompting Guide is Incredible!/Google’s NEW Prompting Guide is Incredible! [o64Mv-ArFDI].mp4", "id" => "o64Mv-ArFDI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=o64Mv-ArFDI", "playlist_index" => 44, "timestamp" => 1715691650, "title" => "Google’s NEW Prompting Guide is Incredible!", "upload_date" => "20240514"} 16:40:28.148 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1904.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:40:28.149 [debug] QUERY OK source="sources" db=0.4ms idle=1906.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:28.149 [debug] QUERY OK source="media_items" db=0.6ms idle=1907.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-14 13:00:50Z], 1] 16:40:28.153 [debug] QUERY OK source="media_items" db=2.1ms idle=1665.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=159\n\nUnleash the power of AI chatbots like #ChatGPT and #GoogleGemini with Google's latest guide to writing great #prompts!\n\nIn this video, I share 5 actionable tips to write better prompts and get the most out of your AI interactions.\n\nDiscover how to use multi-step workflows, time-saving templates, and top-down competitive analysis to generate high-quality content and valuable insights. \n\n*TIMESTAMPS*\n00:00 Google’s New AI Prompting Guide\n00:25 The Power of Three\n02:13 Multi-Step Workflows\n03:47 Template Time-Savers\n05:45 Top-Down Competitive Analysis\n07:47 Supercharge Your PDFs \n\n*RESOURCES MENTIONED*\nDownload Google’s Prompt Guide: https://inthecloud.withgoogle.com/gemini-for-google-workspace-prompt-guide/dl-cd.html\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=159\nCopy prompts from this video: https://www.jeffsu.org/googles-prompting-guide-5-things-to-know\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "Google’s NEW Prompting Guide is Incredible!", "053c1cd2-7a6f-4a23-abfb-801b30d55e18", false, "o64Mv-ArFDI", 1, [], 550, false, "https://www.youtube.com/watch?v=o64Mv-ArFDI", 44, "/downloads/Jeff Su/2024-05-14 Google’s NEW Prompting Guide is Incredible!/Google’s NEW Prompting Guide is Incredible! [o64Mv-ArFDI].mp4", false, false, 99, ~U[2024-05-14 13:00:50Z], ~U[2026-04-23 14:40:28Z], ~U[2026-04-23 14:40:28Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=159\n\nUnleash the power of AI chatbots like #ChatGPT and #GoogleGemini with Google's latest guide to writing great #prompts!\n\nIn this video, I share 5 actionable tips to write better prompts and get the most out of your AI interactions.\n\nDiscover how to use multi-step workflows, time-saving templates, and top-down competitive analysis to generate high-quality content and valuable insights. \n\n*TIMESTAMPS*\n00:00 Google’s New AI Prompting Guide\n00:25 The Power of Three\n02:13 Multi-Step Workflows\n03:47 Template Time-Savers\n05:45 Top-Down Competitive Analysis\n07:47 Supercharge Your PDFs \n\n*RESOURCES MENTIONED*\nDownload Google’s Prompt Guide: https://inthecloud.withgoogle.com/gemini-for-google-workspace-prompt-guide/dl-cd.html\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=159\nCopy prompts from this video: https://www.jeffsu.org/googles-prompting-guide-5-things-to-know\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "Google’s NEW Prompting Guide is Incredible!", "o64Mv-ArFDI", 1, 550, false, "https://www.youtube.com/watch?v=o64Mv-ArFDI", "/downloads/Jeff Su/2024-05-14 Google’s NEW Prompting Guide is Incredible!/Google’s NEW Prompting Guide is Incredible! [o64Mv-ArFDI].mp4", false, ~U[2024-05-14 13:00:50Z]] 16:40:28.155 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=657.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:40:28.156 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=7.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:28.157 [debug] QUERY OK source="media_items" db=0.4ms idle=8.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [44] 16:40:28.157 [info] Kicking off download for media item #44 (o64Mv-ArFDI) 16:40:28.160 [debug] QUERY OK source="tasks" db=0.2ms idle=5.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [48, 44, ~U[2026-04-23 14:40:28Z], ~U[2026-04-23 14:40:28Z]] 16:40:28.160 [debug] Current batch of media processed. Will check again in 1000ms 16:40:29.161 [debug] Current batch of media processed. Will check again in 1000ms 16:40:30.162 [debug] Current batch of media processed. Will check again in 1000ms 16:40:31.163 [debug] Current batch of media processed. Will check again in 1000ms 16:40:32.165 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My free Workspace Toolkit - https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=158\n\nSlides should be a powerful tool, not a boring chore. In this video, I share 10 actionable #presentation tips from Herng Lee - a veteran Strategy & Operations Manager at Google! \n\nYou'll learn:\n\n👀\u00A0How to write headlines that grab attention\n\n📈\u00A0The #1 mistake to avoid in slide structure\n\n💬\u00A0How to make your message persuasive\n\n...and more! Let’s get started 😉\n\n*TIMESTAMPS*\n00:00 How to Write Great Slides\n00:32 Tactic #1\n01:44 Tactic #2\n02:36 Tactic #3\n03:42 Tactic #4\n04:27 Tactic #5\n05:13 Tactic #6\n06:09 Tactic #7\n07:01 Tactic #8\n07:31 Tactic #9\n08:16 Tactic #10\n\n*RESOURCES I MENTION IN THE VIDEO*\nHerng’s Playbook - https://hernglee.gumroad.com/l/slide-science\nMy free Workspace Toolkit - https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=158\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googleslides #powerpoint", "duration" => 545, "filename" => "/downloads/Jeff Su/2024-04-30 10 Years of Google Presentation Advice in 10 Minutes/10 Years of Google Presentation Advice in 10 Minutes [qcis85AStL4].mp4", "id" => "qcis85AStL4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qcis85AStL4", "playlist_index" => 45, "timestamp" => 1714482052, "title" => "10 Years of Google Presentation Advice in 10 Minutes", "upload_date" => "20240430"} 16:40:32.166 [debug] QUERY OK source="sources" db=1.0ms idle=923.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:40:32.167 [debug] QUERY OK source="sources" db=0.3ms idle=925.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:32.168 [debug] QUERY OK source="media_items" db=0.5ms idle=925.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-30 13:00:52Z], 1] 16:40:32.171 [debug] QUERY OK source="media_items" db=1.6ms idle=926.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Workspace Toolkit - https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=158\n\nSlides should be a powerful tool, not a boring chore. In this video, I share 10 actionable #presentation tips from Herng Lee - a veteran Strategy & Operations Manager at Google! \n\nYou'll learn:\n\n👀\u00A0How to write headlines that grab attention\n\n📈\u00A0The #1 mistake to avoid in slide structure\n\n💬\u00A0How to make your message persuasive\n\n...and more! Let’s get started 😉\n\n*TIMESTAMPS*\n00:00 How to Write Great Slides\n00:32 Tactic #1\n01:44 Tactic #2\n02:36 Tactic #3\n03:42 Tactic #4\n04:27 Tactic #5\n05:13 Tactic #6\n06:09 Tactic #7\n07:01 Tactic #8\n07:31 Tactic #9\n08:16 Tactic #10\n\n*RESOURCES I MENTION IN THE VIDEO*\nHerng’s Playbook - https://hernglee.gumroad.com/l/slide-science\nMy free Workspace Toolkit - https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=158\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googleslides #powerpoint", "10 Years of Google Presentation Advice in 10 Minutes", "b3265c3f-778e-4e9d-a529-ed599ed2982b", false, "qcis85AStL4", 1, [], 545, false, "https://www.youtube.com/watch?v=qcis85AStL4", 45, "/downloads/Jeff Su/2024-04-30 10 Years of Google Presentation Advice in 10 Minutes/10 Years of Google Presentation Advice in 10 Minutes [qcis85AStL4].mp4", false, false, 99, ~U[2024-04-30 13:00:52Z], ~U[2026-04-23 14:40:32Z], ~U[2026-04-23 14:40:32Z], "My free Workspace Toolkit - https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=158\n\nSlides should be a powerful tool, not a boring chore. In this video, I share 10 actionable #presentation tips from Herng Lee - a veteran Strategy & Operations Manager at Google! \n\nYou'll learn:\n\n👀\u00A0How to write headlines that grab attention\n\n📈\u00A0The #1 mistake to avoid in slide structure\n\n💬\u00A0How to make your message persuasive\n\n...and more! Let’s get started 😉\n\n*TIMESTAMPS*\n00:00 How to Write Great Slides\n00:32 Tactic #1\n01:44 Tactic #2\n02:36 Tactic #3\n03:42 Tactic #4\n04:27 Tactic #5\n05:13 Tactic #6\n06:09 Tactic #7\n07:01 Tactic #8\n07:31 Tactic #9\n08:16 Tactic #10\n\n*RESOURCES I MENTION IN THE VIDEO*\nHerng’s Playbook - https://hernglee.gumroad.com/l/slide-science\nMy free Workspace Toolkit - https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=158\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googleslides #powerpoint", "10 Years of Google Presentation Advice in 10 Minutes", "qcis85AStL4", 1, 545, false, "https://www.youtube.com/watch?v=qcis85AStL4", "/downloads/Jeff Su/2024-04-30 10 Years of Google Presentation Advice in 10 Minutes/10 Years of Google Presentation Advice in 10 Minutes [qcis85AStL4].mp4", false, ~U[2024-04-30 13:00:52Z]] 16:40:32.171 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=666.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:40:32.172 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 16:40:32.173 [debug] QUERY OK source="media_items" db=0.3ms idle=5.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [45] 16:40:32.173 [info] Kicking off download for media item #45 (qcis85AStL4) 16:40:32.176 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=3.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [49, 45, ~U[2026-04-23 14:40:32Z], ~U[2026-04-23 14:40:32Z]] 16:40:32.176 [debug] Current batch of media processed. Will check again in 1000ms 16:40:33.176 [debug] Current batch of media processed. Will check again in 1000ms 16:40:34.177 [debug] Current batch of media processed. Will check again in 1000ms 16:40:35.178 [debug] Current batch of media processed. Will check again in 1000ms 16:40:36.180 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=157\n\nI've spent 10+ years refining these Google Workspace templates, and (hopefully) they'll change your work life!\n\nThis video gives you:\n\n📑\u00A0A super flexible Google Docs template\u00A0for notes, meetings, and more\n\n👫\u00A0A team meeting template built on Google Sheets\n\n**🗂️**\u00A0URLs to track your assigned comments\u00A0in Google Drive – never miss a thing!\n\n*TIMESTAMPS*\n00:00 The 3 Google Workspace Templates\n00:27 The Only Notes Template You Need\n03:41 My Team Meeting Notes Template\n05:30 Google Drive Templates for Organization\n06:39 Submit your template requests!\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googleworkspace #productivity #googledocs", "duration" => 412, "filename" => "/downloads/Jeff Su/2024-04-16 3 Workspace Templates that TRIPLED My Productivity/3 Workspace Templates that TRIPLED My Productivity [v0NjRqblySI].mp4", "id" => "v0NjRqblySI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=v0NjRqblySI", "playlist_index" => 46, "timestamp" => 1713272458, "title" => "3 Workspace Templates that TRIPLED My Productivity", "upload_date" => "20240416"} 16:40:36.181 [debug] QUERY OK source="sources" db=1.1ms idle=937.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:40:36.182 [debug] QUERY OK source="sources" db=0.3ms idle=939.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:36.183 [debug] QUERY OK source="media_items" db=0.7ms idle=939.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-16 13:00:58Z], 1] 16:40:36.188 [debug] QUERY OK source="media_items" db=3.5ms idle=941.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=157\n\nI've spent 10+ years refining these Google Workspace templates, and (hopefully) they'll change your work life!\n\nThis video gives you:\n\n📑\u00A0A super flexible Google Docs template\u00A0for notes, meetings, and more\n\n👫\u00A0A team meeting template built on Google Sheets\n\n**🗂️**\u00A0URLs to track your assigned comments\u00A0in Google Drive – never miss a thing!\n\n*TIMESTAMPS*\n00:00 The 3 Google Workspace Templates\n00:27 The Only Notes Template You Need\n03:41 My Team Meeting Notes Template\n05:30 Google Drive Templates for Organization\n06:39 Submit your template requests!\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googleworkspace #productivity #googledocs", "3 Workspace Templates that TRIPLED My Productivity", "790ad2c5-c5b3-40e0-bd6a-0b0fc1c4a937", false, "v0NjRqblySI", 1, [], 412, false, "https://www.youtube.com/watch?v=v0NjRqblySI", 46, "/downloads/Jeff Su/2024-04-16 3 Workspace Templates that TRIPLED My Productivity/3 Workspace Templates that TRIPLED My Productivity [v0NjRqblySI].mp4", false, false, 99, ~U[2024-04-16 13:00:58Z], ~U[2026-04-23 14:40:36Z], ~U[2026-04-23 14:40:36Z], "🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=157\n\nI've spent 10+ years refining these Google Workspace templates, and (hopefully) they'll change your work life!\n\nThis video gives you:\n\n📑\u00A0A super flexible Google Docs template\u00A0for notes, meetings, and more\n\n👫\u00A0A team meeting template built on Google Sheets\n\n**🗂️**\u00A0URLs to track your assigned comments\u00A0in Google Drive – never miss a thing!\n\n*TIMESTAMPS*\n00:00 The 3 Google Workspace Templates\n00:27 The Only Notes Template You Need\n03:41 My Team Meeting Notes Template\n05:30 Google Drive Templates for Organization\n06:39 Submit your template requests!\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googleworkspace #productivity #googledocs", "3 Workspace Templates that TRIPLED My Productivity", "v0NjRqblySI", 1, 412, false, "https://www.youtube.com/watch?v=v0NjRqblySI", "/downloads/Jeff Su/2024-04-16 3 Workspace Templates that TRIPLED My Productivity/3 Workspace Templates that TRIPLED My Productivity [v0NjRqblySI].mp4", false, ~U[2024-04-16 13:00:58Z]] 16:40:36.189 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=674.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:40:36.190 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=7.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:36.191 [debug] QUERY OK source="media_items" db=0.3ms idle=7.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [46] 16:40:36.191 [info] Kicking off download for media item #46 (v0NjRqblySI) 16:40:36.194 [debug] QUERY OK source="tasks" db=0.3ms idle=4.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [50, 46, ~U[2026-04-23 14:40:36Z], ~U[2026-04-23 14:40:36Z]] 16:40:36.194 [debug] Current batch of media processed. Will check again in 1000ms 16:40:37.194 [debug] Current batch of media processed. Will check again in 1000ms 16:40:38.195 [debug] Current batch of media processed. Will check again in 1000ms 16:40:38.322 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=E7YiKBeOneo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/fe/ce/fecebd4d60a6084d2c422d3988faebe00c55f5e54c9a524bce301b373e2f5dad.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:40:38.378 [debug] Running yt-dlp command for action: download_thumbnail 16:40:38.380 [debug] QUERY OK source="settings" db=0.2ms idle=1137.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:38.381 [debug] QUERY OK source="settings" db=0.9ms 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 [] 16:40:38.382 [debug] QUERY OK source="settings" db=0.1ms idle=1138.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:38.382 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=E7YiKBeOneo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/9/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/0c/1e/0c1ec587a86201ec2948df15c2c5a8b9e6894733e372a0d1bac9868c2ab7c7f4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:40:39.196 [debug] Current batch of media processed. Will check again in 1000ms 16:40:40.198 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=156\n\nThe hardest part of creating #presentations from scratch is the initial brainstorming phase so in this video let’s go over how to use #ChatGPT to structure a strong presentation outline in minutes! \n\nWe’ll use a topic one of you submitted a month ago to show this method works for any type of presentation and we’ll even go over how to use ChatGPT to write Google Apps Scripts for automatic slide generation in Google Slides.\n\n*TIMESTAMPS*\n00:00 Life-Changing ChatGPT tip for Google Slides\n00:35 Craft a Presentation Outline with ChatGPT\n03:16 Use ChatGPT to Generate Google Apps Script\n05:14 Import Theme and Apply Layouts\n06:38 Pro Tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload my Google Slides template - https://www.jeffsu.org/build-amazing-presentations-in-minutes-with-chatgpt\nMake a copy of my presentation prompt - https://www.jeffsu.org/build-amazing-presentations-in-minutes-with-chatgpt\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity", "duration" => 458, "filename" => "/downloads/Jeff Su/2024-04-02 A GENIUS Way to use ChatGPT for Presentations!/A GENIUS Way to use ChatGPT for Presentations! [_9pKAG_XabM].mp4", "id" => "_9pKAG_XabM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_9pKAG_XabM", "playlist_index" => 47, "timestamp" => 1712062833, "title" => "A GENIUS Way to use ChatGPT for Presentations!", "upload_date" => "20240402"} 16:40:40.199 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1816.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:40:40.200 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1817.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:40.200 [debug] QUERY OK source="media_items" db=0.3ms idle=1677.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-02 13:00:33Z], 1] 16:40:40.203 [debug] QUERY OK source="media_items" db=1.7ms idle=958.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=156\n\nThe hardest part of creating #presentations from scratch is the initial brainstorming phase so in this video let’s go over how to use #ChatGPT to structure a strong presentation outline in minutes! \n\nWe’ll use a topic one of you submitted a month ago to show this method works for any type of presentation and we’ll even go over how to use ChatGPT to write Google Apps Scripts for automatic slide generation in Google Slides.\n\n*TIMESTAMPS*\n00:00 Life-Changing ChatGPT tip for Google Slides\n00:35 Craft a Presentation Outline with ChatGPT\n03:16 Use ChatGPT to Generate Google Apps Script\n05:14 Import Theme and Apply Layouts\n06:38 Pro Tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload my Google Slides template - https://www.jeffsu.org/build-amazing-presentations-in-minutes-with-chatgpt\nMake a copy of my presentation prompt - https://www.jeffsu.org/build-amazing-presentations-in-minutes-with-chatgpt\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity", "A GENIUS Way to use ChatGPT for Presentations!", "03a2c717-b72b-40e0-9f9c-861dad3c6290", false, "_9pKAG_XabM", 1, [], 458, false, "https://www.youtube.com/watch?v=_9pKAG_XabM", 47, "/downloads/Jeff Su/2024-04-02 A GENIUS Way to use ChatGPT for Presentations!/A GENIUS Way to use ChatGPT for Presentations! [_9pKAG_XabM].mp4", false, false, 99, ~U[2024-04-02 13:00:33Z], ~U[2026-04-23 14:40:40Z], ~U[2026-04-23 14:40:40Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=156\n\nThe hardest part of creating #presentations from scratch is the initial brainstorming phase so in this video let’s go over how to use #ChatGPT to structure a strong presentation outline in minutes! \n\nWe’ll use a topic one of you submitted a month ago to show this method works for any type of presentation and we’ll even go over how to use ChatGPT to write Google Apps Scripts for automatic slide generation in Google Slides.\n\n*TIMESTAMPS*\n00:00 Life-Changing ChatGPT tip for Google Slides\n00:35 Craft a Presentation Outline with ChatGPT\n03:16 Use ChatGPT to Generate Google Apps Script\n05:14 Import Theme and Apply Layouts\n06:38 Pro Tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload my Google Slides template - https://www.jeffsu.org/build-amazing-presentations-in-minutes-with-chatgpt\nMake a copy of my presentation prompt - https://www.jeffsu.org/build-amazing-presentations-in-minutes-with-chatgpt\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity", "A GENIUS Way to use ChatGPT for Presentations!", "_9pKAG_XabM", 1, 458, false, "https://www.youtube.com/watch?v=_9pKAG_XabM", "/downloads/Jeff Su/2024-04-02 A GENIUS Way to use ChatGPT for Presentations!/A GENIUS Way to use ChatGPT for Presentations! [_9pKAG_XabM].mp4", false, ~U[2024-04-02 13:00:33Z]] 16:40:40.204 [debug] QUERY OK source="sources" db=0.3ms idle=678.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:40:40.204 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=5.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:40.205 [debug] QUERY OK source="media_items" db=0.3ms idle=4.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [47] 16:40:40.205 [info] Kicking off download for media item #47 (_9pKAG_XabM) 16:40:40.208 [debug] QUERY OK source="tasks" db=0.3ms idle=3.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [51, 47, ~U[2026-04-23 14:40:40Z], ~U[2026-04-23 14:40:40Z]] 16:40:40.208 [debug] Current batch of media processed. Will check again in 1000ms 16:40:41.208 [debug] Current batch of media processed. Will check again in 1000ms 16:40:42.209 [debug] Current batch of media processed. Will check again in 1000ms 16:40:43.210 [debug] Current batch of media processed. Will check again in 1000ms 16:40:44.211 [debug] Current batch of media processed. Will check again in 1000ms 16:40:44.377 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=E7YiKBeOneo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/9/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/0c/1e/0c1ec587a86201ec2948df15c2c5a8b9e6894733e372a0d1bac9868c2ab7c7f4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:40:44.378 [debug] QUERY OK db=0.0ms idle=1135.0ms begin [] 16:40:44.379 [debug] QUERY OK source="media_items" db=0.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:40:38Z], "/downloads/Jeff Su/2025-12-04 Give Me 9 Minutes, I'll Make You AI-Native/Give Me 9 Minutes, I'll Make You AI-Native [E7YiKBeOneo].mp4", "/downloads/Jeff Su/2025-12-04 Give Me 9 Minutes, I'll Make You AI-Native/Give Me 9 Minutes, I'll Make You AI-Native [E7YiKBeOneo].info.json", "/downloads/Jeff Su/2025-12-04 Give Me 9 Minutes, I'll Make You AI-Native/Give Me 9 Minutes, I'll Make You AI-Native [E7YiKBeOneo].nfo", "/downloads/Jeff Su/2025-12-04 Give Me 9 Minutes, I'll Make You AI-Native/Give Me 9 Minutes, I'll Make You AI-Native [E7YiKBeOneo]-thumb.jpg", ~U[2026-04-23 14:40:44Z], 9] 16:40:44.380 [debug] QUERY OK source="media_metadata" db=1.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/9/metadata.json.gz", "/config/metadata/media_items/9/thumbnail.jpg", 9, ~U[2026-04-23 14:40:44Z], ~U[2026-04-23 14:40:44Z]] 16:40:44.381 [debug] QUERY OK db=0.3ms commit [] 16:40:44.383 [debug] QUERY OK source="media_items" db=1.2ms idle=1138.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [30776596, ~U[2026-04-23 14:40:44Z], 9] 16:40:44.383 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:40:44.383 [info] {"args":{"id":9},"id":13,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":33906254,"event":"job:stop","queue_time":132475870,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:40:44.390 [info] {"args":{"id":11},"id":15,"meta":{},"system_time":1776955244390804907,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:40:44.391 [debug] QUERY OK source="media_items" db=0.3ms idle=858.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" = ?) [11] 16:40:44.391 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:40:44.392 [debug] QUERY OK source="sources" db=0.2ms idle=10.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:40:44.398 [debug] QUERY OK source="media_profiles" db=5.8ms idle=9.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:44.399 [debug] QUERY OK source="media_items" db=0.3ms idle=15.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 [11] 16:40:44.400 [debug] QUERY OK source="media_metadata" db=0.1ms idle=9.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" = ?) [11] 16:40:44.400 [debug] QUERY OK source="media_profiles" db=0.1ms idle=9.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:44.401 [debug] QUERY OK source="settings" db=0.2ms idle=8.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:44.401 [debug] QUERY OK source="settings" db=0.2ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:44.402 [debug] Running yt-dlp command for action: get_downloadable_status 16:40:44.403 [debug] QUERY OK source="settings" db=0.1ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:44.403 [debug] QUERY OK source="settings" db=0.2ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:44.404 [debug] QUERY OK source="settings" db=0.2ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:44.404 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=6hRO1q8vv60 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/33/e4/33e465c0904abf6c4cce57b9305deaa189836319d39397aacef82d6110c55af5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:40:44.781 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4Fu23_l9F_o --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a2/7c/a27c2c233f585dd31f198f9014fc5f98433b7f2a202b5ff4c6774e4a41aa35f6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:40:44.818 [debug] Running yt-dlp command for action: download_thumbnail 16:40:44.820 [debug] QUERY OK source="settings" db=0.2ms idle=417.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:44.820 [debug] QUERY OK source="settings" db=0.1ms idle=416.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:44.820 [debug] QUERY OK source="settings" db=0.1ms idle=416.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:44.820 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4Fu23_l9F_o --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/10/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3d/e0/3de07b992dcecef76c6244f688a3265a92287ab84fbfff8355030bea1317e7b1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:40:45.213 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=155\n\n🔍\u00A0Use Teal’s free Resume Builder here: https://shrsl.com/4gg9k\n\nDiscover how #ChatGPT can streamline your job search! In this video, I share the top 5 BEST ways to use ChatGPT as a job seeker, and expose the hyped-up use cases that will only waste your time.\n\nYou'll learn how to:\n\n*📖\u00A0Research companies effectively*\u00A0while avoiding misleading prompts\n\n*📝\u00A0Write compelling cover letters*\u00A0with the \"chain of thought\" technique\n\n*💼\u00A0Tailor your resume*\u00A0for specific roles using AI\n\n*✍🏻\u00A0Craft an attention-grabbing LinkedIn headline*\u00A0by \"stealing with pride\"\n\n*💬\u00A0Get expert feedback on your resume*\u00A0based on proven best practices\n\n*TIMESTAMPS*\n00:00 The Worst ChatGPT Use Case for Job Search\n00:22 Use Case #1\n01:02 Use Case #2\n03:25 Use Case #3\n04:25 Use Case #4\n05:51 Use Case #5\n07:02 Bonus Tip for Job Seekers\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload my prompts for free - https://www.jeffsu.org/chatgpt-for-job-seekers-best-and-worst-use-cases\nBuy my premium resume package - https://jeffsu.gumroad.com/l/premium-resume-package\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #resumetips", "duration" => 491, "filename" => "/downloads/Jeff Su/2024-03-19 Top 5 ChatGPT Prompts for Job Seekers!/Top 5 ChatGPT Prompts for Job Seekers! [2uN8PTXMY5c].mp4", "id" => "2uN8PTXMY5c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2uN8PTXMY5c", "playlist_index" => 48, "timestamp" => 1710853205, "title" => "Top 5 ChatGPT Prompts for Job Seekers!", "upload_date" => "20240319"} 16:40:45.214 [debug] QUERY OK source="sources" db=0.9ms idle=809.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:40:45.215 [debug] QUERY OK source="sources" db=0.4ms idle=679.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:45.216 [debug] QUERY OK source="media_items" db=0.7ms idle=395.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-19 13:00:05Z], 1] 16:40:45.429 [debug] QUERY OK source="media_items" db=211.3ms idle=396.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=155\n\n🔍\u00A0Use Teal’s free Resume Builder here: https://shrsl.com/4gg9k\n\nDiscover how #ChatGPT can streamline your job search! In this video, I share the top 5 BEST ways to use ChatGPT as a job seeker, and expose the hyped-up use cases that will only waste your time.\n\nYou'll learn how to:\n\n*📖\u00A0Research companies effectively*\u00A0while avoiding misleading prompts\n\n*📝\u00A0Write compelling cover letters*\u00A0with the \"chain of thought\" technique\n\n*💼\u00A0Tailor your resume*\u00A0for specific roles using AI\n\n*✍🏻\u00A0Craft an attention-grabbing LinkedIn headline*\u00A0by \"stealing with pride\"\n\n*💬\u00A0Get expert feedback on your resume*\u00A0based on proven best practices\n\n*TIMESTAMPS*\n00:00 The Worst ChatGPT Use Case for Job Search\n00:22 Use Case #1\n01:02 Use Case #2\n03:25 Use Case #3\n04:25 Use Case #4\n05:51 Use Case #5\n07:02 Bonus Tip for Job Seekers\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload my prompts for free - https://www.jeffsu.org/chatgpt-for-job-seekers-best-and-worst-use-cases\nBuy my premium resume package - https://jeffsu.gumroad.com/l/premium-resume-package\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #resumetips", "Top 5 ChatGPT Prompts for Job Seekers!", "f7e527c7-99d7-413a-9c8f-76e0870618a1", false, "2uN8PTXMY5c", 1, [], 491, false, "https://www.youtube.com/watch?v=2uN8PTXMY5c", 48, "/downloads/Jeff Su/2024-03-19 Top 5 ChatGPT Prompts for Job Seekers!/Top 5 ChatGPT Prompts for Job Seekers! [2uN8PTXMY5c].mp4", false, false, 99, ~U[2024-03-19 13:00:05Z], ~U[2026-04-23 14:40:45Z], ~U[2026-04-23 14:40:45Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=155\n\n🔍\u00A0Use Teal’s free Resume Builder here: https://shrsl.com/4gg9k\n\nDiscover how #ChatGPT can streamline your job search! In this video, I share the top 5 BEST ways to use ChatGPT as a job seeker, and expose the hyped-up use cases that will only waste your time.\n\nYou'll learn how to:\n\n*📖\u00A0Research companies effectively*\u00A0while avoiding misleading prompts\n\n*📝\u00A0Write compelling cover letters*\u00A0with the \"chain of thought\" technique\n\n*💼\u00A0Tailor your resume*\u00A0for specific roles using AI\n\n*✍🏻\u00A0Craft an attention-grabbing LinkedIn headline*\u00A0by \"stealing with pride\"\n\n*💬\u00A0Get expert feedback on your resume*\u00A0based on proven best practices\n\n*TIMESTAMPS*\n00:00 The Worst ChatGPT Use Case for Job Search\n00:22 Use Case #1\n01:02 Use Case #2\n03:25 Use Case #3\n04:25 Use Case #4\n05:51 Use Case #5\n07:02 Bonus Tip for Job Seekers\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload my prompts for free - https://www.jeffsu.org/chatgpt-for-job-seekers-best-and-worst-use-cases\nBuy my premium resume package - https://jeffsu.gumroad.com/l/premium-resume-package\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #resumetips", "Top 5 ChatGPT Prompts for Job Seekers!", "2uN8PTXMY5c", 1, 491, false, "https://www.youtube.com/watch?v=2uN8PTXMY5c", "/downloads/Jeff Su/2024-03-19 Top 5 ChatGPT Prompts for Job Seekers!/Top 5 ChatGPT Prompts for Job Seekers! [2uN8PTXMY5c].mp4", false, ~U[2024-03-19 13:00:05Z]] 16:40:45.432 [debug] QUERY OK source="sources" db=2.9ms queue=0.1ms idle=609.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:40:45.433 [debug] QUERY OK source="media_profiles" db=0.4ms idle=218.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] 16:40:45.439 [debug] QUERY OK source="media_items" db=4.8ms idle=218.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 [48] 16:40:45.439 [info] Kicking off download for media item #48 (2uN8PTXMY5c) 16:40:46.038 [debug] QUERY OK source="tasks" db=3.9ms queue=0.1ms idle=600.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [52, 48, ~U[2026-04-23 14:40:46Z], ~U[2026-04-23 14:40:46Z]] 16:40:46.039 [debug] Current batch of media processed. Will check again in 1000ms 16:40:47.039 [debug] Current batch of media processed. Will check again in 1000ms 16:40:48.040 [debug] Current batch of media processed. Will check again in 1000ms 16:40:48.249 [info] {"source":"oban","duration":1121,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:40:49.042 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "📝\u00A0Download and use #grammarly for free: http://grammarly.com/jeffsu\n\nAs a part-time Youtuber, I used to think my corporate job was holding me back. \n\nTurns out, the 4 key skills that play a critical role in my success as a part-time content creator could only have been developed in my 9 to 5!\n\n1️⃣\u00A0Master storytelling with the SCQA framework\n2️⃣\u00A0Get to the point with the BLUF technique\n3️⃣\u00A0Your network is…your net worth\n4️⃣\u00A0Systems = Success\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 The Truth about Full-Time Jobs\n00:40 Unfair Advantage #1\n02:22 Unfair Advantage #2\n04:21 Unfair Advantage #3\n05:33 Unfair Advantage #4\n07:30 Real Talk from Jeff\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy SCQA Framework video: https://youtu.be/nuosoMyf0eA\nMake a copy of my Executive Summary slide: https://www.jeffsu.org/the-truth-about-full-time-jobs-when-you-have-a-side-hustle\nSign up for the Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#corporatedrone #contentcreation", "duration" => 474, "filename" => "/downloads/Jeff Su/2024-03-05 The Truth about Full-Time Jobs (when you have a side hustle)/The Truth about Full-Time Jobs (when you have a side hustle) [BE-p6965TmE].mp4", "id" => "BE-p6965TmE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BE-p6965TmE", "playlist_index" => 49, "timestamp" => 1709643617, "title" => "The Truth about Full-Time Jobs (when you have a side hustle)", "upload_date" => "20240305"} 16:40:49.044 [debug] QUERY OK source="sources" db=2.1ms idle=1799.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:40:49.047 [debug] QUERY OK source="sources" db=2.3ms queue=0.1ms idle=1802.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:49.050 [debug] QUERY OK source="media_items" db=2.4ms queue=0.1ms idle=1480.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-05 13:00:17Z], 1] 16:40:49.055 [debug] QUERY OK source="media_items" db=3.7ms idle=802.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📝\u00A0Download and use #grammarly for free: http://grammarly.com/jeffsu\n\nAs a part-time Youtuber, I used to think my corporate job was holding me back. \n\nTurns out, the 4 key skills that play a critical role in my success as a part-time content creator could only have been developed in my 9 to 5!\n\n1️⃣\u00A0Master storytelling with the SCQA framework\n2️⃣\u00A0Get to the point with the BLUF technique\n3️⃣\u00A0Your network is…your net worth\n4️⃣\u00A0Systems = Success\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 The Truth about Full-Time Jobs\n00:40 Unfair Advantage #1\n02:22 Unfair Advantage #2\n04:21 Unfair Advantage #3\n05:33 Unfair Advantage #4\n07:30 Real Talk from Jeff\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy SCQA Framework video: https://youtu.be/nuosoMyf0eA\nMake a copy of my Executive Summary slide: https://www.jeffsu.org/the-truth-about-full-time-jobs-when-you-have-a-side-hustle\nSign up for the Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#corporatedrone #contentcreation", "The Truth about Full-Time Jobs (when you have a side hustle)", "65a82775-d323-430f-952c-1667e15b40ab", false, "BE-p6965TmE", 1, [], 474, false, "https://www.youtube.com/watch?v=BE-p6965TmE", 49, "/downloads/Jeff Su/2024-03-05 The Truth about Full-Time Jobs (when you have a side hustle)/The Truth about Full-Time Jobs (when you have a side hustle) [BE-p6965TmE].mp4", false, false, 99, ~U[2024-03-05 13:00:17Z], ~U[2026-04-23 14:40:49Z], ~U[2026-04-23 14:40:49Z], "📝\u00A0Download and use #grammarly for free: http://grammarly.com/jeffsu\n\nAs a part-time Youtuber, I used to think my corporate job was holding me back. \n\nTurns out, the 4 key skills that play a critical role in my success as a part-time content creator could only have been developed in my 9 to 5!\n\n1️⃣\u00A0Master storytelling with the SCQA framework\n2️⃣\u00A0Get to the point with the BLUF technique\n3️⃣\u00A0Your network is…your net worth\n4️⃣\u00A0Systems = Success\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 The Truth about Full-Time Jobs\n00:40 Unfair Advantage #1\n02:22 Unfair Advantage #2\n04:21 Unfair Advantage #3\n05:33 Unfair Advantage #4\n07:30 Real Talk from Jeff\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy SCQA Framework video: https://youtu.be/nuosoMyf0eA\nMake a copy of my Executive Summary slide: https://www.jeffsu.org/the-truth-about-full-time-jobs-when-you-have-a-side-hustle\nSign up for the Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#corporatedrone #contentcreation", "The Truth about Full-Time Jobs (when you have a side hustle)", "BE-p6965TmE", 1, 474, false, "https://www.youtube.com/watch?v=BE-p6965TmE", "/downloads/Jeff Su/2024-03-05 The Truth about Full-Time Jobs (when you have a side hustle)/The Truth about Full-Time Jobs (when you have a side hustle) [BE-p6965TmE].mp4", false, ~U[2024-03-05 13:00:17Z]] 16:40:49.057 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=486.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:40:49.059 [debug] QUERY OK source="media_profiles" db=2.0ms idle=12.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] 16:40:49.060 [debug] QUERY OK source="media_items" db=0.3ms idle=12.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 [49] 16:40:49.060 [info] Kicking off download for media item #49 (BE-p6965TmE) 16:40:49.064 [debug] QUERY OK source="tasks" db=0.3ms idle=6.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [53, 49, ~U[2026-04-23 14:40:49Z], ~U[2026-04-23 14:40:49Z]] 16:40:49.065 [debug] Current batch of media processed. Will check again in 1000ms 16:40:50.065 [debug] Current batch of media processed. Will check again in 1000ms 16:40:50.455 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=6hRO1q8vv60 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/33/e4/33e465c0904abf6c4cce57b9305deaa189836319d39397aacef82d6110c55af5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:40:50.456 [debug] Running yt-dlp command for action: download 16:40:50.456 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=885.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:50.457 [debug] QUERY OK source="settings" db=0.2ms idle=214.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:50.457 [debug] QUERY OK source="settings" db=0.2ms idle=214.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:50.458 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=6hRO1q8vv60 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bb/c7/bbc7e8b7634ceb45a48db8e5535a1bd754c228004c9b7c724aeae73e69fb93e3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:40:50.989 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4Fu23_l9F_o --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/10/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3d/e0/3de07b992dcecef76c6244f688a3265a92287ab84fbfff8355030bea1317e7b1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:40:50.990 [debug] QUERY OK db=0.0ms idle=747.4ms begin [] 16:40:50.991 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:40:44Z], "/downloads/Jeff Su/2025-11-18 Master 80% of Notion with this ONE Feature/Master 80% of Notion with this ONE Feature [4Fu23_l9F_o].mp4", "/downloads/Jeff Su/2025-11-18 Master 80% of Notion with this ONE Feature/Master 80% of Notion with this ONE Feature [4Fu23_l9F_o].info.json", "/downloads/Jeff Su/2025-11-18 Master 80% of Notion with this ONE Feature/Master 80% of Notion with this ONE Feature [4Fu23_l9F_o].nfo", "/downloads/Jeff Su/2025-11-18 Master 80% of Notion with this ONE Feature/Master 80% of Notion with this ONE Feature [4Fu23_l9F_o]-thumb.jpg", ~U[2026-04-23 14:40:50Z], 10] 16:40:50.993 [debug] QUERY OK source="media_metadata" db=0.9ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/10/metadata.json.gz", "/config/metadata/media_items/10/thumbnail.jpg", 10, ~U[2026-04-23 14:40:50Z], ~U[2026-04-23 14:40:50Z]] 16:40:50.993 [debug] QUERY OK db=0.6ms commit [] 16:40:50.996 [debug] QUERY OK source="media_items" db=1.7ms idle=538.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [35132917, ~U[2026-04-23 14:40:50Z], 10] 16:40:50.998 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:40:50.999 [info] {"args":{"id":10},"id":14,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":38546362,"event":"job:stop","queue_time":130450849,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:40:51.006 [info] {"args":{"id":12},"id":16,"meta":{},"system_time":1776955251006009618,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:40:51.006 [debug] QUERY OK source="media_items" db=0.3ms idle=431.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" = ?) [12] 16:40:51.007 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:40:51.007 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:40:51.008 [debug] QUERY OK source="media_profiles" db=0.3ms idle=11.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:51.009 [debug] QUERY OK source="media_items" db=0.3ms 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 [12] 16:40:51.010 [debug] QUERY OK source="media_metadata" db=0.2ms idle=4.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" = ?) [12] 16:40:51.011 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:51.012 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:40:51.012 [debug] QUERY OK source="settings" db=0.3ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:51.013 [debug] Running yt-dlp command for action: get_downloadable_status 16:40:51.014 [debug] QUERY OK source="settings" db=0.2ms idle=4.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:51.014 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:40:51.015 [debug] QUERY OK source="settings" db=0.3ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:51.015 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=oO9GLC2iKy8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/01/d7/01d7543c60016f1e652a4fa77d3b8e6826516f286e3daeb5a2c55ff4065d396a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:40:51.066 [debug] Current batch of media processed. Will check again in 1000ms 16:40:52.067 [debug] Current batch of media processed. Will check again in 1000ms 16:40:53.069 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=153\n\nYou can make a copy of the template here: https://www.jeffsu.org/get-started-with-notion-without-losing-your-mind\n\nThis is *the* essential beginner’s tutorial for Notion Newbies.\n\nLearn how to build a simple yet powerful dashboard to organize your life. In just minutes, you'll master Notion databases, create customized views, and streamline your tasks and notes.\n\nWe will cover: Notion basics, Databases 101, Custom views and Templates.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Get Started with Notion in 15 min\n00:26 Create LifeOS home screen\n01:06 Create Tasks Database\n04:31 Create Notes Database\n07:03 Build Command Center dashboard\n13:12 Must-know Notion feature\n15:39 Bonus tip for Beginners\n\n*RESOURCES I MENTION IN THE VIDEO*\nPlan a Production Week in Notion - https://youtu.be/XXYfRgXTEE0\nIntro to AI video - https://youtu.be/Yq0QkCxoTHM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notionhq #notion #productivity", "duration" => 1095, "filename" => "/downloads/Jeff Su/2024-02-20 How to Get Started with Notion (without losing your mind)/How to Get Started with Notion (without losing your mind) [cYbcgtK0v_Q].mp4", "id" => "cYbcgtK0v_Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cYbcgtK0v_Q", "playlist_index" => 50, "timestamp" => 1708434036, "title" => "How to Get Started with Notion (without losing your mind)", "upload_date" => "20240220"} 16:40:53.070 [debug] QUERY OK source="sources" db=0.9ms idle=826.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:40:53.073 [debug] QUERY OK source="sources" db=2.5ms idle=828.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:53.075 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=830.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-20 13:00:36Z], 1] 16:40:53.078 [debug] QUERY OK source="media_items" db=1.8ms idle=832.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=153\n\nYou can make a copy of the template here: https://www.jeffsu.org/get-started-with-notion-without-losing-your-mind\n\nThis is *the* essential beginner’s tutorial for Notion Newbies.\n\nLearn how to build a simple yet powerful dashboard to organize your life. In just minutes, you'll master Notion databases, create customized views, and streamline your tasks and notes.\n\nWe will cover: Notion basics, Databases 101, Custom views and Templates.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Get Started with Notion in 15 min\n00:26 Create LifeOS home screen\n01:06 Create Tasks Database\n04:31 Create Notes Database\n07:03 Build Command Center dashboard\n13:12 Must-know Notion feature\n15:39 Bonus tip for Beginners\n\n*RESOURCES I MENTION IN THE VIDEO*\nPlan a Production Week in Notion - https://youtu.be/XXYfRgXTEE0\nIntro to AI video - https://youtu.be/Yq0QkCxoTHM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notionhq #notion #productivity", "How to Get Started with Notion (without losing your mind)", "9ce55410-3058-445a-ad83-73f95ce1d38e", false, "cYbcgtK0v_Q", 1, [], 1095, false, "https://www.youtube.com/watch?v=cYbcgtK0v_Q", 50, "/downloads/Jeff Su/2024-02-20 How to Get Started with Notion (without losing your mind)/How to Get Started with Notion (without losing your mind) [cYbcgtK0v_Q].mp4", false, false, 99, ~U[2024-02-20 13:00:36Z], ~U[2026-04-23 14:40:53Z], ~U[2026-04-23 14:40:53Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=153\n\nYou can make a copy of the template here: https://www.jeffsu.org/get-started-with-notion-without-losing-your-mind\n\nThis is *the* essential beginner’s tutorial for Notion Newbies.\n\nLearn how to build a simple yet powerful dashboard to organize your life. In just minutes, you'll master Notion databases, create customized views, and streamline your tasks and notes.\n\nWe will cover: Notion basics, Databases 101, Custom views and Templates.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Get Started with Notion in 15 min\n00:26 Create LifeOS home screen\n01:06 Create Tasks Database\n04:31 Create Notes Database\n07:03 Build Command Center dashboard\n13:12 Must-know Notion feature\n15:39 Bonus tip for Beginners\n\n*RESOURCES I MENTION IN THE VIDEO*\nPlan a Production Week in Notion - https://youtu.be/XXYfRgXTEE0\nIntro to AI video - https://youtu.be/Yq0QkCxoTHM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notionhq #notion #productivity", "How to Get Started with Notion (without losing your mind)", "cYbcgtK0v_Q", 1, 1095, false, "https://www.youtube.com/watch?v=cYbcgtK0v_Q", "/downloads/Jeff Su/2024-02-20 How to Get Started with Notion (without losing your mind)/How to Get Started with Notion (without losing your mind) [cYbcgtK0v_Q].mp4", false, ~U[2024-02-20 13:00:36Z]] 16:40:53.079 [debug] QUERY OK source="sources" db=1.1ms idle=499.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:53.080 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=9.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:53.082 [debug] QUERY OK source="media_items" db=0.9ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [50] 16:40:53.082 [info] Kicking off download for media item #50 (cYbcgtK0v_Q) 16:40:53.086 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=6.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [54, 50, ~U[2026-04-23 14:40:53Z], ~U[2026-04-23 14:40:53Z]] 16:40:53.087 [debug] Current batch of media processed. Will check again in 1000ms 16:40:54.087 [debug] Current batch of media processed. Will check again in 1000ms 16:40:55.088 [debug] Current batch of media processed. Will check again in 1000ms 16:40:56.089 [debug] Current batch of media processed. Will check again in 1000ms 16:40:56.902 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=oO9GLC2iKy8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/01/d7/01d7543c60016f1e652a4fa77d3b8e6826516f286e3daeb5a2c55ff4065d396a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:40:56.902 [debug] Running yt-dlp command for action: download 16:40:56.903 [debug] QUERY OK source="settings" db=0.3ms idle=659.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:56.903 [debug] QUERY OK source="settings" db=0.2ms idle=660.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:56.904 [debug] QUERY OK source="settings" db=0.7ms idle=660.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:40:56.905 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=oO9GLC2iKy8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/17/e1/17e1abe4c182f33589705045740c103f5b37d4a6388168e19e9d34ce6a38e722.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:40:57.090 [debug] Current batch of media processed. Will check again in 1000ms 16:40:58.092 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=152\n\nYou’re using #ChatGPT wrong but it’s not your fault.\n\nIn this video, we dive into the top 5 mistakes users make with ChatGPT and offer practical solutions to use this #generativeAI chatbot more effectively.\n\nFrom over-specific custom instructions to underutilizing ChatGPT for automation and beyond, we uncover common pitfalls and how to avoid them.\n\nWhether you're a tech enthusiast, a productivity seeker, or someone curious about leveraging AI more efficiently, this video is packed with actionable advice to revolutionize how you use ChatGPT. \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why you’re using ChatGPT wrong\n00:20 Mistake #1\n02:41 Mistake #2\n04:55 Mistake #3\n06:19 Mistake #4\n08:25 Mistake #5\n\n*RESOURCES I MENTION IN THE VIDEO*\nMaster the Perfect Prompt Formula - https://youtu.be/jC4v5AS4RIM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity", "duration" => 570, "filename" => "/downloads/Jeff Su/2024-02-06 You’re using ChatGPT wrong/You’re using ChatGPT wrong [Y35EHDRNUeo].mp4", "id" => "Y35EHDRNUeo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Y35EHDRNUeo", "playlist_index" => 51, "timestamp" => 1707224434, "title" => "You’re using ChatGPT wrong", "upload_date" => "20240206"} 16:40:58.093 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1505.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:40:58.095 [debug] QUERY OK source="sources" db=1.6ms idle=1191.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:40:58.096 [debug] QUERY OK source="media_items" db=0.5ms idle=1192.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-06 13:00:34Z], 1] 16:40:58.100 [debug] QUERY OK source="media_items" db=2.1ms idle=1192.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=152\n\nYou’re using #ChatGPT wrong but it’s not your fault.\n\nIn this video, we dive into the top 5 mistakes users make with ChatGPT and offer practical solutions to use this #generativeAI chatbot more effectively.\n\nFrom over-specific custom instructions to underutilizing ChatGPT for automation and beyond, we uncover common pitfalls and how to avoid them.\n\nWhether you're a tech enthusiast, a productivity seeker, or someone curious about leveraging AI more efficiently, this video is packed with actionable advice to revolutionize how you use ChatGPT. \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why you’re using ChatGPT wrong\n00:20 Mistake #1\n02:41 Mistake #2\n04:55 Mistake #3\n06:19 Mistake #4\n08:25 Mistake #5\n\n*RESOURCES I MENTION IN THE VIDEO*\nMaster the Perfect Prompt Formula - https://youtu.be/jC4v5AS4RIM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity", "You’re using ChatGPT wrong", "e3612720-574a-459a-9c20-137a54105c13", false, "Y35EHDRNUeo", 1, [], 570, false, "https://www.youtube.com/watch?v=Y35EHDRNUeo", 51, "/downloads/Jeff Su/2024-02-06 You’re using ChatGPT wrong/You’re using ChatGPT wrong [Y35EHDRNUeo].mp4", false, false, 99, ~U[2024-02-06 13:00:34Z], ~U[2026-04-23 14:40:58Z], ~U[2026-04-23 14:40:58Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=152\n\nYou’re using #ChatGPT wrong but it’s not your fault.\n\nIn this video, we dive into the top 5 mistakes users make with ChatGPT and offer practical solutions to use this #generativeAI chatbot more effectively.\n\nFrom over-specific custom instructions to underutilizing ChatGPT for automation and beyond, we uncover common pitfalls and how to avoid them.\n\nWhether you're a tech enthusiast, a productivity seeker, or someone curious about leveraging AI more efficiently, this video is packed with actionable advice to revolutionize how you use ChatGPT. \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why you’re using ChatGPT wrong\n00:20 Mistake #1\n02:41 Mistake #2\n04:55 Mistake #3\n06:19 Mistake #4\n08:25 Mistake #5\n\n*RESOURCES I MENTION IN THE VIDEO*\nMaster the Perfect Prompt Formula - https://youtu.be/jC4v5AS4RIM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity", "You’re using ChatGPT wrong", "Y35EHDRNUeo", 1, 570, false, "https://www.youtube.com/watch?v=Y35EHDRNUeo", "/downloads/Jeff Su/2024-02-06 You’re using ChatGPT wrong/You’re using ChatGPT wrong [Y35EHDRNUeo].mp4", false, ~U[2024-02-06 13:00:34Z]] 16:40:58.100 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=510.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:40:58.101 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=7.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:40:58.103 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=6.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [51] 16:40:58.103 [info] Kicking off download for media item #51 (Y35EHDRNUeo) 16:40:58.107 [debug] QUERY OK source="tasks" db=0.3ms idle=5.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [55, 51, ~U[2026-04-23 14:40:58Z], ~U[2026-04-23 14:40:58Z]] 16:40:58.107 [debug] Current batch of media processed. Will check again in 1000ms 16:40:59.107 [debug] Current batch of media processed. Will check again in 1000ms 16:41:00.108 [debug] Current batch of media processed. Will check again in 1000ms 16:41:00.210 [info] {"source":"oban","duration":320,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:41:01.110 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=151\n\nDive into the world of #googlegemini with this full tutorial! I'm uncovering the best settings, features, and hidden gems to help you get more done in less time with this extremely powerful (and free) generative AI tool! \n\nHighlights include:\n\n📧 **Gmail Integration:** Discover how Google Gemini simplifies email searches. Say goodbye to tedious manual searches and hello to efficient email management with Gemini commands\n\n🖼️ **Image Analysis & Data Conversion:** Transform images and data with Gemini's advanced features. From distilling key takeaways from charts to converting non-editable tables into Google Spreadsheets, Gemini is your go-to tool\n\n💡 **Tips & Tricks:** Get pro tips for enhancing your Gemini experience, including using default prompt structures, customizing responses, and effectively using voice commands\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Correct settings for Google Gemini\n00:52 Access Gmail with Google Gemini\n01:42 Access Google Drive with Gemini\n02:20 Use Google Docs with Gemini\n03:14 Analyze Files and Data with Google Gemini\n05:00 Upload PDFs onto Google Gemini\n05:51 Google Gemini’s Youtube Vision feature\n07:13 Gemini’s user-friendly features\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle’s AI Course for Beginners: https://youtu.be/Yq0QkCxoTHM\nTop 8 ChatGPT Productivity Tips for Work: https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googlebard #tutorial", "duration" => 597, "filename" => "/downloads/Jeff Su/2024-01-23 The CORRECT way to use Google Gemini/The CORRECT way to use Google Gemini [cTYRwJSOP8U].mp4", "id" => "cTYRwJSOP8U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cTYRwJSOP8U", "playlist_index" => 52, "timestamp" => 1706014835, "title" => "The CORRECT way to use Google Gemini", "upload_date" => "20240123"} 16:41:01.111 [debug] QUERY OK source="sources" db=0.6ms idle=1867.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:41:01.112 [debug] QUERY OK source="sources" db=0.2ms idle=1868.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:01.112 [debug] QUERY OK source="media_items" db=0.3ms idle=1518.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-23 13:00:35Z], 1] 16:41:01.115 [debug] QUERY OK source="media_items" db=1.7ms idle=902.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=151\n\nDive into the world of #googlegemini with this full tutorial! I'm uncovering the best settings, features, and hidden gems to help you get more done in less time with this extremely powerful (and free) generative AI tool! \n\nHighlights include:\n\n📧 **Gmail Integration:** Discover how Google Gemini simplifies email searches. Say goodbye to tedious manual searches and hello to efficient email management with Gemini commands\n\n🖼️ **Image Analysis & Data Conversion:** Transform images and data with Gemini's advanced features. From distilling key takeaways from charts to converting non-editable tables into Google Spreadsheets, Gemini is your go-to tool\n\n💡 **Tips & Tricks:** Get pro tips for enhancing your Gemini experience, including using default prompt structures, customizing responses, and effectively using voice commands\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Correct settings for Google Gemini\n00:52 Access Gmail with Google Gemini\n01:42 Access Google Drive with Gemini\n02:20 Use Google Docs with Gemini\n03:14 Analyze Files and Data with Google Gemini\n05:00 Upload PDFs onto Google Gemini\n05:51 Google Gemini’s Youtube Vision feature\n07:13 Gemini’s user-friendly features\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle’s AI Course for Beginners: https://youtu.be/Yq0QkCxoTHM\nTop 8 ChatGPT Productivity Tips for Work: https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googlebard #tutorial", "The CORRECT way to use Google Gemini", "24a12fd9-1adf-408b-a06d-a99f40f7610c", false, "cTYRwJSOP8U", 1, [], 597, false, "https://www.youtube.com/watch?v=cTYRwJSOP8U", 52, "/downloads/Jeff Su/2024-01-23 The CORRECT way to use Google Gemini/The CORRECT way to use Google Gemini [cTYRwJSOP8U].mp4", false, false, 99, ~U[2024-01-23 13:00:35Z], ~U[2026-04-23 14:41:01Z], ~U[2026-04-23 14:41:01Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=151\n\nDive into the world of #googlegemini with this full tutorial! I'm uncovering the best settings, features, and hidden gems to help you get more done in less time with this extremely powerful (and free) generative AI tool! \n\nHighlights include:\n\n📧 **Gmail Integration:** Discover how Google Gemini simplifies email searches. Say goodbye to tedious manual searches and hello to efficient email management with Gemini commands\n\n🖼️ **Image Analysis & Data Conversion:** Transform images and data with Gemini's advanced features. From distilling key takeaways from charts to converting non-editable tables into Google Spreadsheets, Gemini is your go-to tool\n\n💡 **Tips & Tricks:** Get pro tips for enhancing your Gemini experience, including using default prompt structures, customizing responses, and effectively using voice commands\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Correct settings for Google Gemini\n00:52 Access Gmail with Google Gemini\n01:42 Access Google Drive with Gemini\n02:20 Use Google Docs with Gemini\n03:14 Analyze Files and Data with Google Gemini\n05:00 Upload PDFs onto Google Gemini\n05:51 Google Gemini’s Youtube Vision feature\n07:13 Gemini’s user-friendly features\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle’s AI Course for Beginners: https://youtu.be/Yq0QkCxoTHM\nTop 8 ChatGPT Productivity Tips for Work: https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googlebard #tutorial", "The CORRECT way to use Google Gemini", "cTYRwJSOP8U", 1, 597, false, "https://www.youtube.com/watch?v=cTYRwJSOP8U", "/downloads/Jeff Su/2024-01-23 The CORRECT way to use Google Gemini/The CORRECT way to use Google Gemini [cTYRwJSOP8U].mp4", false, ~U[2024-01-23 13:00:35Z]] 16:41:01.116 [debug] QUERY OK source="sources" db=0.3ms idle=519.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:01.116 [debug] QUERY OK source="media_profiles" db=0.3ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:41:01.117 [debug] QUERY OK source="media_items" db=0.3ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [52] 16:41:01.117 [info] Kicking off download for media item #52 (cTYRwJSOP8U) 16:41:01.120 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=3.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [56, 52, ~U[2026-04-23 14:41:01Z], ~U[2026-04-23 14:41:01Z]] 16:41:01.120 [debug] Current batch of media processed. Will check again in 1000ms 16:41:02.122 [debug] Current batch of media processed. Will check again in 1000ms 16:41:03.123 [debug] Current batch of media processed. Will check again in 1000ms 16:41:04.123 [debug] Current batch of media processed. Will check again in 1000ms 16:41:05.125 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=150\n\n🔍\u00A0Use Teal’s free job tracker tool here: https://get.tealhq.com/jeffsu\n\nAre you gearing up for a job #interview and feeling overwhelmed by the endless list of potential questions?\n\nIn this video, I share the only two frameworks you need to ace all behavioral and situational interview questions you’ll come across!\n\n🔹 **Unlocking the CARL Framework:** Learn how to use Context, Action, Results, and Learning method to craft compelling answers to behavioral questions. \n\n🔹 **Navigating Situational Questions with RCS:** Discover the fool-proof RCS framework - Rephrase, Clarify, and Structure - to tackle hypothetical scenarios with confidence. Understand why it's not just about the answer, but how you approach the question.\n\n🔸 **ChatGPT Prompts:** Don't miss the exclusive ChatGPT prompts I share to fast-track your interview prep.\n\n🔸 **Finding Relevant Questions:** Finally, learn how to identify role-specific interview questions with ChatGPT and prepare using our frameworks.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How to Pass 99% of Interviews\n00:32 Recap: Behavioral vs. Situational\n01:13 Framework for Behavioral Interview Questions\n03:31 Framework for Situational Interview Questions\n05:12 Find Role-specific Interview Questions\n\n*RESOURCES I MENTION IN THE VIDEO*\nMake a copy of my prompts - https://www.jeffsu.org/pass-behavioral-situational-interview-questions\n\nTeal’s free job tracker tool - http://shrsl.com/4da2e\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #chatgpt", "duration" => 361, "filename" => "/downloads/Jeff Su/2024-01-09 You’re Not Unqualified: How to Pass 90% of Your Interviews/You’re Not Unqualified: How to Pass 90% of Your Interviews [QrmDmQ7ZivM].mp4", "id" => "QrmDmQ7ZivM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QrmDmQ7ZivM", "playlist_index" => 53, "timestamp" => 1704805224, "title" => "You’re Not Unqualified: How to Pass 90% of Your Interviews", "upload_date" => "20240109"} 16:41:05.126 [debug] QUERY OK source="sources" db=0.4ms idle=882.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:41:05.126 [debug] QUERY OK source="sources" db=0.2ms idle=883.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:05.127 [debug] QUERY OK source="media_items" db=0.3ms idle=884.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-09 13:00:24Z], 1] 16:41:05.130 [debug] QUERY OK source="media_items" db=1.7ms idle=884.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=150\n\n🔍\u00A0Use Teal’s free job tracker tool here: https://get.tealhq.com/jeffsu\n\nAre you gearing up for a job #interview and feeling overwhelmed by the endless list of potential questions?\n\nIn this video, I share the only two frameworks you need to ace all behavioral and situational interview questions you’ll come across!\n\n🔹 **Unlocking the CARL Framework:** Learn how to use Context, Action, Results, and Learning method to craft compelling answers to behavioral questions. \n\n🔹 **Navigating Situational Questions with RCS:** Discover the fool-proof RCS framework - Rephrase, Clarify, and Structure - to tackle hypothetical scenarios with confidence. Understand why it's not just about the answer, but how you approach the question.\n\n🔸 **ChatGPT Prompts:** Don't miss the exclusive ChatGPT prompts I share to fast-track your interview prep.\n\n🔸 **Finding Relevant Questions:** Finally, learn how to identify role-specific interview questions with ChatGPT and prepare using our frameworks.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How to Pass 99% of Interviews\n00:32 Recap: Behavioral vs. Situational\n01:13 Framework for Behavioral Interview Questions\n03:31 Framework for Situational Interview Questions\n05:12 Find Role-specific Interview Questions\n\n*RESOURCES I MENTION IN THE VIDEO*\nMake a copy of my prompts - https://www.jeffsu.org/pass-behavioral-situational-interview-questions\n\nTeal’s free job tracker tool - http://shrsl.com/4da2e\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #chatgpt", "You’re Not Unqualified: How to Pass 90% of Your Interviews", "d32d3954-dcf5-4d36-8372-bd35649c5b7c", false, "QrmDmQ7ZivM", 1, [], 361, false, "https://www.youtube.com/watch?v=QrmDmQ7ZivM", 53, "/downloads/Jeff Su/2024-01-09 You’re Not Unqualified: How to Pass 90% of Your Interviews/You’re Not Unqualified: How to Pass 90% of Your Interviews [QrmDmQ7ZivM].mp4", false, false, 99, ~U[2024-01-09 13:00:24Z], ~U[2026-04-23 14:41:05Z], ~U[2026-04-23 14:41:05Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=150\n\n🔍\u00A0Use Teal’s free job tracker tool here: https://get.tealhq.com/jeffsu\n\nAre you gearing up for a job #interview and feeling overwhelmed by the endless list of potential questions?\n\nIn this video, I share the only two frameworks you need to ace all behavioral and situational interview questions you’ll come across!\n\n🔹 **Unlocking the CARL Framework:** Learn how to use Context, Action, Results, and Learning method to craft compelling answers to behavioral questions. \n\n🔹 **Navigating Situational Questions with RCS:** Discover the fool-proof RCS framework - Rephrase, Clarify, and Structure - to tackle hypothetical scenarios with confidence. Understand why it's not just about the answer, but how you approach the question.\n\n🔸 **ChatGPT Prompts:** Don't miss the exclusive ChatGPT prompts I share to fast-track your interview prep.\n\n🔸 **Finding Relevant Questions:** Finally, learn how to identify role-specific interview questions with ChatGPT and prepare using our frameworks.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How to Pass 99% of Interviews\n00:32 Recap: Behavioral vs. Situational\n01:13 Framework for Behavioral Interview Questions\n03:31 Framework for Situational Interview Questions\n05:12 Find Role-specific Interview Questions\n\n*RESOURCES I MENTION IN THE VIDEO*\nMake a copy of my prompts - https://www.jeffsu.org/pass-behavioral-situational-interview-questions\n\nTeal’s free job tracker tool - http://shrsl.com/4da2e\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #chatgpt", "You’re Not Unqualified: How to Pass 90% of Your Interviews", "QrmDmQ7ZivM", 1, 361, false, "https://www.youtube.com/watch?v=QrmDmQ7ZivM", "/downloads/Jeff Su/2024-01-09 You’re Not Unqualified: How to Pass 90% of Your Interviews/You’re Not Unqualified: How to Pass 90% of Your Interviews [QrmDmQ7ZivM].mp4", false, ~U[2024-01-09 13:00:24Z]] 16:41:05.131 [debug] QUERY OK source="sources" db=0.2ms idle=526.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:05.131 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:41:05.133 [debug] QUERY OK source="media_items" db=1.9ms idle=4.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [53] 16:41:05.134 [info] Kicking off download for media item #53 (QrmDmQ7ZivM) 16:41:05.136 [debug] QUERY OK source="tasks" db=0.2ms idle=5.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [57, 53, ~U[2026-04-23 14:41:05Z], ~U[2026-04-23 14:41:05Z]] 16:41:05.136 [debug] Current batch of media processed. Will check again in 1000ms 16:41:06.137 [debug] Current batch of media processed. Will check again in 1000ms 16:41:07.138 [debug] Current batch of media processed. Will check again in 1000ms 16:41:08.139 [debug] Current batch of media processed. Will check again in 1000ms 16:41:09.141 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "As a busy working professional juggling a full-time job and a YouTube channel, I actually DO NOT follow many of the “best practices” productivity creators have been sharing.\n\nIn this video, I share 8 crucial mistakes to avoid and offer practical tips for effective time management!\n\nFor example, learn why I prefer the Highlight Method from 'Make Time' over complex time blocking; and discover shortcuts to quickly create events in Google Calendar, like using 'cal.new' in the browser and integrating with app launchers like Alfred and Powertoy Run.\n\n🌟 Pro Tips Included: Throughout the video, I sprinkle in pro tips to enhance your Google Calendar experience.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Mistake #1\n00:59 Mistake #2 \n02:45 Mistake #3\n04:01 Mistake #4\n04:49 Mistake #5\n05:02 Mistake #6\n06:16 Mistake #7\n07:02 Mistake #8\n\n*RESOURCES I MENTION IN THE VIDEO*\nMeeting Audit Spreadsheet - https://www.jeffsu.org/8-calendar-mistakes-to-avoid-for-working-professionals\nInbox Zero for Outlook - https://youtu.be/U8LKXbUxf-M\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googlecalendar #productivity #timemanagement", "duration" => 515, "filename" => "/downloads/Jeff Su/2023-12-26 8 Calendar Mistakes to Avoid (for busy people)!/8 Calendar Mistakes to Avoid (for busy people)! [cwT7k5oBqBs].mp4", "id" => "cwT7k5oBqBs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cwT7k5oBqBs", "playlist_index" => 54, "timestamp" => 1703595626, "title" => "8 Calendar Mistakes to Avoid (for busy people)!", "upload_date" => "20231226"} 16:41:09.142 [debug] QUERY OK source="sources" db=0.4ms idle=898.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:41:09.142 [debug] QUERY OK source="sources" db=0.2ms idle=899.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:09.143 [debug] QUERY OK source="media_items" db=0.3ms idle=900.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-26 13:00:26Z], 1] 16:41:09.146 [debug] QUERY OK source="media_items" db=1.6ms idle=900.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["As a busy working professional juggling a full-time job and a YouTube channel, I actually DO NOT follow many of the “best practices” productivity creators have been sharing.\n\nIn this video, I share 8 crucial mistakes to avoid and offer practical tips for effective time management!\n\nFor example, learn why I prefer the Highlight Method from 'Make Time' over complex time blocking; and discover shortcuts to quickly create events in Google Calendar, like using 'cal.new' in the browser and integrating with app launchers like Alfred and Powertoy Run.\n\n🌟 Pro Tips Included: Throughout the video, I sprinkle in pro tips to enhance your Google Calendar experience.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Mistake #1\n00:59 Mistake #2 \n02:45 Mistake #3\n04:01 Mistake #4\n04:49 Mistake #5\n05:02 Mistake #6\n06:16 Mistake #7\n07:02 Mistake #8\n\n*RESOURCES I MENTION IN THE VIDEO*\nMeeting Audit Spreadsheet - https://www.jeffsu.org/8-calendar-mistakes-to-avoid-for-working-professionals\nInbox Zero for Outlook - https://youtu.be/U8LKXbUxf-M\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googlecalendar #productivity #timemanagement", "8 Calendar Mistakes to Avoid (for busy people)!", "db3ec56b-9d65-492a-afc2-e8b1af38d157", false, "cwT7k5oBqBs", 1, [], 515, false, "https://www.youtube.com/watch?v=cwT7k5oBqBs", 54, "/downloads/Jeff Su/2023-12-26 8 Calendar Mistakes to Avoid (for busy people)!/8 Calendar Mistakes to Avoid (for busy people)! [cwT7k5oBqBs].mp4", false, false, 99, ~U[2023-12-26 13:00:26Z], ~U[2026-04-23 14:41:09Z], ~U[2026-04-23 14:41:09Z], "As a busy working professional juggling a full-time job and a YouTube channel, I actually DO NOT follow many of the “best practices” productivity creators have been sharing.\n\nIn this video, I share 8 crucial mistakes to avoid and offer practical tips for effective time management!\n\nFor example, learn why I prefer the Highlight Method from 'Make Time' over complex time blocking; and discover shortcuts to quickly create events in Google Calendar, like using 'cal.new' in the browser and integrating with app launchers like Alfred and Powertoy Run.\n\n🌟 Pro Tips Included: Throughout the video, I sprinkle in pro tips to enhance your Google Calendar experience.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Mistake #1\n00:59 Mistake #2 \n02:45 Mistake #3\n04:01 Mistake #4\n04:49 Mistake #5\n05:02 Mistake #6\n06:16 Mistake #7\n07:02 Mistake #8\n\n*RESOURCES I MENTION IN THE VIDEO*\nMeeting Audit Spreadsheet - https://www.jeffsu.org/8-calendar-mistakes-to-avoid-for-working-professionals\nInbox Zero for Outlook - https://youtu.be/U8LKXbUxf-M\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googlecalendar #productivity #timemanagement", "8 Calendar Mistakes to Avoid (for busy people)!", "cwT7k5oBqBs", 1, 515, false, "https://www.youtube.com/watch?v=cwT7k5oBqBs", "/downloads/Jeff Su/2023-12-26 8 Calendar Mistakes to Avoid (for busy people)!/8 Calendar Mistakes to Avoid (for busy people)! [cwT7k5oBqBs].mp4", false, ~U[2023-12-26 13:00:26Z]] 16:41:09.146 [debug] QUERY OK source="sources" db=0.3ms idle=534.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:41:09.147 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=4.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:41:09.148 [debug] QUERY OK source="media_items" db=0.3ms 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 [54] 16:41:09.148 [info] Kicking off download for media item #54 (cwT7k5oBqBs) 16:41:09.151 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=4.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [58, 54, ~U[2026-04-23 14:41:09Z], ~U[2026-04-23 14:41:09Z]] 16:41:09.151 [debug] Current batch of media processed. Will check again in 1000ms 16:41:10.151 [debug] Current batch of media processed. Will check again in 1000ms 16:41:11.152 [debug] Current batch of media processed. Will check again in 1000ms 16:41:12.154 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "💻\u00A0We’ve received a LOT of #MacOS updates recently so here are the top 10 #productivity tips that I actually use on a daily basis!\n\nWe cover topics ranging from filtering results within Spotlight and performing Google Search directly from the desktop, to using web apps the correct way, all the way to Airdrop and Apple Notes best practices.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 10 Productivity Tips for the Mac\n00:10 Spotlight search operators\n00:49 Search the web with Spotlight\n01:02 Spotlight shortcuts\n01:22 Spotlight settings for productivity\n01:50 Webapp workflow\n02:38 Safari settings for productivity\n03:01 Add Airdrop to Finder\n03:30 Free Airdrop alternative\n04:17 How to use Apple Notes productively\n05:10 Apple Notes settings for productivity\n05:35 3 Bonus Settings for productivity\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Mac Shortcuts video - https://youtu.be/PIGraFbLEvY\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#macbookpro", "duration" => 385, "filename" => "/downloads/Jeff Su/2023-12-12 Top 10 BEST Macbook Tips for Productivity!/Top 10 BEST Macbook Tips for Productivity! [YFHqEM4g_Hc].mp4", "id" => "YFHqEM4g_Hc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=YFHqEM4g_Hc", "playlist_index" => 55, "timestamp" => 1702386022, "title" => "Top 10 BEST Macbook Tips for Productivity!", "upload_date" => "20231212"} 16:41:12.156 [debug] QUERY OK source="sources" db=1.2ms queue=0.3ms idle=1911.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:41:12.156 [debug] QUERY OK source="sources" db=0.2ms idle=1913.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:12.157 [debug] QUERY OK source="media_items" db=0.3ms idle=1914.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-12 13:00:22Z], 1] 16:41:12.160 [debug] QUERY OK source="media_items" db=1.8ms idle=1541.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["💻\u00A0We’ve received a LOT of #MacOS updates recently so here are the top 10 #productivity tips that I actually use on a daily basis!\n\nWe cover topics ranging from filtering results within Spotlight and performing Google Search directly from the desktop, to using web apps the correct way, all the way to Airdrop and Apple Notes best practices.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 10 Productivity Tips for the Mac\n00:10 Spotlight search operators\n00:49 Search the web with Spotlight\n01:02 Spotlight shortcuts\n01:22 Spotlight settings for productivity\n01:50 Webapp workflow\n02:38 Safari settings for productivity\n03:01 Add Airdrop to Finder\n03:30 Free Airdrop alternative\n04:17 How to use Apple Notes productively\n05:10 Apple Notes settings for productivity\n05:35 3 Bonus Settings for productivity\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Mac Shortcuts video - https://youtu.be/PIGraFbLEvY\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#macbookpro", "Top 10 BEST Macbook Tips for Productivity!", "27c7f6e9-0bdd-47a5-a0d8-e1f42d33b01a", false, "YFHqEM4g_Hc", 1, [], 385, false, "https://www.youtube.com/watch?v=YFHqEM4g_Hc", 55, "/downloads/Jeff Su/2023-12-12 Top 10 BEST Macbook Tips for Productivity!/Top 10 BEST Macbook Tips for Productivity! [YFHqEM4g_Hc].mp4", false, false, 99, ~U[2023-12-12 13:00:22Z], ~U[2026-04-23 14:41:12Z], ~U[2026-04-23 14:41:12Z], "💻\u00A0We’ve received a LOT of #MacOS updates recently so here are the top 10 #productivity tips that I actually use on a daily basis!\n\nWe cover topics ranging from filtering results within Spotlight and performing Google Search directly from the desktop, to using web apps the correct way, all the way to Airdrop and Apple Notes best practices.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 10 Productivity Tips for the Mac\n00:10 Spotlight search operators\n00:49 Search the web with Spotlight\n01:02 Spotlight shortcuts\n01:22 Spotlight settings for productivity\n01:50 Webapp workflow\n02:38 Safari settings for productivity\n03:01 Add Airdrop to Finder\n03:30 Free Airdrop alternative\n04:17 How to use Apple Notes productively\n05:10 Apple Notes settings for productivity\n05:35 3 Bonus Settings for productivity\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Mac Shortcuts video - https://youtu.be/PIGraFbLEvY\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#macbookpro", "Top 10 BEST Macbook Tips for Productivity!", "YFHqEM4g_Hc", 1, 385, false, "https://www.youtube.com/watch?v=YFHqEM4g_Hc", "/downloads/Jeff Su/2023-12-12 Top 10 BEST Macbook Tips for Productivity!/Top 10 BEST Macbook Tips for Productivity! [YFHqEM4g_Hc].mp4", false, ~U[2023-12-12 13:00:22Z]] 16:41:12.161 [debug] QUERY OK source="sources" db=0.9ms 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" = ?) [1] 16:41:12.162 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 16:41:12.163 [debug] QUERY OK source="media_items" db=0.5ms 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 [55] 16:41:12.163 [info] Kicking off download for media item #55 (YFHqEM4g_Hc) 16:41:12.166 [debug] QUERY OK source="tasks" db=0.2ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [59, 55, ~U[2026-04-23 14:41:12Z], ~U[2026-04-23 14:41:12Z]] 16:41:12.166 [debug] Current batch of media processed. Will check again in 1000ms 16:41:13.166 [debug] Current batch of media processed. Will check again in 1000ms 16:41:13.484 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=6hRO1q8vv60 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bb/c7/bbc7e8b7634ceb45a48db8e5535a1bd754c228004c9b7c724aeae73e69fb93e3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:41:13.527 [debug] Running yt-dlp command for action: download_thumbnail 16:41:13.528 [debug] QUERY OK source="settings" db=0.2ms idle=908.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:13.529 [debug] QUERY OK source="settings" db=0.2ms idle=285.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:13.529 [debug] QUERY OK source="settings" db=0.1ms idle=286.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:13.529 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=6hRO1q8vv60 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/11/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/25/ba/25ba32366c588d2fb0d2c480e5b939e89cdd1ec2b0931a10de27cd23c4c21181.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:41:14.012 [info] CONNECTED TO Phoenix.LiveView.Socket in 37µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DBZ0BAIVW1wwEnR_ZgtJcR4COQsmUjkfHr0fJWn8sgM0Vg0EXNHXddpu", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "2", "_track_static" => %{"0" => "https://pinch.msdlx.de/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinch.msdlx.de/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 16:41:14.057 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "downloaded"} 16:41:14.060 [debug] QUERY OK source="media_items" db=2.0ms idle=814.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 16:41:14.063 [debug] QUERY OK source="media_items" db=2.6ms queue=0.1ms idle=531.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 16:41:14.065 [debug] QUERY OK source="sources" db=1.5ms idle=534.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:14.065 [debug] Replied in 7ms 16:41:14.070 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "pending"} 16:41:14.072 [debug] QUERY OK source="media_items" db=1.7ms idle=540.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"))) [] 16:41:14.077 [debug] QUERY OK source="media_items" db=2.8ms queue=2.1ms idle=450.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] 16:41:14.079 [debug] QUERY OK source="sources" db=0.9ms queue=0.2ms idle=18.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:14.080 [debug] Replied in 10ms 16:41:14.083 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:41:14.084 [debug] QUERY OK source="tasks" db=0.7ms idle=20.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 16:41:14.087 [debug] QUERY OK source="media_items" db=2.0ms idle=20.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", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [11, 12] 16:41:14.089 [debug] QUERY OK source="sources" db=3.6ms 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" = ?) [1] 16:41:14.089 [debug] Replied in 6ms 16:41:14.091 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:41:14.091 [debug] Replied in 163µs 16:41:14.167 [debug] Current batch of media processed. Will check again in 1000ms 16:41:14.189 [debug] HANDLE EVENT "check_matching_text" in Pinchflat.UpgradeButtonLive Parameters: %{"_target" => ["unlock-pro-textbox"], "_unused_unlock-pro-textbox" => "", "unlock-pro-textbox" => ""} 16:41:14.189 [debug] Replied in 173µs 16:41:15.170 [debug] Current batch of media processed. Will check again in 1000ms 16:41:16.175 [debug] Current batch of media processed. Will check again in 1000ms 16:41:17.179 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=147\n\n📝 Make a copy of the Master Notes Database: https://www.jeffsu.org/my-simple-notes-management-system-for-notion\n\nIn this video, I go over my unique approach to managing a master notes database in Notion, whereby only relevant notes are surfaced when I need them, thus ensuring I never lose track of important information. \n\nSpecifically, I go over how to create and manage a master notes database in Notion.\n\nWe then utilize different database views to surface only relevant notes for your projects.\n\nWe rely on integrating Notion’s relation properties to connect your notes to projects, areas, and resources.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How I Manage My Notes in Notion\n00:35 Overview of Notion Notes System\n01:23 My Notes Template in Notion\n03:45 My Workflow for Taking Notes\n05:42 Tip for Advanced Notion Users\n\n*RESOURCES I MENTION IN THE VIDEO*\nThomas Frank's Relations tutorial - https://youtu.be/mAJOpO73d8Y?t=1443\nSave to Notion extension - https://www.youtube.com/watch?v=diK9dZulkAs\nMy Daily Agenda Planner for Notion - https://youtu.be/XXYfRgXTEE0\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notionhq #productivity #notetaking", "duration" => 427, "filename" => "/downloads/Jeff Su/2023-11-28 This Simple Notes Management System Changed My Life!/This Simple Notes Management System Changed My Life! [HT0jiQLT98Y].mp4", "id" => "HT0jiQLT98Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HT0jiQLT98Y", "playlist_index" => 56, "timestamp" => 1701176412, "title" => "This Simple Notes Management System Changed My Life!", "upload_date" => "20231128"} 16:41:17.183 [debug] QUERY OK source="sources" db=4.0ms idle=1936.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:41:17.186 [debug] QUERY OK source="sources" db=2.3ms queue=0.1ms idle=1941.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:17.188 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=1944.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-28 13:00:12Z], 1] 16:41:17.192 [debug] QUERY OK source="media_items" db=2.8ms queue=0.1ms idle=1562.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=147\n\n📝 Make a copy of the Master Notes Database: https://www.jeffsu.org/my-simple-notes-management-system-for-notion\n\nIn this video, I go over my unique approach to managing a master notes database in Notion, whereby only relevant notes are surfaced when I need them, thus ensuring I never lose track of important information. \n\nSpecifically, I go over how to create and manage a master notes database in Notion.\n\nWe then utilize different database views to surface only relevant notes for your projects.\n\nWe rely on integrating Notion’s relation properties to connect your notes to projects, areas, and resources.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How I Manage My Notes in Notion\n00:35 Overview of Notion Notes System\n01:23 My Notes Template in Notion\n03:45 My Workflow for Taking Notes\n05:42 Tip for Advanced Notion Users\n\n*RESOURCES I MENTION IN THE VIDEO*\nThomas Frank's Relations tutorial - https://youtu.be/mAJOpO73d8Y?t=1443\nSave to Notion extension - https://www.youtube.com/watch?v=diK9dZulkAs\nMy Daily Agenda Planner for Notion - https://youtu.be/XXYfRgXTEE0\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notionhq #productivity #notetaking", "This Simple Notes Management System Changed My Life!", "96c080ed-87fe-4022-88a9-892dd2b208a6", false, "HT0jiQLT98Y", 1, [], 427, false, "https://www.youtube.com/watch?v=HT0jiQLT98Y", 56, "/downloads/Jeff Su/2023-11-28 This Simple Notes Management System Changed My Life!/This Simple Notes Management System Changed My Life! [HT0jiQLT98Y].mp4", false, false, 99, ~U[2023-11-28 13:00:12Z], ~U[2026-04-23 14:41:17Z], ~U[2026-04-23 14:41:17Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=147\n\n📝 Make a copy of the Master Notes Database: https://www.jeffsu.org/my-simple-notes-management-system-for-notion\n\nIn this video, I go over my unique approach to managing a master notes database in Notion, whereby only relevant notes are surfaced when I need them, thus ensuring I never lose track of important information. \n\nSpecifically, I go over how to create and manage a master notes database in Notion.\n\nWe then utilize different database views to surface only relevant notes for your projects.\n\nWe rely on integrating Notion’s relation properties to connect your notes to projects, areas, and resources.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How I Manage My Notes in Notion\n00:35 Overview of Notion Notes System\n01:23 My Notes Template in Notion\n03:45 My Workflow for Taking Notes\n05:42 Tip for Advanced Notion Users\n\n*RESOURCES I MENTION IN THE VIDEO*\nThomas Frank's Relations tutorial - https://youtu.be/mAJOpO73d8Y?t=1443\nSave to Notion extension - https://www.youtube.com/watch?v=diK9dZulkAs\nMy Daily Agenda Planner for Notion - https://youtu.be/XXYfRgXTEE0\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notionhq #productivity #notetaking", "This Simple Notes Management System Changed My Life!", "HT0jiQLT98Y", 1, 427, false, "https://www.youtube.com/watch?v=HT0jiQLT98Y", "/downloads/Jeff Su/2023-11-28 This Simple Notes Management System Changed My Life!/This Simple Notes Management System Changed My Life! [HT0jiQLT98Y].mp4", false, ~U[2023-11-28 13:00:12Z]] 16:41:17.194 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=564.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:41:17.201 [debug] QUERY OK source="media_profiles" db=4.0ms queue=2.3ms idle=11.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:41:17.204 [debug] QUERY OK source="media_items" db=0.9ms queue=0.2ms idle=16.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [56] 16:41:17.204 [info] Kicking off download for media item #56 (HT0jiQLT98Y) 16:41:17.210 [debug] QUERY OK source="tasks" db=0.4ms idle=15.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [60, 56, ~U[2026-04-23 14:41:17Z], ~U[2026-04-23 14:41:17Z]] 16:41:17.210 [debug] Current batch of media processed. Will check again in 1000ms 16:41:17.877 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=oO9GLC2iKy8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/17/e1/17e1abe4c182f33589705045740c103f5b37d4a6388168e19e9d34ce6a38e722.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:41:17.916 [debug] Running yt-dlp command for action: download_thumbnail 16:41:17.918 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:41:17.918 [debug] QUERY OK source="settings" db=0.1ms idle=710.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:17.920 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=710.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:17.921 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=oO9GLC2iKy8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/12/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/1b/24/1b243dfd04e9013fb3f197bf26e3dcd1f41c913146eade344ea85d7404b5d552.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:41:18.211 [debug] Current batch of media processed. Will check again in 1000ms 16:41:18.250 [info] {"source":"oban","duration":1026,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:41:19.214 [debug] Current batch of media processed. Will check again in 1000ms 16:41:19.461 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=6hRO1q8vv60 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/11/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/25/ba/25ba32366c588d2fb0d2c480e5b939e89cdd1ec2b0931a10de27cd23c4c21181.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:41:19.464 [debug] QUERY OK db=0.2ms idle=1221.1ms begin [] 16:41:19.465 [debug] QUERY OK source="media_items" db=1.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:41:13Z], "/downloads/Jeff Su/2025-11-04 4 ChatGPT Hacks that Cut My Workload in Half/4 ChatGPT Hacks that Cut My Workload in Half [6hRO1q8vv60].mp4", "/downloads/Jeff Su/2025-11-04 4 ChatGPT Hacks that Cut My Workload in Half/4 ChatGPT Hacks that Cut My Workload in Half [6hRO1q8vv60].info.json", "/downloads/Jeff Su/2025-11-04 4 ChatGPT Hacks that Cut My Workload in Half/4 ChatGPT Hacks that Cut My Workload in Half [6hRO1q8vv60].nfo", "/downloads/Jeff Su/2025-11-04 4 ChatGPT Hacks that Cut My Workload in Half/4 ChatGPT Hacks that Cut My Workload in Half [6hRO1q8vv60]-thumb.jpg", ~U[2026-04-23 14:41:19Z], 11] 16:41:19.468 [debug] QUERY OK source="media_metadata" db=2.6ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/11/metadata.json.gz", "/config/metadata/media_items/11/thumbnail.jpg", 11, ~U[2026-04-23 14:41:19Z], ~U[2026-04-23 14:41:19Z]] 16:41:19.469 [debug] QUERY OK db=0.7ms commit [] 16:41:19.478 [debug] QUERY OK source="media_items" db=7.4ms queue=0.2ms idle=1219.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [37518436, ~U[2026-04-23 14:41:19Z], 11] 16:41:19.478 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:41:19.480 [info] {"args":{"id":11},"id":15,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":35087820,"event":"job:stop","queue_time":157389772,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:41:19.482 [debug] QUERY OK source="tasks" db=0.8ms idle=238.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"] 16:41:19.483 [debug] QUERY OK source="media_items" db=0.8ms idle=239.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", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [12] 16:41:19.485 [debug] QUERY OK source="sources" db=2.6ms 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" = ?) [1] 16:41:19.488 [info] {"args":{"id":13},"id":17,"meta":{},"system_time":1776955279488105192,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:41:19.490 [debug] QUERY OK source="tasks" db=0.5ms idle=8.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 16:41:19.491 [debug] QUERY OK source="media_items" db=2.6ms 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 WHERE (m0."id" = ?) [13] 16:41:19.493 [debug] QUERY OK source="media_items" db=1.4ms 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", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [12, 13] 16:41:19.493 [debug] QUERY OK source="sources" db=1.7ms idle=6.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:19.494 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:41:19.496 [debug] QUERY OK source="sources" db=0.4ms queue=1.9ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:19.497 [debug] QUERY OK source="media_profiles" db=0.5ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:41:19.498 [debug] QUERY OK source="media_items" db=0.4ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [13] 16:41:19.501 [debug] QUERY OK source="media_metadata" db=0.3ms idle=7.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [13] 16:41:19.502 [debug] QUERY OK source="media_profiles" db=0.6ms idle=8.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:41:19.504 [debug] QUERY OK source="settings" db=0.6ms idle=6.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:19.505 [debug] QUERY OK source="settings" db=0.5ms idle=6.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:19.505 [debug] Running yt-dlp command for action: get_downloadable_status 16:41:19.507 [debug] QUERY OK source="settings" db=0.3ms idle=8.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:19.508 [debug] QUERY OK source="settings" db=0.3ms queue=0.7ms idle=5.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:19.508 [debug] QUERY OK source="settings" db=0.2ms idle=5.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:19.509 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0-0gFuDwmXI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/62/32/6232c39d1c1476f17e963a84ea28a67aad0c088f6fb5e2d0a641abc050a1bdbe.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:41:20.214 [debug] Current batch of media processed. Will check again in 1000ms 16:41:21.216 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\n🔍 In this video, we unravel the layers of AI, Machine Learning, Deep Learning, and their applications in tools like #ChatGPT and Google #Bard\n\nWe first go through how AI is a broad field of study that encompasses #MachineLearning as a sub-field.\n\nWe then break down Machine Learning into supervised and unsupervised models, using real-world examples to illustrate their functions and differences.\n\nWe move deeper into Deep Learning: Learn about artificial neural networks and the power of semi-supervised learning in applications like fraud detection in banking.\n\nThen we delve into Generative AI, differentiating it from discriminative models and demonstrating its capabilities in creating new, innovative outputs.\n\nFinally we walk through Large Language Models (LLMs) and uncover the significance of LLMs in AI, their pre-training processes, and their customization for specific industry applications\n\n*TIMESTAMPS*\n00:00 Google’s AI Course in 10 Minutes\n00:38 What is Artificial Intelligence?\n01:27 What is Machine Learning?\n03:28 What is Deep Learning?\n05:15 What is Generative AI?\n07:05 What are Large Language Models?\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle’s full course: https://www.cloudskillsboost.google/course_templates/536\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "duration" => 557, "filename" => "/downloads/Jeff Su/2023-11-14 Google’s AI Course for Beginners (in 10 minutes)!/Google’s AI Course for Beginners (in 10 minutes)! [Yq0QkCxoTHM].mp4", "id" => "Yq0QkCxoTHM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Yq0QkCxoTHM", "playlist_index" => 57, "timestamp" => 1699966833, "title" => "Google’s AI Course for Beginners (in 10 minutes)!", "upload_date" => "20231114"} 16:41:21.220 [debug] QUERY OK source="sources" db=0.6ms idle=1712.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:41:21.222 [debug] QUERY OK source="sources" db=2.2ms idle=1712.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:21.226 [debug] QUERY OK source="media_items" db=2.8ms queue=0.1ms idle=1714.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-14 13:00:33Z], 1] 16:41:21.231 [debug] QUERY OK source="media_items" db=3.8ms idle=1592.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\n🔍 In this video, we unravel the layers of AI, Machine Learning, Deep Learning, and their applications in tools like #ChatGPT and Google #Bard\n\nWe first go through how AI is a broad field of study that encompasses #MachineLearning as a sub-field.\n\nWe then break down Machine Learning into supervised and unsupervised models, using real-world examples to illustrate their functions and differences.\n\nWe move deeper into Deep Learning: Learn about artificial neural networks and the power of semi-supervised learning in applications like fraud detection in banking.\n\nThen we delve into Generative AI, differentiating it from discriminative models and demonstrating its capabilities in creating new, innovative outputs.\n\nFinally we walk through Large Language Models (LLMs) and uncover the significance of LLMs in AI, their pre-training processes, and their customization for specific industry applications\n\n*TIMESTAMPS*\n00:00 Google’s AI Course in 10 Minutes\n00:38 What is Artificial Intelligence?\n01:27 What is Machine Learning?\n03:28 What is Deep Learning?\n05:15 What is Generative AI?\n07:05 What are Large Language Models?\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle’s full course: https://www.cloudskillsboost.google/course_templates/536\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "Google’s AI Course for Beginners (in 10 minutes)!", "0f1ba90b-f210-4004-9492-9950e7fc4231", false, "Yq0QkCxoTHM", 1, [], 557, false, "https://www.youtube.com/watch?v=Yq0QkCxoTHM", 57, "/downloads/Jeff Su/2023-11-14 Google’s AI Course for Beginners (in 10 minutes)!/Google’s AI Course for Beginners (in 10 minutes)! [Yq0QkCxoTHM].mp4", false, false, 99, ~U[2023-11-14 13:00:33Z], ~U[2026-04-23 14:41:21Z], ~U[2026-04-23 14:41:21Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\n🔍 In this video, we unravel the layers of AI, Machine Learning, Deep Learning, and their applications in tools like #ChatGPT and Google #Bard\n\nWe first go through how AI is a broad field of study that encompasses #MachineLearning as a sub-field.\n\nWe then break down Machine Learning into supervised and unsupervised models, using real-world examples to illustrate their functions and differences.\n\nWe move deeper into Deep Learning: Learn about artificial neural networks and the power of semi-supervised learning in applications like fraud detection in banking.\n\nThen we delve into Generative AI, differentiating it from discriminative models and demonstrating its capabilities in creating new, innovative outputs.\n\nFinally we walk through Large Language Models (LLMs) and uncover the significance of LLMs in AI, their pre-training processes, and their customization for specific industry applications\n\n*TIMESTAMPS*\n00:00 Google’s AI Course in 10 Minutes\n00:38 What is Artificial Intelligence?\n01:27 What is Machine Learning?\n03:28 What is Deep Learning?\n05:15 What is Generative AI?\n07:05 What are Large Language Models?\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle’s full course: https://www.cloudskillsboost.google/course_templates/536\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "Google’s AI Course for Beginners (in 10 minutes)!", "Yq0QkCxoTHM", 1, 557, false, "https://www.youtube.com/watch?v=Yq0QkCxoTHM", "/downloads/Jeff Su/2023-11-14 Google’s AI Course for Beginners (in 10 minutes)!/Google’s AI Course for Beginners (in 10 minutes)! [Yq0QkCxoTHM].mp4", false, ~U[2023-11-14 13:00:33Z]] 16:41:21.232 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=595.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:41:21.232 [debug] QUERY OK source="media_profiles" db=0.3ms idle=12.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:41:21.234 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=10.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 [57] 16:41:21.234 [info] Kicking off download for media item #57 (Yq0QkCxoTHM) 16:41:21.238 [debug] QUERY OK source="tasks" db=0.2ms idle=6.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [61, 57, ~U[2026-04-23 14:41:21Z], ~U[2026-04-23 14:41:21Z]] 16:41:21.238 [debug] Current batch of media processed. Will check again in 1000ms 16:41:22.239 [debug] Current batch of media processed. Will check again in 1000ms 16:41:23.248 [debug] Current batch of media processed. Will check again in 1000ms 16:41:24.249 [debug] Current batch of media processed. Will check again in 1000ms 16:41:24.539 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=oO9GLC2iKy8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/12/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/1b/24/1b243dfd04e9013fb3f197bf26e3dcd1f41c913146eade344ea85d7404b5d552.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:41:24.540 [debug] QUERY OK db=0.0ms idle=898.2ms begin [] 16:41:24.541 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:41:17Z], "/downloads/Jeff Su/2025-10-21 The Productivity System I Taught to 6,642 Googlers/The Productivity System I Taught to 6,642 Googlers [oO9GLC2iKy8].mp4", "/downloads/Jeff Su/2025-10-21 The Productivity System I Taught to 6,642 Googlers/The Productivity System I Taught to 6,642 Googlers [oO9GLC2iKy8].info.json", "/downloads/Jeff Su/2025-10-21 The Productivity System I Taught to 6,642 Googlers/The Productivity System I Taught to 6,642 Googlers [oO9GLC2iKy8].nfo", "/downloads/Jeff Su/2025-10-21 The Productivity System I Taught to 6,642 Googlers/The Productivity System I Taught to 6,642 Googlers [oO9GLC2iKy8]-thumb.jpg", ~U[2026-04-23 14:41:24Z], 12] 16:41:24.543 [debug] QUERY OK source="media_metadata" db=1.0ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/12/metadata.json.gz", "/config/metadata/media_items/12/thumbnail.jpg", 12, ~U[2026-04-23 14:41:24Z], ~U[2026-04-23 14:41:24Z]] 16:41:24.543 [debug] QUERY OK db=0.5ms commit [] 16:41:24.545 [debug] QUERY OK source="media_items" db=1.4ms idle=301.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [25536245, ~U[2026-04-23 14:41:24Z], 12] 16:41:24.546 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:41:24.547 [info] {"args":{"id":12},"id":16,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":33540405,"event":"job:stop","queue_time":160004858,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:41:24.547 [debug] QUERY OK source="tasks" db=0.5ms idle=304.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"] 16:41:24.549 [debug] QUERY OK source="media_items" db=0.6ms idle=305.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", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [13] 16:41:24.549 [debug] QUERY OK source="sources" db=1.1ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:24.554 [info] {"args":{"id":14},"id":18,"meta":{},"system_time":1776955284554369095,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:41:24.556 [debug] QUERY OK source="media_items" db=0.9ms queue=0.2ms 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 WHERE (m0."id" = ?) [14] 16:41:24.556 [debug] QUERY OK source="tasks" db=1.2ms idle=7.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"] 16:41:24.556 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:41:24.559 [debug] QUERY OK source="sources" db=2.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" = ?) [1] 16:41:24.559 [debug] QUERY OK source="sources" db=1.3ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:24.560 [debug] QUERY OK source="media_profiles" db=0.5ms queue=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] 16:41:24.560 [debug] QUERY OK source="media_items" db=0.3ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [14] 16:41:24.562 [debug] QUERY OK source="media_metadata" db=0.2ms idle=2.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [14] 16:41:24.562 [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] 16:41:24.563 [debug] QUERY OK source="settings" db=0.1ms 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 [] 16:41:24.563 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:24.565 [debug] Running yt-dlp command for action: get_downloadable_status 16:41:24.566 [debug] QUERY OK source="media_items" db=8.0ms queue=0.1ms idle=8.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [13, 14] 16:41:24.573 [debug] QUERY OK source="settings" db=0.5ms queue=0.7ms 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 [] 16:41:24.574 [debug] QUERY OK source="settings" db=0.6ms idle=11.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:24.575 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms 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 [] 16:41:24.575 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iRTK-jsfleg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b9/ed/b9ed91da14eff510cc0470a3c6716c0b73920cdf61403308a533e29e6a40289b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:41:25.250 [debug] Current batch of media processed. Will check again in 1000ms 16:41:25.638 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0-0gFuDwmXI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/62/32/6232c39d1c1476f17e963a84ea28a67aad0c088f6fb5e2d0a641abc050a1bdbe.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:41:25.639 [debug] Running yt-dlp command for action: download 16:41:25.639 [debug] QUERY OK source="settings" db=0.4ms idle=1072.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:25.640 [debug] QUERY OK source="settings" db=0.3ms idle=1066.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:25.641 [debug] QUERY OK source="settings" db=0.2ms idle=1065.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:25.641 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0-0gFuDwmXI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/15/54/15545ce71ab3e41ade561598c6881bf6393f0c42ce23494a6247f812c1e4adfa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:41:26.252 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "When I first started my Youtube channel, I struggled hard to balance my full-time job with this new side gig.\n\nIn this video, I share the 8 critical time management tips that transformed my productivity, helping me juggle my full-time tech role and my YouTube side hustle 😁\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How a Typical Morning Looks\n00:21 9 Time Management Tips\n00:43 Create a God’s Eye View\n01:58 Ticking the Box\n03:33 Anti-McDonald’s Habit\n04:32 Inbox Zero Workflow\n05:27 The Atomic 80/20 Rule\n06:44 Prompt with Intention\n08:24 The Recovery Forecast\n09:16 Capture and Organize\n\n*RESOURCES I MENTION IN THE VIDEO*\nNotion Planner video - https://youtu.be/XXYfRgXTEE0\nInbox Zero for Gmail - https://youtu.be/al1QXFQjq1s\nInbox Zero for Outlook - https://youtu.be/U8LKXbUxf-M\nMaster Prompting video - https://youtu.be/jC4v5AS4RIM\nChatGPT for Productivity - https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#timemanagement #sidehustle #career", "duration" => 602, "filename" => "/downloads/Jeff Su/2023-10-31 How I Manage My Time - 8 Tips that Changed My Life/How I Manage My Time - 8 Tips that Changed My Life [lriCkWIHEHs].mp4", "id" => "lriCkWIHEHs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lriCkWIHEHs", "playlist_index" => 58, "timestamp" => 1698757245, "title" => "How I Manage My Time - 8 Tips that Changed My Life", "upload_date" => "20231031"} 16:41:26.253 [debug] QUERY OK source="sources" db=0.3ms idle=612.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:41:26.253 [debug] QUERY OK source="sources" db=0.3ms idle=612.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:26.254 [debug] QUERY OK source="media_items" db=0.4ms idle=613.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-31 13:00:45Z], 1] 16:41:26.257 [debug] QUERY OK source="media_items" db=1.8ms idle=608.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["When I first started my Youtube channel, I struggled hard to balance my full-time job with this new side gig.\n\nIn this video, I share the 8 critical time management tips that transformed my productivity, helping me juggle my full-time tech role and my YouTube side hustle 😁\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How a Typical Morning Looks\n00:21 9 Time Management Tips\n00:43 Create a God’s Eye View\n01:58 Ticking the Box\n03:33 Anti-McDonald’s Habit\n04:32 Inbox Zero Workflow\n05:27 The Atomic 80/20 Rule\n06:44 Prompt with Intention\n08:24 The Recovery Forecast\n09:16 Capture and Organize\n\n*RESOURCES I MENTION IN THE VIDEO*\nNotion Planner video - https://youtu.be/XXYfRgXTEE0\nInbox Zero for Gmail - https://youtu.be/al1QXFQjq1s\nInbox Zero for Outlook - https://youtu.be/U8LKXbUxf-M\nMaster Prompting video - https://youtu.be/jC4v5AS4RIM\nChatGPT for Productivity - https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#timemanagement #sidehustle #career", "How I Manage My Time - 8 Tips that Changed My Life", "97bf96d5-1461-4861-bd63-ded220f7f6d2", false, "lriCkWIHEHs", 1, [], 602, false, "https://www.youtube.com/watch?v=lriCkWIHEHs", 58, "/downloads/Jeff Su/2023-10-31 How I Manage My Time - 8 Tips that Changed My Life/How I Manage My Time - 8 Tips that Changed My Life [lriCkWIHEHs].mp4", false, false, 99, ~U[2023-10-31 13:00:45Z], ~U[2026-04-23 14:41:26Z], ~U[2026-04-23 14:41:26Z], "When I first started my Youtube channel, I struggled hard to balance my full-time job with this new side gig.\n\nIn this video, I share the 8 critical time management tips that transformed my productivity, helping me juggle my full-time tech role and my YouTube side hustle 😁\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How a Typical Morning Looks\n00:21 9 Time Management Tips\n00:43 Create a God’s Eye View\n01:58 Ticking the Box\n03:33 Anti-McDonald’s Habit\n04:32 Inbox Zero Workflow\n05:27 The Atomic 80/20 Rule\n06:44 Prompt with Intention\n08:24 The Recovery Forecast\n09:16 Capture and Organize\n\n*RESOURCES I MENTION IN THE VIDEO*\nNotion Planner video - https://youtu.be/XXYfRgXTEE0\nInbox Zero for Gmail - https://youtu.be/al1QXFQjq1s\nInbox Zero for Outlook - https://youtu.be/U8LKXbUxf-M\nMaster Prompting video - https://youtu.be/jC4v5AS4RIM\nChatGPT for Productivity - https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#timemanagement #sidehustle #career", "How I Manage My Time - 8 Tips that Changed My Life", "lriCkWIHEHs", 1, 602, false, "https://www.youtube.com/watch?v=lriCkWIHEHs", "/downloads/Jeff Su/2023-10-31 How I Manage My Time - 8 Tips that Changed My Life/How I Manage My Time - 8 Tips that Changed My Life [lriCkWIHEHs].mp4", false, ~U[2023-10-31 13:00:45Z]] 16:41:26.258 [debug] QUERY OK source="sources" db=0.3ms idle=15.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:26.259 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:41:26.260 [debug] QUERY OK source="media_items" db=0.4ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [58] 16:41:26.260 [info] Kicking off download for media item #58 (lriCkWIHEHs) 16:41:26.265 [debug] QUERY OK source="tasks" db=0.7ms queue=0.1ms idle=6.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [62, 58, ~U[2026-04-23 14:41:26Z], ~U[2026-04-23 14:41:26Z]] 16:41:26.266 [debug] Current batch of media processed. Will check again in 1000ms 16:41:27.266 [debug] Current batch of media processed. Will check again in 1000ms 16:41:28.267 [debug] Current batch of media processed. Will check again in 1000ms 16:41:29.268 [debug] Current batch of media processed. Will check again in 1000ms 16:41:30.269 [debug] Current batch of media processed. Will check again in 1000ms 16:41:31.270 [debug] Current batch of media processed. Will check again in 1000ms 16:41:31.480 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iRTK-jsfleg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b9/ed/b9ed91da14eff510cc0470a3c6716c0b73920cdf61403308a533e29e6a40289b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:41:31.481 [debug] Running yt-dlp command for action: download 16:41:31.482 [debug] QUERY OK source="settings" db=0.3ms idle=1237.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:31.482 [debug] QUERY OK source="settings" db=0.4ms idle=1238.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:31.483 [debug] QUERY OK source="settings" db=0.2ms idle=1238.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:31.483 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iRTK-jsfleg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0b/0b/0b0be10ad419a5ae3ef6b66e6037fb859e634a99aeaffa64d767f2fba64433ae.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:41:32.271 [debug] Current batch of media processed. Will check again in 1000ms 16:41:33.273 [debug] Current batch of media processed. Will check again in 1000ms 16:41:34.273 [debug] Current batch of media processed. Will check again in 1000ms 16:41:35.275 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=144\n\nAre you gearing up for a job #interview and wondering how to ace the \"Tell me about yourself\" question? \n\nDid you know that 33% of interviewers make up their minds within the first 90 seconds? \n\nOr that 46% of #applicants are leveraging AI tools like #ChatGPT for their job search? \n\nIn this video you'll learn a step-by-step method to craft the perfect answer using a real job posting and a framework based on your present, past, and future.\n\nBest of luck 😁\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why “Tell me about yourself” is important\n00:33 The perfect answer to this interview question\n00:45 Step 1 - Analyze job description\n02:16 Step 2 - Present, Past, Future\n03:07 Improve upon ChatGPT’s output\n03:24 Present\n04:20 Past\n04:32 Future\n05:16 Bonus Tip!\n\n*RESOURCES I MENTION IN THE VIDEO*\nMake a copy of the prompts: https://www.jeffsu.org/tell-me-about-yourself-using-chatgpt/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "duration" => 349, "filename" => "/downloads/Jeff Su/2023-10-17 Tell Me About Yourself (The BEST Way to Answer this Interview Question)/Tell Me About Yourself (The BEST Way to Answer this Interview Question) [jZJKb-obz1E].mp4", "id" => "jZJKb-obz1E", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jZJKb-obz1E", "playlist_index" => 59, "title" => "Tell Me About Yourself (The BEST Way to Answer this Interview Question)", "upload_date" => "20231017"} 16:41:35.278 [debug] QUERY OK source="sources" db=2.3ms idle=1031.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:41:35.279 [debug] QUERY OK source="sources" db=0.4ms idle=613.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:35.279 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=35.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-17 00:00:00Z], 1] 16:41:35.282 [debug] QUERY OK source="media_items" db=1.8ms idle=36.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=144\n\nAre you gearing up for a job #interview and wondering how to ace the \"Tell me about yourself\" question? \n\nDid you know that 33% of interviewers make up their minds within the first 90 seconds? \n\nOr that 46% of #applicants are leveraging AI tools like #ChatGPT for their job search? \n\nIn this video you'll learn a step-by-step method to craft the perfect answer using a real job posting and a framework based on your present, past, and future.\n\nBest of luck 😁\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why “Tell me about yourself” is important\n00:33 The perfect answer to this interview question\n00:45 Step 1 - Analyze job description\n02:16 Step 2 - Present, Past, Future\n03:07 Improve upon ChatGPT’s output\n03:24 Present\n04:20 Past\n04:32 Future\n05:16 Bonus Tip!\n\n*RESOURCES I MENTION IN THE VIDEO*\nMake a copy of the prompts: https://www.jeffsu.org/tell-me-about-yourself-using-chatgpt/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "Tell Me About Yourself (The BEST Way to Answer this Interview Question)", "62d3b19d-e920-40f7-b6e6-d65582d652a5", false, "jZJKb-obz1E", 1, [], 349, false, "https://www.youtube.com/watch?v=jZJKb-obz1E", 59, "/downloads/Jeff Su/2023-10-17 Tell Me About Yourself (The BEST Way to Answer this Interview Question)/Tell Me About Yourself (The BEST Way to Answer this Interview Question) [jZJKb-obz1E].mp4", false, false, 99, ~U[2023-10-17 00:00:00Z], ~U[2026-04-23 14:41:35Z], ~U[2026-04-23 14:41:35Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=144\n\nAre you gearing up for a job #interview and wondering how to ace the \"Tell me about yourself\" question? \n\nDid you know that 33% of interviewers make up their minds within the first 90 seconds? \n\nOr that 46% of #applicants are leveraging AI tools like #ChatGPT for their job search? \n\nIn this video you'll learn a step-by-step method to craft the perfect answer using a real job posting and a framework based on your present, past, and future.\n\nBest of luck 😁\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why “Tell me about yourself” is important\n00:33 The perfect answer to this interview question\n00:45 Step 1 - Analyze job description\n02:16 Step 2 - Present, Past, Future\n03:07 Improve upon ChatGPT’s output\n03:24 Present\n04:20 Past\n04:32 Future\n05:16 Bonus Tip!\n\n*RESOURCES I MENTION IN THE VIDEO*\nMake a copy of the prompts: https://www.jeffsu.org/tell-me-about-yourself-using-chatgpt/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "Tell Me About Yourself (The BEST Way to Answer this Interview Question)", "jZJKb-obz1E", 1, 349, false, "https://www.youtube.com/watch?v=jZJKb-obz1E", "/downloads/Jeff Su/2023-10-17 Tell Me About Yourself (The BEST Way to Answer this Interview Question)/Tell Me About Yourself (The BEST Way to Answer this Interview Question) [jZJKb-obz1E].mp4", false, ~U[2023-10-17 00:00:00Z]] 16:41:35.284 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=39.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:41:35.285 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.4ms 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] 16:41:35.287 [debug] QUERY OK source="media_items" db=0.5ms idle=7.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [59] 16:41:35.287 [info] Kicking off download for media item #59 (jZJKb-obz1E) 16:41:35.292 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=8.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [63, 59, ~U[2026-04-23 14:41:35Z], ~U[2026-04-23 14:41:35Z]] 16:41:35.293 [debug] Current batch of media processed. Will check again in 1000ms 16:41:36.293 [debug] Current batch of media processed. Will check again in 1000ms 16:41:37.294 [debug] Current batch of media processed. Will check again in 1000ms 16:41:38.295 [debug] Current batch of media processed. Will check again in 1000ms 16:41:39.297 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=143\n\n📧\u00A0Here are 10 game-changing #email habits for productive inbox management!\n\n*1. Reverse your Workflow:* Start from the oldest emails, ensuring no vital message is overlooked. (#Gmail & #Outlook settings included)\n*2. Efficiency Shortcuts:* Save 30 minutes daily! Use \"E\" to archive, \"K\" to skip, and \"B\" to snooze emails.\n*3. Descriptive Attachments:* Always describe attachments in your emails for easy future searches.\n*4. Use Filter Chips in Gmail:* Streamline your searches instead of using manual search operators.\n*5. Label & Star:* Assign labels or stars post-composition for quicker future retrieval.\n*6. Email Templates:* Save drafts of frequently sent emails. Bonus: Store ChatGPT email prompts for easy access!\n*7. Optimized Commute Management:* Organize your inbox on-the-go with left and right swipe actions.\n*8. Meeting Scheduling:* Directly offer or set meeting times right from your email.\n*9. Notification Management:* Filter Google Docs/Sheets/Slides notifications for relevancy.\n*10. Inbox Zero Setup:* Segregate emails into 'Follow up', 'Waiting', and 'Read'. Aim for a clutter-free inbox!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Bottom-up Inbox Management\n00:59 3 Keyboard Shortcuts for Productivity\n01:56 Name Your Attachments\n02:21 Use Filter Chips\n03:07 Label after Composing an Email\n03:24 Save Drafts as Templates\n04:04 Inbox Management on-the-go\n04:31 Responding to Meeting Requests\n05:14 Manage Collaboration Notifications\n05:48 Inbox Zero Workflow\n\n*RESOURCES I MENTION IN THE VIDEO*\nInbox Zero Walkthrough (for Outlook): https://youtu.be/U8LKXbUxf-M\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "duration" => 386, "filename" => "/downloads/Jeff Su/2023-10-03 10 ONE-MINUTE Email Habits for Productivity!/10 ONE-MINUTE Email Habits for Productivity! [Gmo1FV2o5L8].mp4", "id" => "Gmo1FV2o5L8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Gmo1FV2o5L8", "playlist_index" => 60, "timestamp" => 1696338023, "title" => "10 ONE-MINUTE Email Habits for Productivity!", "upload_date" => "20231003"} 16:41:39.298 [debug] QUERY OK source="sources" db=0.3ms idle=624.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:41:39.299 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=54.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:39.299 [debug] QUERY OK source="media_items" db=0.4ms idle=55.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-03 13:00:23Z], 1] 16:41:39.302 [debug] QUERY OK source="media_items" db=1.9ms idle=56.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=143\n\n📧\u00A0Here are 10 game-changing #email habits for productive inbox management!\n\n*1. Reverse your Workflow:* Start from the oldest emails, ensuring no vital message is overlooked. (#Gmail & #Outlook settings included)\n*2. Efficiency Shortcuts:* Save 30 minutes daily! Use \"E\" to archive, \"K\" to skip, and \"B\" to snooze emails.\n*3. Descriptive Attachments:* Always describe attachments in your emails for easy future searches.\n*4. Use Filter Chips in Gmail:* Streamline your searches instead of using manual search operators.\n*5. Label & Star:* Assign labels or stars post-composition for quicker future retrieval.\n*6. Email Templates:* Save drafts of frequently sent emails. Bonus: Store ChatGPT email prompts for easy access!\n*7. Optimized Commute Management:* Organize your inbox on-the-go with left and right swipe actions.\n*8. Meeting Scheduling:* Directly offer or set meeting times right from your email.\n*9. Notification Management:* Filter Google Docs/Sheets/Slides notifications for relevancy.\n*10. Inbox Zero Setup:* Segregate emails into 'Follow up', 'Waiting', and 'Read'. Aim for a clutter-free inbox!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Bottom-up Inbox Management\n00:59 3 Keyboard Shortcuts for Productivity\n01:56 Name Your Attachments\n02:21 Use Filter Chips\n03:07 Label after Composing an Email\n03:24 Save Drafts as Templates\n04:04 Inbox Management on-the-go\n04:31 Responding to Meeting Requests\n05:14 Manage Collaboration Notifications\n05:48 Inbox Zero Workflow\n\n*RESOURCES I MENTION IN THE VIDEO*\nInbox Zero Walkthrough (for Outlook): https://youtu.be/U8LKXbUxf-M\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "10 ONE-MINUTE Email Habits for Productivity!", "8847e1f1-4f06-4001-8b02-f07ad0e29aea", false, "Gmo1FV2o5L8", 1, [], 386, false, "https://www.youtube.com/watch?v=Gmo1FV2o5L8", 60, "/downloads/Jeff Su/2023-10-03 10 ONE-MINUTE Email Habits for Productivity!/10 ONE-MINUTE Email Habits for Productivity! [Gmo1FV2o5L8].mp4", false, false, 99, ~U[2023-10-03 13:00:23Z], ~U[2026-04-23 14:41:39Z], ~U[2026-04-23 14:41:39Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=143\n\n📧\u00A0Here are 10 game-changing #email habits for productive inbox management!\n\n*1. Reverse your Workflow:* Start from the oldest emails, ensuring no vital message is overlooked. (#Gmail & #Outlook settings included)\n*2. Efficiency Shortcuts:* Save 30 minutes daily! Use \"E\" to archive, \"K\" to skip, and \"B\" to snooze emails.\n*3. Descriptive Attachments:* Always describe attachments in your emails for easy future searches.\n*4. Use Filter Chips in Gmail:* Streamline your searches instead of using manual search operators.\n*5. Label & Star:* Assign labels or stars post-composition for quicker future retrieval.\n*6. Email Templates:* Save drafts of frequently sent emails. Bonus: Store ChatGPT email prompts for easy access!\n*7. Optimized Commute Management:* Organize your inbox on-the-go with left and right swipe actions.\n*8. Meeting Scheduling:* Directly offer or set meeting times right from your email.\n*9. Notification Management:* Filter Google Docs/Sheets/Slides notifications for relevancy.\n*10. Inbox Zero Setup:* Segregate emails into 'Follow up', 'Waiting', and 'Read'. Aim for a clutter-free inbox!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Bottom-up Inbox Management\n00:59 3 Keyboard Shortcuts for Productivity\n01:56 Name Your Attachments\n02:21 Use Filter Chips\n03:07 Label after Composing an Email\n03:24 Save Drafts as Templates\n04:04 Inbox Management on-the-go\n04:31 Responding to Meeting Requests\n05:14 Manage Collaboration Notifications\n05:48 Inbox Zero Workflow\n\n*RESOURCES I MENTION IN THE VIDEO*\nInbox Zero Walkthrough (for Outlook): https://youtu.be/U8LKXbUxf-M\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "10 ONE-MINUTE Email Habits for Productivity!", "Gmo1FV2o5L8", 1, 386, false, "https://www.youtube.com/watch?v=Gmo1FV2o5L8", "/downloads/Jeff Su/2023-10-03 10 ONE-MINUTE Email Habits for Productivity!/10 ONE-MINUTE Email Habits for Productivity! [Gmo1FV2o5L8].mp4", false, ~U[2023-10-03 13:00:23Z]] 16:41:39.303 [debug] QUERY OK source="sources" db=0.2ms idle=58.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:41:39.303 [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] 16:41:39.304 [debug] QUERY OK source="media_items" db=0.3ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [60] 16:41:39.304 [info] Kicking off download for media item #60 (Gmo1FV2o5L8) 16:41:39.306 [debug] QUERY OK source="tasks" db=0.2ms idle=3.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [64, 60, ~U[2026-04-23 14:41:39Z], ~U[2026-04-23 14:41:39Z]] 16:41:39.307 [debug] Current batch of media processed. Will check again in 1000ms 16:41:40.307 [debug] Current batch of media processed. Will check again in 1000ms 16:41:41.308 [debug] Current batch of media processed. Will check again in 1000ms 16:41:42.309 [debug] Current batch of media processed. Will check again in 1000ms 16:41:43.311 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=142\n\nUse Teal’s Resume Builder for free - https://get.tealhq.com/jeffsu\n\nIn this video we dive into the universally agreed upon, most common resume mistake: *not including quantifiable metrics in your bullet points.*\n\nSimply put, are you just describing your responsibilities without showcasing their impact? \n\nLet’s first debunk myths about what metrics should look like and provide real-life examples of how to transform your bullet points.\n\nThen, we’ll go through the significance of \"how many\", \"how often\", and \"how long\", and a special technique that leverages ChatGPT to help you craft the perfect resume, no matter your role!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why Most Resume Advice Suck\n00:37 The Most Common Resume Mistake\n01:13 How to Fix the Most Common Resume Mistake\n02:02 Bullet Point Example 1\n02:42 Use Teal to Create Your Resume\n03:47 Bullet Point Example 2\n04:27 Fool-Proof Technique for Anyone\n05:39 Recap: How to Fix Common Resume Mistake\n\n*RESOURCES I MENTION IN THE VIDEO*\nJoanna’s Resume in PDF format - https://drive.google.com/file/d/1rVgg7r28UrP-iEh13UzQ2RuTKBexp6xW/view?usp=drive_link\n5 Resume Mistakes You Must Avoid - https://youtu.be/pjqi_M3SPwY\nPurchase my Premium Resume Package - https://jeffsu.gumroad.com/l/premium-resume-package\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #resumetips #tealhq", "duration" => 365, "filename" => "/downloads/Jeff Su/2023-09-19 Here’s the BIGGEST Mistake Found on Resumes!/Here’s the BIGGEST Mistake Found on Resumes! [IW472-d_8bs].mp4", "id" => "IW472-d_8bs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IW472-d_8bs", "playlist_index" => 61, "timestamp" => 1695128423, "title" => "Here’s the BIGGEST Mistake Found on Resumes!", "upload_date" => "20230919"} 16:41:43.312 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=630.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:41:43.312 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=68.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:43.313 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=69.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-19 13:00:23Z], 1] 16:41:43.316 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=70.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=142\n\nUse Teal’s Resume Builder for free - https://get.tealhq.com/jeffsu\n\nIn this video we dive into the universally agreed upon, most common resume mistake: *not including quantifiable metrics in your bullet points.*\n\nSimply put, are you just describing your responsibilities without showcasing their impact? \n\nLet’s first debunk myths about what metrics should look like and provide real-life examples of how to transform your bullet points.\n\nThen, we’ll go through the significance of \"how many\", \"how often\", and \"how long\", and a special technique that leverages ChatGPT to help you craft the perfect resume, no matter your role!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why Most Resume Advice Suck\n00:37 The Most Common Resume Mistake\n01:13 How to Fix the Most Common Resume Mistake\n02:02 Bullet Point Example 1\n02:42 Use Teal to Create Your Resume\n03:47 Bullet Point Example 2\n04:27 Fool-Proof Technique for Anyone\n05:39 Recap: How to Fix Common Resume Mistake\n\n*RESOURCES I MENTION IN THE VIDEO*\nJoanna’s Resume in PDF format - https://drive.google.com/file/d/1rVgg7r28UrP-iEh13UzQ2RuTKBexp6xW/view?usp=drive_link\n5 Resume Mistakes You Must Avoid - https://youtu.be/pjqi_M3SPwY\nPurchase my Premium Resume Package - https://jeffsu.gumroad.com/l/premium-resume-package\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #resumetips #tealhq", "Here’s the BIGGEST Mistake Found on Resumes!", "4c7c1187-b4c2-4b47-8fa7-cced8da43ee9", false, "IW472-d_8bs", 1, [], 365, false, "https://www.youtube.com/watch?v=IW472-d_8bs", 61, "/downloads/Jeff Su/2023-09-19 Here’s the BIGGEST Mistake Found on Resumes!/Here’s the BIGGEST Mistake Found on Resumes! [IW472-d_8bs].mp4", false, false, 99, ~U[2023-09-19 13:00:23Z], ~U[2026-04-23 14:41:43Z], ~U[2026-04-23 14:41:43Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=142\n\nUse Teal’s Resume Builder for free - https://get.tealhq.com/jeffsu\n\nIn this video we dive into the universally agreed upon, most common resume mistake: *not including quantifiable metrics in your bullet points.*\n\nSimply put, are you just describing your responsibilities without showcasing their impact? \n\nLet’s first debunk myths about what metrics should look like and provide real-life examples of how to transform your bullet points.\n\nThen, we’ll go through the significance of \"how many\", \"how often\", and \"how long\", and a special technique that leverages ChatGPT to help you craft the perfect resume, no matter your role!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why Most Resume Advice Suck\n00:37 The Most Common Resume Mistake\n01:13 How to Fix the Most Common Resume Mistake\n02:02 Bullet Point Example 1\n02:42 Use Teal to Create Your Resume\n03:47 Bullet Point Example 2\n04:27 Fool-Proof Technique for Anyone\n05:39 Recap: How to Fix Common Resume Mistake\n\n*RESOURCES I MENTION IN THE VIDEO*\nJoanna’s Resume in PDF format - https://drive.google.com/file/d/1rVgg7r28UrP-iEh13UzQ2RuTKBexp6xW/view?usp=drive_link\n5 Resume Mistakes You Must Avoid - https://youtu.be/pjqi_M3SPwY\nPurchase my Premium Resume Package - https://jeffsu.gumroad.com/l/premium-resume-package\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #resumetips #tealhq", "Here’s the BIGGEST Mistake Found on Resumes!", "IW472-d_8bs", 1, 365, false, "https://www.youtube.com/watch?v=IW472-d_8bs", "/downloads/Jeff Su/2023-09-19 Here’s the BIGGEST Mistake Found on Resumes!/Here’s the BIGGEST Mistake Found on Resumes! [IW472-d_8bs].mp4", false, ~U[2023-09-19 13:00:23Z]] 16:41:43.317 [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" = ?) [1] 16:41:43.319 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:41:43.319 [debug] QUERY OK source="media_items" db=0.3ms 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 [61] 16:41:43.319 [info] Kicking off download for media item #61 (IW472-d_8bs) 16:41:43.323 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=5.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [65, 61, ~U[2026-04-23 14:41:43Z], ~U[2026-04-23 14:41:43Z]] 16:41:43.323 [debug] Current batch of media processed. Will check again in 1000ms 16:41:44.324 [debug] Current batch of media processed. Will check again in 1000ms 16:41:45.325 [debug] Current batch of media processed. Will check again in 1000ms 16:41:46.326 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video, I dissect real slides from top consulting firms like McKinsey, Bain, and BCG to reveal 5 easy techniques you can start using today to take your presentations to the next level 📈\n\n1️⃣ *Contextualize Your Data:*\nNever share a data point in isolation. This helps you control the story and keep your audience engaged.\n\n2️⃣ *Master the SCQA Framework:*\nThis framework is the backbone of every MBB presentation and it's a surefire way to structure your slides for maximum impact.\n\n3️⃣ *Embrace the Pyramid Principle:*\nStart with your conclusion and then present your supporting arguments.\n\n4️⃣ *Color with Purpose:*\nWhether it’s using contrasting colors to differentiate data points or choosing a color palette that reduces cognitive load, intentional color choice can make your slides pop.\n\n5️⃣ *Know When to Table It:* \nCharts are great for trends and comparisons, but sometimes you need a table to show precise values or a mix of different data types.\n\n🎉 *Bonus*: Get extra mileage out of free tools like flaticons, colorhunt, and slides carnival to elevate your presentation game without sweating the details.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How McKinsey, Bain, BCG create slides\n00:25 Never Share a Single Data Point in Isolation\n02:13 Use the SCQA Framework\n04:16 The Pyramid Principle\n05:51 Use Color with Intention\n07:16 Table vs. Charts\n08:59 Bonus Technique from Top Consulting Firms\n\n*RESOURCES I MENTION IN THE VIDEO*\nPresentations mentioned in this video - https://www.jeffsu.org/presentation-techniques-from-mckinsey-bain-and-bcg\nFree Tools to Use in Presentations - https://youtu.be/5c9SapE_YNU\nAnalyst Academy Video - https://youtu.be/HnlWiVs9P5o\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#presentationtips #mckinsey #mbb", "duration" => 555, "filename" => "/downloads/Jeff Su/2023-09-05 5 Small Changes to Improve Your Presentations Forever!/5 Small Changes to Improve Your Presentations Forever! [nuosoMyf0eA].mp4", "id" => "nuosoMyf0eA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=nuosoMyf0eA", "playlist_index" => 62, "timestamp" => 1693918841, "title" => "5 Small Changes to Improve Your Presentations Forever!", "upload_date" => "20230905"} 16:41:46.327 [debug] QUERY OK source="sources" db=0.2ms idle=1082.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:41:46.327 [debug] QUERY OK source="sources" db=0.2ms idle=1083.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:46.328 [debug] QUERY OK source="media_items" db=0.3ms idle=1083.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-05 13:00:41Z], 1] 16:41:46.331 [debug] QUERY OK source="media_items" db=1.9ms idle=1084.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I dissect real slides from top consulting firms like McKinsey, Bain, and BCG to reveal 5 easy techniques you can start using today to take your presentations to the next level 📈\n\n1️⃣ *Contextualize Your Data:*\nNever share a data point in isolation. This helps you control the story and keep your audience engaged.\n\n2️⃣ *Master the SCQA Framework:*\nThis framework is the backbone of every MBB presentation and it's a surefire way to structure your slides for maximum impact.\n\n3️⃣ *Embrace the Pyramid Principle:*\nStart with your conclusion and then present your supporting arguments.\n\n4️⃣ *Color with Purpose:*\nWhether it’s using contrasting colors to differentiate data points or choosing a color palette that reduces cognitive load, intentional color choice can make your slides pop.\n\n5️⃣ *Know When to Table It:* \nCharts are great for trends and comparisons, but sometimes you need a table to show precise values or a mix of different data types.\n\n🎉 *Bonus*: Get extra mileage out of free tools like flaticons, colorhunt, and slides carnival to elevate your presentation game without sweating the details.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How McKinsey, Bain, BCG create slides\n00:25 Never Share a Single Data Point in Isolation\n02:13 Use the SCQA Framework\n04:16 The Pyramid Principle\n05:51 Use Color with Intention\n07:16 Table vs. Charts\n08:59 Bonus Technique from Top Consulting Firms\n\n*RESOURCES I MENTION IN THE VIDEO*\nPresentations mentioned in this video - https://www.jeffsu.org/presentation-techniques-from-mckinsey-bain-and-bcg\nFree Tools to Use in Presentations - https://youtu.be/5c9SapE_YNU\nAnalyst Academy Video - https://youtu.be/HnlWiVs9P5o\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#presentationtips #mckinsey #mbb", "5 Small Changes to Improve Your Presentations Forever!", "f3a1c2a6-02e8-4b7e-9f6e-d4b8ff9a0f2c", false, "nuosoMyf0eA", 1, [], 555, false, "https://www.youtube.com/watch?v=nuosoMyf0eA", 62, "/downloads/Jeff Su/2023-09-05 5 Small Changes to Improve Your Presentations Forever!/5 Small Changes to Improve Your Presentations Forever! [nuosoMyf0eA].mp4", false, false, 99, ~U[2023-09-05 13:00:41Z], ~U[2026-04-23 14:41:46Z], ~U[2026-04-23 14:41:46Z], "In this video, I dissect real slides from top consulting firms like McKinsey, Bain, and BCG to reveal 5 easy techniques you can start using today to take your presentations to the next level 📈\n\n1️⃣ *Contextualize Your Data:*\nNever share a data point in isolation. This helps you control the story and keep your audience engaged.\n\n2️⃣ *Master the SCQA Framework:*\nThis framework is the backbone of every MBB presentation and it's a surefire way to structure your slides for maximum impact.\n\n3️⃣ *Embrace the Pyramid Principle:*\nStart with your conclusion and then present your supporting arguments.\n\n4️⃣ *Color with Purpose:*\nWhether it’s using contrasting colors to differentiate data points or choosing a color palette that reduces cognitive load, intentional color choice can make your slides pop.\n\n5️⃣ *Know When to Table It:* \nCharts are great for trends and comparisons, but sometimes you need a table to show precise values or a mix of different data types.\n\n🎉 *Bonus*: Get extra mileage out of free tools like flaticons, colorhunt, and slides carnival to elevate your presentation game without sweating the details.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How McKinsey, Bain, BCG create slides\n00:25 Never Share a Single Data Point in Isolation\n02:13 Use the SCQA Framework\n04:16 The Pyramid Principle\n05:51 Use Color with Intention\n07:16 Table vs. Charts\n08:59 Bonus Technique from Top Consulting Firms\n\n*RESOURCES I MENTION IN THE VIDEO*\nPresentations mentioned in this video - https://www.jeffsu.org/presentation-techniques-from-mckinsey-bain-and-bcg\nFree Tools to Use in Presentations - https://youtu.be/5c9SapE_YNU\nAnalyst Academy Video - https://youtu.be/HnlWiVs9P5o\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#presentationtips #mckinsey #mbb", "5 Small Changes to Improve Your Presentations Forever!", "nuosoMyf0eA", 1, 555, false, "https://www.youtube.com/watch?v=nuosoMyf0eA", "/downloads/Jeff Su/2023-09-05 5 Small Changes to Improve Your Presentations Forever!/5 Small Changes to Improve Your Presentations Forever! [nuosoMyf0eA].mp4", false, ~U[2023-09-05 13:00:41Z]] 16:41:46.332 [debug] QUERY OK source="sources" db=0.3ms idle=644.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:41:46.332 [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] 16:41:46.333 [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 [62] 16:41:46.333 [info] Kicking off download for media item #62 (nuosoMyf0eA) 16:41:46.335 [debug] QUERY OK source="tasks" db=0.2ms idle=3.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [66, 62, ~U[2026-04-23 14:41:46Z], ~U[2026-04-23 14:41:46Z]] 16:41:46.335 [debug] Current batch of media processed. Will check again in 1000ms 16:41:47.336 [debug] Current batch of media processed. Will check again in 1000ms 16:41:48.252 [info] {"source":"oban","duration":943,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:41:48.337 [debug] Current batch of media processed. Will check again in 1000ms 16:41:49.338 [debug] Current batch of media processed. Will check again in 1000ms 16:41:50.340 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=140\n\nAI technologies like ChatGPT and Google Bard are developing at a rapid pace so it’s easy to feel left behind.\n\nIn this video I share the 3 levels of future-proofing yourself in a world of AI tools:\n\nLevel 1️⃣\u00A0- Learn how to craft strong prompts with the 6 essential components\n\nLevel 2️⃣\u00A0- Making AI prompting a daily habit to simplify and enhance everyday tasks, from fitness plans to professional emails.\n\nLevel 3️⃣\u00A0- Embracing continuous learning to stay updated and relevant in the ever-evolving AI landscape.\n\nDiscover practical tips on prompt engineering, habits, and frameworks to ensure you're always ahead in the AI game.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 The 3 levels of using ChatGPT\n00:18 How to future-proof ourselves\n00:47 Beginner Level of using ChatGPT\n02:55 Intermediate Level of using ChatGPT\n05:43 Advanced Level of using ChatGPT\n\n*RESOURCES I MENTION IN THE VIDEO*\nMaster the Perfect Prompt Formula - https://youtu.be/jC4v5AS4RIM\nMy Favorite ChatGPT Productivity Tips - https://youtu.be/Q07rFZtc2Ao\nLearn Prompting - https://learnprompting.org/docs/intro\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#ChatGPT #GoogleBard #PromptEngineering", "duration" => 525, "filename" => "/downloads/Jeff Su/2023-08-22 Beginner to Pro with ChatGPT in One Video!/Beginner to Pro with ChatGPT in One Video! [bkf3XBOj2PE].mp4", "id" => "bkf3XBOj2PE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bkf3XBOj2PE", "playlist_index" => 63, "timestamp" => 1692711013, "title" => "Beginner to Pro with ChatGPT in One Video!", "upload_date" => "20230822"} 16:41:50.341 [debug] QUERY OK source="sources" db=0.5ms idle=645.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:41:50.341 [debug] QUERY OK source="sources" db=0.2ms idle=97.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:50.342 [debug] QUERY OK source="media_items" db=0.4ms idle=97.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-22 13:30:13Z], 1] 16:41:50.345 [debug] QUERY OK source="media_items" db=1.7ms idle=98.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=140\n\nAI technologies like ChatGPT and Google Bard are developing at a rapid pace so it’s easy to feel left behind.\n\nIn this video I share the 3 levels of future-proofing yourself in a world of AI tools:\n\nLevel 1️⃣\u00A0- Learn how to craft strong prompts with the 6 essential components\n\nLevel 2️⃣\u00A0- Making AI prompting a daily habit to simplify and enhance everyday tasks, from fitness plans to professional emails.\n\nLevel 3️⃣\u00A0- Embracing continuous learning to stay updated and relevant in the ever-evolving AI landscape.\n\nDiscover practical tips on prompt engineering, habits, and frameworks to ensure you're always ahead in the AI game.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 The 3 levels of using ChatGPT\n00:18 How to future-proof ourselves\n00:47 Beginner Level of using ChatGPT\n02:55 Intermediate Level of using ChatGPT\n05:43 Advanced Level of using ChatGPT\n\n*RESOURCES I MENTION IN THE VIDEO*\nMaster the Perfect Prompt Formula - https://youtu.be/jC4v5AS4RIM\nMy Favorite ChatGPT Productivity Tips - https://youtu.be/Q07rFZtc2Ao\nLearn Prompting - https://learnprompting.org/docs/intro\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#ChatGPT #GoogleBard #PromptEngineering", "Beginner to Pro with ChatGPT in One Video!", "de34d4ac-dbab-4ace-895e-78f815eabfa9", false, "bkf3XBOj2PE", 1, [], 525, false, "https://www.youtube.com/watch?v=bkf3XBOj2PE", 63, "/downloads/Jeff Su/2023-08-22 Beginner to Pro with ChatGPT in One Video!/Beginner to Pro with ChatGPT in One Video! [bkf3XBOj2PE].mp4", false, false, 99, ~U[2023-08-22 13:30:13Z], ~U[2026-04-23 14:41:50Z], ~U[2026-04-23 14:41:50Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=140\n\nAI technologies like ChatGPT and Google Bard are developing at a rapid pace so it’s easy to feel left behind.\n\nIn this video I share the 3 levels of future-proofing yourself in a world of AI tools:\n\nLevel 1️⃣\u00A0- Learn how to craft strong prompts with the 6 essential components\n\nLevel 2️⃣\u00A0- Making AI prompting a daily habit to simplify and enhance everyday tasks, from fitness plans to professional emails.\n\nLevel 3️⃣\u00A0- Embracing continuous learning to stay updated and relevant in the ever-evolving AI landscape.\n\nDiscover practical tips on prompt engineering, habits, and frameworks to ensure you're always ahead in the AI game.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 The 3 levels of using ChatGPT\n00:18 How to future-proof ourselves\n00:47 Beginner Level of using ChatGPT\n02:55 Intermediate Level of using ChatGPT\n05:43 Advanced Level of using ChatGPT\n\n*RESOURCES I MENTION IN THE VIDEO*\nMaster the Perfect Prompt Formula - https://youtu.be/jC4v5AS4RIM\nMy Favorite ChatGPT Productivity Tips - https://youtu.be/Q07rFZtc2Ao\nLearn Prompting - https://learnprompting.org/docs/intro\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#ChatGPT #GoogleBard #PromptEngineering", "Beginner to Pro with ChatGPT in One Video!", "bkf3XBOj2PE", 1, 525, false, "https://www.youtube.com/watch?v=bkf3XBOj2PE", "/downloads/Jeff Su/2023-08-22 Beginner to Pro with ChatGPT in One Video!/Beginner to Pro with ChatGPT in One Video! [bkf3XBOj2PE].mp4", false, ~U[2023-08-22 13:30:13Z]] 16:41:50.345 [debug] QUERY OK source="sources" db=0.3ms idle=101.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:41:50.346 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:41:50.346 [debug] QUERY OK source="media_items" db=0.3ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [63] 16:41:50.346 [info] Kicking off download for media item #63 (bkf3XBOj2PE) 16:41:50.349 [debug] QUERY OK source="tasks" db=0.3ms idle=3.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [67, 63, ~U[2026-04-23 14:41:50Z], ~U[2026-04-23 14:41:50Z]] 16:41:50.349 [debug] Current batch of media processed. Will check again in 1000ms 16:41:51.350 [debug] Current batch of media processed. Will check again in 1000ms 16:41:52.351 [debug] Current batch of media processed. Will check again in 1000ms 16:41:53.352 [debug] Current batch of media processed. Will check again in 1000ms 16:41:54.354 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=139\n\nDownload my favorite prompts for productivity: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=139\n\nHere are the 6 key components that make up the perfect formula for ChatGPT and Google Bard: Task, Context, Exemplars, Persona, Format, and Tone.\n\nIn this video we go through real-world examples and demonstrate how each component contributes to the effectiveness of the prompt (aka the better the prompt, the better the output)! \n\nThe Task sentence needs to articulate the end goal and start with an action verb.\n\nUse three guiding questions to help structure relevant and sufficient Context.\n\nExemplars can drastically improve the quality of the output by giving specific examples for the AI to reference.\n\nFor Persona, think of who you would ideally want the AI to be in the given task situation.\n\nVisualizing your desired end result will let you know what format to use in your prompt.\n\nAnd you can actually use ChatGPT to generate a list of Tone keywords for you to use!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/newsletter/\n\n*TIMESTAMPS*\n00:00 I found the Perfect ChatGPT Formula\n00:40 The 6 Prompt Components\n01:39 Task\n02:07 Context\n03:05 Exemplars\n04:28 Persona\n05:18 Format\n06:20 Tone\n07:05 Example using the Perfect Prompt Formula\n08:01 Good vs. Bad Prompt Outputs\n\n*RESOURCES I MENTION IN THE VIDEO*\nBeginner to Pro with ChatGPT - https://youtu.be/bkf3XBOj2PE\nTop 8 ChatGPT Tips for Work - https://youtu.be/Q07rFZtc2Ao\nFree prompting course - https://learnprompting.org/docs/intro\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/newsletter/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatgpt #googlebard #promptengineering", "duration" => 510, "filename" => "/downloads/Jeff Su/2023-08-01 Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)!/Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)! [jC4v5AS4RIM].mp4", "id" => "jC4v5AS4RIM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jC4v5AS4RIM", "playlist_index" => 64, "timestamp" => 1690894826, "title" => "Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)!", "upload_date" => "20230801"} 16:41:54.355 [debug] QUERY OK source="sources" db=0.6ms 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" IN (?)) [1] 16:41:54.356 [debug] QUERY OK source="sources" db=0.3ms idle=111.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:54.356 [debug] QUERY OK source="media_items" db=0.5ms idle=112.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-01 13:00:26Z], 1] 16:41:54.360 [debug] QUERY OK source="media_items" db=2.1ms idle=113.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=139\n\nDownload my favorite prompts for productivity: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=139\n\nHere are the 6 key components that make up the perfect formula for ChatGPT and Google Bard: Task, Context, Exemplars, Persona, Format, and Tone.\n\nIn this video we go through real-world examples and demonstrate how each component contributes to the effectiveness of the prompt (aka the better the prompt, the better the output)! \n\nThe Task sentence needs to articulate the end goal and start with an action verb.\n\nUse three guiding questions to help structure relevant and sufficient Context.\n\nExemplars can drastically improve the quality of the output by giving specific examples for the AI to reference.\n\nFor Persona, think of who you would ideally want the AI to be in the given task situation.\n\nVisualizing your desired end result will let you know what format to use in your prompt.\n\nAnd you can actually use ChatGPT to generate a list of Tone keywords for you to use!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/newsletter/\n\n*TIMESTAMPS*\n00:00 I found the Perfect ChatGPT Formula\n00:40 The 6 Prompt Components\n01:39 Task\n02:07 Context\n03:05 Exemplars\n04:28 Persona\n05:18 Format\n06:20 Tone\n07:05 Example using the Perfect Prompt Formula\n08:01 Good vs. Bad Prompt Outputs\n\n*RESOURCES I MENTION IN THE VIDEO*\nBeginner to Pro with ChatGPT - https://youtu.be/bkf3XBOj2PE\nTop 8 ChatGPT Tips for Work - https://youtu.be/Q07rFZtc2Ao\nFree prompting course - https://learnprompting.org/docs/intro\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/newsletter/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatgpt #googlebard #promptengineering", "Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)!", "a3bce864-df61-4d33-9adb-39945f216969", false, "jC4v5AS4RIM", 1, [], 510, false, "https://www.youtube.com/watch?v=jC4v5AS4RIM", 64, "/downloads/Jeff Su/2023-08-01 Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)!/Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)! [jC4v5AS4RIM].mp4", false, false, 99, ~U[2023-08-01 13:00:26Z], ~U[2026-04-23 14:41:54Z], ~U[2026-04-23 14:41:54Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=139\n\nDownload my favorite prompts for productivity: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=139\n\nHere are the 6 key components that make up the perfect formula for ChatGPT and Google Bard: Task, Context, Exemplars, Persona, Format, and Tone.\n\nIn this video we go through real-world examples and demonstrate how each component contributes to the effectiveness of the prompt (aka the better the prompt, the better the output)! \n\nThe Task sentence needs to articulate the end goal and start with an action verb.\n\nUse three guiding questions to help structure relevant and sufficient Context.\n\nExemplars can drastically improve the quality of the output by giving specific examples for the AI to reference.\n\nFor Persona, think of who you would ideally want the AI to be in the given task situation.\n\nVisualizing your desired end result will let you know what format to use in your prompt.\n\nAnd you can actually use ChatGPT to generate a list of Tone keywords for you to use!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/newsletter/\n\n*TIMESTAMPS*\n00:00 I found the Perfect ChatGPT Formula\n00:40 The 6 Prompt Components\n01:39 Task\n02:07 Context\n03:05 Exemplars\n04:28 Persona\n05:18 Format\n06:20 Tone\n07:05 Example using the Perfect Prompt Formula\n08:01 Good vs. Bad Prompt Outputs\n\n*RESOURCES I MENTION IN THE VIDEO*\nBeginner to Pro with ChatGPT - https://youtu.be/bkf3XBOj2PE\nTop 8 ChatGPT Tips for Work - https://youtu.be/Q07rFZtc2Ao\nFree prompting course - https://learnprompting.org/docs/intro\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/newsletter/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatgpt #googlebard #promptengineering", "Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)!", "jC4v5AS4RIM", 1, 510, false, "https://www.youtube.com/watch?v=jC4v5AS4RIM", "/downloads/Jeff Su/2023-08-01 Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)!/Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)! [jC4v5AS4RIM].mp4", false, ~U[2023-08-01 13:00:26Z]] 16:41:54.360 [debug] QUERY OK source="sources" db=0.3ms idle=116.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:41:54.361 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:41:54.361 [debug] QUERY OK source="media_items" db=0.3ms 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 [64] 16:41:54.362 [info] Kicking off download for media item #64 (jC4v5AS4RIM) 16:41:54.364 [debug] QUERY OK source="tasks" db=0.2ms idle=3.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [68, 64, ~U[2026-04-23 14:41:54Z], ~U[2026-04-23 14:41:54Z]] 16:41:54.364 [debug] Current batch of media processed. Will check again in 1000ms 16:41:55.364 [debug] Current batch of media processed. Will check again in 1000ms 16:41:56.365 [debug] Current batch of media processed. Will check again in 1000ms 16:41:57.366 [debug] Current batch of media processed. Will check again in 1000ms 16:41:58.178 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iRTK-jsfleg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0b/0b/0b0be10ad419a5ae3ef6b66e6037fb859e634a99aeaffa64d767f2fba64433ae.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:41:58.215 [debug] Running yt-dlp command for action: download_thumbnail 16:41:58.216 [debug] QUERY OK source="settings" db=0.2ms idle=1972.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:58.216 [debug] QUERY OK source="settings" db=0.1ms idle=1972.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:58.217 [debug] QUERY OK source="settings" db=0.1ms idle=1972.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:41:58.217 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iRTK-jsfleg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/14/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/f7/f9/f7f98eb5aa7c42b7590a7319085fc43238fb20922496ef346e08faa7667ea65e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:41:58.368 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=138\n\n📑\u00A0Cover letter template and prompts can be found here ➡️\u00A0https://www.jeffsu.org/5-cover-letter-mistakes-to-avoid/\n\nIn this video, we go over what makes a successful cover letter by exploring common mistakes and providing practical solutions. \n\nUsing my own cover letter as an example, I reveal the five key mistakes I made back in the day that led to multiple rejections, and how you can avoid these pitfalls.\n\nMistake 1️⃣: A generic or impersonal address can immediately signal a lack of research\n\nMistake 2️⃣: Grammatical errors and typos can quickly tank your application\n\nMistake 3️⃣: A weak introduction can cost you the reader's attention. Discover how to write a compelling hook by addressing a relatable pain point for the company and positioning yourself as a solution\n\nMistake 4️⃣: Vague descriptions don't impress; quantify your achievements instead\n\nMistake 5️⃣: Proper cover letter hygiene matters. Avoid oversharing personal information, using industry-specific jargon, and writing excessively long letters\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How NOT to Write a Cover Letter\n00:19 Not Addressing to an Actual Person\n01:29 Grammar Mistakes and Typos\n02:36 Not Spending Enough Time on the Hook\n04:25 Not Including Tangible Results\n05:47 Being Unaware of Cover Letter Hygiene\n06:28 Bonus Mistake\n06:45 Why Networking is Important for Cover Letters\n\n*RESOURCES I MENTION IN THE VIDEO*\nUse LinkedIn to network effectively - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nAustin’s Cover Letter article - https://cultivatedculture.com/cover-letter/\nAli Abdaal’s resume video - https://www.youtube.com/watch?v=MqXjqOy-TA8&t=1398s\nCover Letter deal-break article - https://www.topresume.com/career-advice/officehours-worst-resume-deal-breaker-mistakes\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#coverletter #jobsearch #resume", "duration" => 416, "filename" => "/downloads/Jeff Su/2023-07-18 Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID)/Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID) [xudcyY06PiI].mp4", "id" => "xudcyY06PiI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xudcyY06PiI", "playlist_index" => 65, "timestamp" => 1689685245, "title" => "Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID)", "upload_date" => "20230718"} 16:41:58.369 [debug] QUERY OK source="sources" db=0.3ms idle=651.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:41:58.369 [debug] QUERY OK source="sources" db=0.2ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:41:58.370 [debug] QUERY OK source="media_items" db=0.4ms idle=153.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-18 13:00:45Z], 1] 16:41:58.373 [debug] QUERY OK source="media_items" db=2.0ms idle=153.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=138\n\n📑\u00A0Cover letter template and prompts can be found here ➡️\u00A0https://www.jeffsu.org/5-cover-letter-mistakes-to-avoid/\n\nIn this video, we go over what makes a successful cover letter by exploring common mistakes and providing practical solutions. \n\nUsing my own cover letter as an example, I reveal the five key mistakes I made back in the day that led to multiple rejections, and how you can avoid these pitfalls.\n\nMistake 1️⃣: A generic or impersonal address can immediately signal a lack of research\n\nMistake 2️⃣: Grammatical errors and typos can quickly tank your application\n\nMistake 3️⃣: A weak introduction can cost you the reader's attention. Discover how to write a compelling hook by addressing a relatable pain point for the company and positioning yourself as a solution\n\nMistake 4️⃣: Vague descriptions don't impress; quantify your achievements instead\n\nMistake 5️⃣: Proper cover letter hygiene matters. Avoid oversharing personal information, using industry-specific jargon, and writing excessively long letters\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How NOT to Write a Cover Letter\n00:19 Not Addressing to an Actual Person\n01:29 Grammar Mistakes and Typos\n02:36 Not Spending Enough Time on the Hook\n04:25 Not Including Tangible Results\n05:47 Being Unaware of Cover Letter Hygiene\n06:28 Bonus Mistake\n06:45 Why Networking is Important for Cover Letters\n\n*RESOURCES I MENTION IN THE VIDEO*\nUse LinkedIn to network effectively - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nAustin’s Cover Letter article - https://cultivatedculture.com/cover-letter/\nAli Abdaal’s resume video - https://www.youtube.com/watch?v=MqXjqOy-TA8&t=1398s\nCover Letter deal-break article - https://www.topresume.com/career-advice/officehours-worst-resume-deal-breaker-mistakes\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#coverletter #jobsearch #resume", "Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID)", "3d6f9dbb-15c0-49fa-93ef-37debd6414a5", false, "xudcyY06PiI", 1, [], 416, false, "https://www.youtube.com/watch?v=xudcyY06PiI", 65, "/downloads/Jeff Su/2023-07-18 Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID)/Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID) [xudcyY06PiI].mp4", false, false, 99, ~U[2023-07-18 13:00:45Z], ~U[2026-04-23 14:41:58Z], ~U[2026-04-23 14:41:58Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=138\n\n📑\u00A0Cover letter template and prompts can be found here ➡️\u00A0https://www.jeffsu.org/5-cover-letter-mistakes-to-avoid/\n\nIn this video, we go over what makes a successful cover letter by exploring common mistakes and providing practical solutions. \n\nUsing my own cover letter as an example, I reveal the five key mistakes I made back in the day that led to multiple rejections, and how you can avoid these pitfalls.\n\nMistake 1️⃣: A generic or impersonal address can immediately signal a lack of research\n\nMistake 2️⃣: Grammatical errors and typos can quickly tank your application\n\nMistake 3️⃣: A weak introduction can cost you the reader's attention. Discover how to write a compelling hook by addressing a relatable pain point for the company and positioning yourself as a solution\n\nMistake 4️⃣: Vague descriptions don't impress; quantify your achievements instead\n\nMistake 5️⃣: Proper cover letter hygiene matters. Avoid oversharing personal information, using industry-specific jargon, and writing excessively long letters\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How NOT to Write a Cover Letter\n00:19 Not Addressing to an Actual Person\n01:29 Grammar Mistakes and Typos\n02:36 Not Spending Enough Time on the Hook\n04:25 Not Including Tangible Results\n05:47 Being Unaware of Cover Letter Hygiene\n06:28 Bonus Mistake\n06:45 Why Networking is Important for Cover Letters\n\n*RESOURCES I MENTION IN THE VIDEO*\nUse LinkedIn to network effectively - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nAustin’s Cover Letter article - https://cultivatedculture.com/cover-letter/\nAli Abdaal’s resume video - https://www.youtube.com/watch?v=MqXjqOy-TA8&t=1398s\nCover Letter deal-break article - https://www.topresume.com/career-advice/officehours-worst-resume-deal-breaker-mistakes\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#coverletter #jobsearch #resume", "Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID)", "xudcyY06PiI", 1, 416, false, "https://www.youtube.com/watch?v=xudcyY06PiI", "/downloads/Jeff Su/2023-07-18 Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID)/Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID) [xudcyY06PiI].mp4", false, ~U[2023-07-18 13:00:45Z]] 16:41:58.374 [debug] QUERY OK source="sources" db=0.2ms idle=129.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:41:58.374 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:41:58.375 [debug] QUERY OK source="media_items" db=0.2ms idle=5.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [65] 16:41:58.375 [info] Kicking off download for media item #65 (xudcyY06PiI) 16:41:58.377 [debug] QUERY OK source="tasks" db=0.2ms idle=3.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [69, 65, ~U[2026-04-23 14:41:58Z], ~U[2026-04-23 14:41:58Z]] 16:41:58.377 [debug] Current batch of media processed. Will check again in 1000ms 16:41:59.378 [debug] Current batch of media processed. Will check again in 1000ms 16:42:00.211 [info] {"source":"oban","duration":353,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:42:00.379 [debug] Current batch of media processed. Will check again in 1000ms 16:42:01.380 [debug] Current batch of media processed. Will check again in 1000ms 16:42:02.382 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🧑🏻\u200D💻\u00A0Make a copy of the worksheet: https://www.jeffsu.org/how-to-onboard-successfully/\n\n📘\u00A0Buy the book: https://amzn.to/3XzdZPA\n\nIn this video, I share 4 critical lessons from \"The First 90 Days\" by Dr. Michael Watkins, a former Harvard Business School professor. \n\nWe examine how new hires can swiftly reach the breakeven point—the point where you have produced as much value as you have received from your organization.\n\nFirstly, we need to understand our own blindspots.\n\nSecondly, we need a systematic plan to accelerate our learning. This involves the use of a 'Learning Agenda,' a structured set of questions to focus your learning during the onboarding process, enabling you to manage information overload effectively.\n\nThirdly, we discuss how to negotiate success with your manager, emphasizing the importance of setting the right expectations and regularly reviewing performance metrics.\n\nFinally, we explore how to secure early wins with colleagues, underlining that positive first impressions formed within the first 30 days can set you up for long-term success.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 What does “success” look like for new hires?\n00:40 Common onboarding mistakes for new hires\n01:02 How to create a virtuous cycle ASAP\n01:26 Understand your blindspots\n03:42 Accelerate your learning systematically\n05:11 Negotiate success with your boss\n06:19 Secure early wins with colleagues\n07:41 Summary of the First 90 Days\n\n*RESOURCES I MENTION IN THE VIDEO*\nWhat makes a Great Manager - https://youtu.be/84kPR_NDjI8\nCreate a 30-60-90 Onboarding Plan - https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#thefirst90days #onboarding #careertips", "duration" => 482, "filename" => "/downloads/Jeff Su/2023-07-04 Starting a New Job? Here's a 90-Day Plan from Harvard/Starting a New Job? Here's a 90-Day Plan from Harvard [KcTI98JWLwE].mp4", "id" => "KcTI98JWLwE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KcTI98JWLwE", "playlist_index" => 66, "timestamp" => 1688475614, "title" => "Starting a New Job? Here's a 90-Day Plan from Harvard", "upload_date" => "20230704"} 16:42:02.383 [debug] QUERY OK source="sources" db=0.3ms idle=1138.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:42:02.383 [debug] QUERY OK source="sources" db=0.2ms idle=658.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:02.384 [debug] QUERY OK source="media_items" db=0.4ms idle=140.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-04 13:00:14Z], 1] 16:42:02.387 [debug] QUERY OK source="media_items" db=1.9ms idle=140.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🧑🏻\u200D💻\u00A0Make a copy of the worksheet: https://www.jeffsu.org/how-to-onboard-successfully/\n\n📘\u00A0Buy the book: https://amzn.to/3XzdZPA\n\nIn this video, I share 4 critical lessons from \"The First 90 Days\" by Dr. Michael Watkins, a former Harvard Business School professor. \n\nWe examine how new hires can swiftly reach the breakeven point—the point where you have produced as much value as you have received from your organization.\n\nFirstly, we need to understand our own blindspots.\n\nSecondly, we need a systematic plan to accelerate our learning. This involves the use of a 'Learning Agenda,' a structured set of questions to focus your learning during the onboarding process, enabling you to manage information overload effectively.\n\nThirdly, we discuss how to negotiate success with your manager, emphasizing the importance of setting the right expectations and regularly reviewing performance metrics.\n\nFinally, we explore how to secure early wins with colleagues, underlining that positive first impressions formed within the first 30 days can set you up for long-term success.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 What does “success” look like for new hires?\n00:40 Common onboarding mistakes for new hires\n01:02 How to create a virtuous cycle ASAP\n01:26 Understand your blindspots\n03:42 Accelerate your learning systematically\n05:11 Negotiate success with your boss\n06:19 Secure early wins with colleagues\n07:41 Summary of the First 90 Days\n\n*RESOURCES I MENTION IN THE VIDEO*\nWhat makes a Great Manager - https://youtu.be/84kPR_NDjI8\nCreate a 30-60-90 Onboarding Plan - https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#thefirst90days #onboarding #careertips", "Starting a New Job? Here's a 90-Day Plan from Harvard", "cf2d0739-c2d9-4d4a-a948-888f11d749be", false, "KcTI98JWLwE", 1, [], 482, false, "https://www.youtube.com/watch?v=KcTI98JWLwE", 66, "/downloads/Jeff Su/2023-07-04 Starting a New Job? Here's a 90-Day Plan from Harvard/Starting a New Job? Here's a 90-Day Plan from Harvard [KcTI98JWLwE].mp4", false, false, 99, ~U[2023-07-04 13:00:14Z], ~U[2026-04-23 14:42:02Z], ~U[2026-04-23 14:42:02Z], "🧑🏻\u200D💻\u00A0Make a copy of the worksheet: https://www.jeffsu.org/how-to-onboard-successfully/\n\n📘\u00A0Buy the book: https://amzn.to/3XzdZPA\n\nIn this video, I share 4 critical lessons from \"The First 90 Days\" by Dr. Michael Watkins, a former Harvard Business School professor. \n\nWe examine how new hires can swiftly reach the breakeven point—the point where you have produced as much value as you have received from your organization.\n\nFirstly, we need to understand our own blindspots.\n\nSecondly, we need a systematic plan to accelerate our learning. This involves the use of a 'Learning Agenda,' a structured set of questions to focus your learning during the onboarding process, enabling you to manage information overload effectively.\n\nThirdly, we discuss how to negotiate success with your manager, emphasizing the importance of setting the right expectations and regularly reviewing performance metrics.\n\nFinally, we explore how to secure early wins with colleagues, underlining that positive first impressions formed within the first 30 days can set you up for long-term success.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 What does “success” look like for new hires?\n00:40 Common onboarding mistakes for new hires\n01:02 How to create a virtuous cycle ASAP\n01:26 Understand your blindspots\n03:42 Accelerate your learning systematically\n05:11 Negotiate success with your boss\n06:19 Secure early wins with colleagues\n07:41 Summary of the First 90 Days\n\n*RESOURCES I MENTION IN THE VIDEO*\nWhat makes a Great Manager - https://youtu.be/84kPR_NDjI8\nCreate a 30-60-90 Onboarding Plan - https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#thefirst90days #onboarding #careertips", "Starting a New Job? Here's a 90-Day Plan from Harvard", "KcTI98JWLwE", 1, 482, false, "https://www.youtube.com/watch?v=KcTI98JWLwE", "/downloads/Jeff Su/2023-07-04 Starting a New Job? Here's a 90-Day Plan from Harvard/Starting a New Job? Here's a 90-Day Plan from Harvard [KcTI98JWLwE].mp4", false, ~U[2023-07-04 13:00:14Z]] 16:42:02.388 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=143.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:02.389 [debug] QUERY OK source="media_profiles" db=0.3ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:42:02.390 [debug] QUERY OK source="media_items" db=0.4ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [66] 16:42:02.390 [info] Kicking off download for media item #66 (KcTI98JWLwE) 16:42:02.393 [debug] QUERY OK source="tasks" db=0.3ms idle=3.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [70, 66, ~U[2026-04-23 14:42:02Z], ~U[2026-04-23 14:42:02Z]] 16:42:02.393 [debug] Current batch of media processed. Will check again in 1000ms 16:42:02.779 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0-0gFuDwmXI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/15/54/15545ce71ab3e41ade561598c6881bf6393f0c42ce23494a6247f812c1e4adfa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:42:02.820 [debug] Running yt-dlp command for action: download_thumbnail 16:42:02.822 [debug] QUERY OK source="settings" db=0.3ms idle=431.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:02.822 [debug] QUERY OK source="settings" db=0.2ms idle=430.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:02.823 [debug] QUERY OK source="settings" db=0.5ms idle=430.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:02.824 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0-0gFuDwmXI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/13/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/77/da/77da452ae5141fbe1b24a8176042435becbab90fd2c3bafaf72d4b50c218b709.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:42:03.393 [debug] Current batch of media processed. Will check again in 1000ms 16:42:04.394 [debug] Current batch of media processed. Will check again in 1000ms 16:42:04.459 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iRTK-jsfleg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/14/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/f7/f9/f7f98eb5aa7c42b7590a7319085fc43238fb20922496ef346e08faa7667ea65e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:42:04.460 [debug] QUERY OK db=0.1ms idle=730.5ms begin [] 16:42:04.461 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:41:58Z], "/downloads/Jeff Su/2025-09-23 95% of People STILL Prompt ChatGPT-5 Wrong/95% of People STILL Prompt ChatGPT-5 Wrong [iRTK-jsfleg].mp4", "/downloads/Jeff Su/2025-09-23 95% of People STILL Prompt ChatGPT-5 Wrong/95% of People STILL Prompt ChatGPT-5 Wrong [iRTK-jsfleg].info.json", "/downloads/Jeff Su/2025-09-23 95% of People STILL Prompt ChatGPT-5 Wrong/95% of People STILL Prompt ChatGPT-5 Wrong [iRTK-jsfleg].nfo", "/downloads/Jeff Su/2025-09-23 95% of People STILL Prompt ChatGPT-5 Wrong/95% of People STILL Prompt ChatGPT-5 Wrong [iRTK-jsfleg]-thumb.jpg", ~U[2026-04-23 14:42:04Z], 14] 16:42:04.462 [debug] QUERY OK source="media_metadata" db=0.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/14/metadata.json.gz", "/config/metadata/media_items/14/thumbnail.jpg", 14, ~U[2026-04-23 14:42:04Z], ~U[2026-04-23 14:42:04Z]] 16:42:04.463 [debug] QUERY OK db=0.4ms commit [] 16:42:04.465 [debug] QUERY OK source="media_items" db=1.5ms idle=219.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [35178752, ~U[2026-04-23 14:42:04Z], 14] 16:42:04.466 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:42:04.466 [info] {"args":{"id":14},"id":18,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":39911837,"event":"job:stop","queue_time":185553051,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:42:04.474 [info] {"args":{"id":15},"id":19,"meta":{},"system_time":1776955324474019116,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:42:04.476 [debug] QUERY OK source="media_items" db=1.8ms idle=230.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" = ?) [15] 16:42:04.476 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:42:04.477 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=13.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:04.478 [debug] QUERY OK source="media_profiles" db=0.4ms idle=12.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] 16:42:04.478 [debug] QUERY OK source="media_items" db=0.3ms idle=11.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [15] 16:42:04.495 [debug] QUERY OK source="media_metadata" db=0.3ms idle=20.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [15] 16:42:04.496 [debug] QUERY OK source="media_profiles" db=0.5ms idle=19.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] 16:42:04.497 [debug] QUERY OK source="settings" db=0.5ms idle=19.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:04.497 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=19.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:04.498 [debug] Running yt-dlp command for action: get_downloadable_status 16:42:04.499 [debug] QUERY OK source="settings" db=0.2ms idle=20.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:04.500 [debug] QUERY OK source="settings" db=0.6ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:04.500 [debug] QUERY OK source="settings" db=0.7ms 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 [] 16:42:04.501 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZEyRtkNmcEQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b9/0d/b90dca87c7a19a248e7ca856b769bcf687b2084cdba185ebe92229084d97050c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:42:05.395 [debug] Current batch of media processed. Will check again in 1000ms 16:42:06.397 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=136\n\n🖥️\u00A0You can make a copy of the 8 ChatGPT prompts here: https://www.jeffsu.org/top-8-chatgpt-productivity-tips-for-work/\n\nThis video reveals how to leverage OpenAI's ChatGPT to boost your efficiency, featuring 8 practical prompts every professional needs to know for productivity in the workplace!\n\nDiscover how ChatGPT can help with tasks like:\n\n1. Writing a concise, yet compelling self-evaluation that aligns with your company's key attributes.\n2. Creating a robust 30-60-90 day onboarding plan for new hires using the SMART framework.\n3. Crafting a high-quality project brief for your next cross-functional event.\n4. Analyzing feedback from various sources to derive actionable insights for future projects.\n5. Preparing captivating presentations by bridging the gap between your content and the audience's interests.\n6. Converting lengthy articles into concise LinkedIn posts for greater engagement.\n7. Developing a 30-60-90 day personal development plan for interns aspiring to become full-time employees.\n8. Brainstorming inclusive team-building activities suitable for diverse interests and backgrounds.\n\nExperience the true power of AI in enhancing productivity, be it in writing self-evaluations, onboarding new hires, or even creating team-building activities.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Real Footage of ChatGPT at Work\n00:34 ChatGPT to write Self-Evaluation\n01:36 Create an Onboarding Plan for New Hires\n02:31 Generate High Quality Project Briefs\n03:39 ChatGPT to Analyze Feedback\n05:07 Prepare Amazing Presentations\n06:36 ChatGPT to Prepare Social Media Posts\n07:29 Convert to Full-Time Employee\n08:17 Brainstorm Team Building Activities\n\n*RESOURCES I MENTION IN THE VIDEO*\nChatGPT for Job Search Part 1 - https://youtu.be/pmnY5V16GSE\nChatGPT for Job Search Part 2 - https://youtu.be/ZXmbb5fPfgk\nTop 10 Productivity Tips for Work - https://youtu.be/QHrWMMlVYRA\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatgpt #productivity #career", "duration" => 565, "filename" => "/downloads/Jeff Su/2023-06-20 Top 8 ChatGPT Productivity Tips for Work!/Top 8 ChatGPT Productivity Tips for Work! [Q07rFZtc2Ao].mp4", "id" => "Q07rFZtc2Ao", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Q07rFZtc2Ao", "playlist_index" => 67, "timestamp" => 1687266021, "title" => "Top 8 ChatGPT Productivity Tips for Work!", "upload_date" => "20230620"} 16:42:06.398 [debug] QUERY OK source="sources" db=0.3ms idle=662.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:42:06.399 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=154.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:06.399 [debug] QUERY OK source="media_items" db=0.4ms idle=155.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-20 13:00:21Z], 1] 16:42:06.403 [debug] QUERY OK source="media_items" db=2.1ms idle=156.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=136\n\n🖥️\u00A0You can make a copy of the 8 ChatGPT prompts here: https://www.jeffsu.org/top-8-chatgpt-productivity-tips-for-work/\n\nThis video reveals how to leverage OpenAI's ChatGPT to boost your efficiency, featuring 8 practical prompts every professional needs to know for productivity in the workplace!\n\nDiscover how ChatGPT can help with tasks like:\n\n1. Writing a concise, yet compelling self-evaluation that aligns with your company's key attributes.\n2. Creating a robust 30-60-90 day onboarding plan for new hires using the SMART framework.\n3. Crafting a high-quality project brief for your next cross-functional event.\n4. Analyzing feedback from various sources to derive actionable insights for future projects.\n5. Preparing captivating presentations by bridging the gap between your content and the audience's interests.\n6. Converting lengthy articles into concise LinkedIn posts for greater engagement.\n7. Developing a 30-60-90 day personal development plan for interns aspiring to become full-time employees.\n8. Brainstorming inclusive team-building activities suitable for diverse interests and backgrounds.\n\nExperience the true power of AI in enhancing productivity, be it in writing self-evaluations, onboarding new hires, or even creating team-building activities.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Real Footage of ChatGPT at Work\n00:34 ChatGPT to write Self-Evaluation\n01:36 Create an Onboarding Plan for New Hires\n02:31 Generate High Quality Project Briefs\n03:39 ChatGPT to Analyze Feedback\n05:07 Prepare Amazing Presentations\n06:36 ChatGPT to Prepare Social Media Posts\n07:29 Convert to Full-Time Employee\n08:17 Brainstorm Team Building Activities\n\n*RESOURCES I MENTION IN THE VIDEO*\nChatGPT for Job Search Part 1 - https://youtu.be/pmnY5V16GSE\nChatGPT for Job Search Part 2 - https://youtu.be/ZXmbb5fPfgk\nTop 10 Productivity Tips for Work - https://youtu.be/QHrWMMlVYRA\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatgpt #productivity #career", "Top 8 ChatGPT Productivity Tips for Work!", "2e7ae1fc-21c1-4d49-a377-15e65aee3189", false, "Q07rFZtc2Ao", 1, [], 565, false, "https://www.youtube.com/watch?v=Q07rFZtc2Ao", 67, "/downloads/Jeff Su/2023-06-20 Top 8 ChatGPT Productivity Tips for Work!/Top 8 ChatGPT Productivity Tips for Work! [Q07rFZtc2Ao].mp4", false, false, 99, ~U[2023-06-20 13:00:21Z], ~U[2026-04-23 14:42:06Z], ~U[2026-04-23 14:42:06Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=136\n\n🖥️\u00A0You can make a copy of the 8 ChatGPT prompts here: https://www.jeffsu.org/top-8-chatgpt-productivity-tips-for-work/\n\nThis video reveals how to leverage OpenAI's ChatGPT to boost your efficiency, featuring 8 practical prompts every professional needs to know for productivity in the workplace!\n\nDiscover how ChatGPT can help with tasks like:\n\n1. Writing a concise, yet compelling self-evaluation that aligns with your company's key attributes.\n2. Creating a robust 30-60-90 day onboarding plan for new hires using the SMART framework.\n3. Crafting a high-quality project brief for your next cross-functional event.\n4. Analyzing feedback from various sources to derive actionable insights for future projects.\n5. Preparing captivating presentations by bridging the gap between your content and the audience's interests.\n6. Converting lengthy articles into concise LinkedIn posts for greater engagement.\n7. Developing a 30-60-90 day personal development plan for interns aspiring to become full-time employees.\n8. Brainstorming inclusive team-building activities suitable for diverse interests and backgrounds.\n\nExperience the true power of AI in enhancing productivity, be it in writing self-evaluations, onboarding new hires, or even creating team-building activities.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Real Footage of ChatGPT at Work\n00:34 ChatGPT to write Self-Evaluation\n01:36 Create an Onboarding Plan for New Hires\n02:31 Generate High Quality Project Briefs\n03:39 ChatGPT to Analyze Feedback\n05:07 Prepare Amazing Presentations\n06:36 ChatGPT to Prepare Social Media Posts\n07:29 Convert to Full-Time Employee\n08:17 Brainstorm Team Building Activities\n\n*RESOURCES I MENTION IN THE VIDEO*\nChatGPT for Job Search Part 1 - https://youtu.be/pmnY5V16GSE\nChatGPT for Job Search Part 2 - https://youtu.be/ZXmbb5fPfgk\nTop 10 Productivity Tips for Work - https://youtu.be/QHrWMMlVYRA\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatgpt #productivity #career", "Top 8 ChatGPT Productivity Tips for Work!", "Q07rFZtc2Ao", 1, 565, false, "https://www.youtube.com/watch?v=Q07rFZtc2Ao", "/downloads/Jeff Su/2023-06-20 Top 8 ChatGPT Productivity Tips for Work!/Top 8 ChatGPT Productivity Tips for Work! [Q07rFZtc2Ao].mp4", false, ~U[2023-06-20 13:00:21Z]] 16:42:06.404 [debug] QUERY OK source="sources" db=0.4ms queue=0.2ms idle=159.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:06.406 [debug] QUERY OK source="media_profiles" db=1.0ms queue=1.4ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:42:06.407 [debug] QUERY OK source="media_items" db=0.4ms 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 [67] 16:42:06.407 [info] Kicking off download for media item #67 (Q07rFZtc2Ao) 16:42:06.422 [debug] QUERY OK source="tasks" db=11.4ms queue=0.1ms idle=6.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [71, 67, ~U[2026-04-23 14:42:06Z], ~U[2026-04-23 14:42:06Z]] 16:42:06.422 [debug] Current batch of media processed. Will check again in 1000ms 16:42:07.422 [debug] Current batch of media processed. Will check again in 1000ms 16:42:08.423 [debug] Current batch of media processed. Will check again in 1000ms 16:42:08.959 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0-0gFuDwmXI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/13/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/77/da/77da452ae5141fbe1b24a8176042435becbab90fd2c3bafaf72d4b50c218b709.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:42:08.962 [debug] QUERY OK db=0.1ms idle=718.0ms begin [] 16:42:08.963 [debug] QUERY OK source="media_items" db=1.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:42:02Z], "/downloads/Jeff Su/2025-10-07 How to Create Cinematic AI Videos (No-BS Guide)/How to Create Cinematic AI Videos (No-BS Guide) [0-0gFuDwmXI].mp4", "/downloads/Jeff Su/2025-10-07 How to Create Cinematic AI Videos (No-BS Guide)/How to Create Cinematic AI Videos (No-BS Guide) [0-0gFuDwmXI].info.json", "/downloads/Jeff Su/2025-10-07 How to Create Cinematic AI Videos (No-BS Guide)/How to Create Cinematic AI Videos (No-BS Guide) [0-0gFuDwmXI].nfo", "/downloads/Jeff Su/2025-10-07 How to Create Cinematic AI Videos (No-BS Guide)/How to Create Cinematic AI Videos (No-BS Guide) [0-0gFuDwmXI]-thumb.jpg", ~U[2026-04-23 14:42:08Z], 13] 16:42:08.970 [debug] QUERY OK source="media_metadata" db=6.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/13/metadata.json.gz", "/config/metadata/media_items/13/thumbnail.jpg", 13, ~U[2026-04-23 14:42:08Z], ~U[2026-04-23 14:42:08Z]] 16:42:08.971 [debug] QUERY OK db=0.7ms commit [] 16:42:08.974 [debug] QUERY OK source="media_items" db=2.6ms idle=728.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [61715645, ~U[2026-04-23 14:42:08Z], 13] 16:42:08.975 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:42:08.976 [info] {"args":{"id":13},"id":17,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":49487449,"event":"job:stop","queue_time":184486793,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:42:08.983 [info] {"args":{"id":16},"id":20,"meta":{},"system_time":1776955328983057960,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:42:08.984 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=241.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" = ?) [16] 16:42:08.985 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:42:08.986 [debug] QUERY OK source="sources" db=1.0ms idle=13.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:08.987 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=12.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] 16:42:08.989 [debug] QUERY OK source="media_items" db=1.0ms idle=11.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 [16] 16:42:08.990 [debug] QUERY OK source="media_metadata" db=0.2ms idle=7.4ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [16] 16:42:08.991 [debug] QUERY OK source="media_profiles" db=0.8ms 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] 16:42:08.992 [debug] QUERY OK source="settings" db=0.3ms idle=5.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:08.993 [debug] QUERY OK source="settings" db=0.8ms 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 [] 16:42:08.995 [debug] Running yt-dlp command for action: get_downloadable_status 16:42:08.998 [debug] QUERY OK source="settings" db=2.2ms idle=6.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:08.998 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:42:08.999 [debug] QUERY OK source="settings" db=0.2ms idle=7.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:08.999 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=31cp_OXKzkI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/be/60/be60870e41510d126dbb7266894b91213d32cc6cc6ecf3e718fce49cfd8db902.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:42:09.424 [debug] Current batch of media processed. Will check again in 1000ms 16:42:10.426 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=135\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nHere are 8 powerful, but often overlooked, LinkedIn features that can significantly enhance your job search: \n\n1. *Message Anyone for Free:* If you're part of the same LinkedIn group, you can directly message anyone, including third-degree connections, at no cost. The trick here is to join LinkedIn groups related to your field, school, or company.\n\n2. *People Tab on LinkedIn Pages:* Explore the 'People' tab on your university or prospective employer's LinkedIn page to find potential connections. A pro tip is to copy their names and search within relevant groups to message them directly.\n\n3. *'I'm Interested' Feature:* Simply visiting the 'About' tab of a company's page and clicking 'I'm Interested' could make recruiters take note of your profile. Remember, this feature may not be available on every page, and its effectiveness may vary.\n\n4. *Career Explorer:* This tool helps you understand the career transitions of others in your industry. Use the data provided to shape your own career path, upgrade your skills, and optimize your LinkedIn profile with the most searched titles in your industry.\n\n5. *Skill Assessments:* Demonstrating your skills through LinkedIn's assessments can increase your visibility to recruiters. Professionals at all stages of their career can benefit from this feature.\n\n6. *Career Break Feature:* If you've had an employment gap, you can explain it using the Career Break feature. However, instead of giving a weak impression, creatively use your profile to showcase what you're looking for next.\n\n7. *Featured Section for Job Seekers:* The 'Featured' section isn't just for content creators. As a job seeker, this section can be utilized to display your resume, portfolio, or other significant work.\n\n8. *Personalize Connection Requests:* When using LinkedIn's mobile app, remember to 'Personalize request' rather than simply clicking 'Connect'. This approach can increase your chances of your connection request being accepted.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Actually useful LinkedIn tips for Job Seekers\n00:16 #1 Message anyone on LinkedIn for free\n01:07 #2 Leverage the People tab on LinkedIn Pages\n02:07 #3 Let Recruiters on LinkedIn know you’re interested\n02:38 #4 LinkedIn Career Explorer tool\n04:11 LinkedIn Companion App (Dex)\n05:22 #5 Skill Assessments\n06:30 #6 Career Break\n07:31 #7 Featured Section for Job Search\n08:17 #8 Tip for LinkedIn Mobile App\n\n*RESOURCES I MENTION IN THE VIDEO*\nEffective networking tips for LinkedIn - https://youtu.be/CwjwnHJE5sU\nCareer Explorer tool - https://linkedin.github.io/career-explorer/\nFree Featured Section thumbnail - https://www.jeffsu.org/8-genius-linkedin-features-for-job-seekers/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#linkedin #jobsearch", "duration" => 527, "filename" => "/downloads/Jeff Su/2023-06-06 Job Seekers on LinkedIn Need to Know These 8 Things/Job Seekers on LinkedIn Need to Know These 8 Things [D7DIHNK2DYw].mp4", "id" => "D7DIHNK2DYw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=D7DIHNK2DYw", "playlist_index" => 68, "timestamp" => 1686056406, "title" => "Job Seekers on LinkedIn Need to Know These 8 Things", "upload_date" => "20230606"} 16:42:10.427 [debug] QUERY OK source="sources" db=0.6ms idle=682.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:42:10.428 [debug] QUERY OK source="sources" db=0.3ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:10.429 [debug] QUERY OK source="media_items" db=0.4ms idle=184.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-06 13:00:06Z], 1] 16:42:10.433 [debug] QUERY OK source="media_items" db=2.5ms idle=185.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=135\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nHere are 8 powerful, but often overlooked, LinkedIn features that can significantly enhance your job search: \n\n1. *Message Anyone for Free:* If you're part of the same LinkedIn group, you can directly message anyone, including third-degree connections, at no cost. The trick here is to join LinkedIn groups related to your field, school, or company.\n\n2. *People Tab on LinkedIn Pages:* Explore the 'People' tab on your university or prospective employer's LinkedIn page to find potential connections. A pro tip is to copy their names and search within relevant groups to message them directly.\n\n3. *'I'm Interested' Feature:* Simply visiting the 'About' tab of a company's page and clicking 'I'm Interested' could make recruiters take note of your profile. Remember, this feature may not be available on every page, and its effectiveness may vary.\n\n4. *Career Explorer:* This tool helps you understand the career transitions of others in your industry. Use the data provided to shape your own career path, upgrade your skills, and optimize your LinkedIn profile with the most searched titles in your industry.\n\n5. *Skill Assessments:* Demonstrating your skills through LinkedIn's assessments can increase your visibility to recruiters. Professionals at all stages of their career can benefit from this feature.\n\n6. *Career Break Feature:* If you've had an employment gap, you can explain it using the Career Break feature. However, instead of giving a weak impression, creatively use your profile to showcase what you're looking for next.\n\n7. *Featured Section for Job Seekers:* The 'Featured' section isn't just for content creators. As a job seeker, this section can be utilized to display your resume, portfolio, or other significant work.\n\n8. *Personalize Connection Requests:* When using LinkedIn's mobile app, remember to 'Personalize request' rather than simply clicking 'Connect'. This approach can increase your chances of your connection request being accepted.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Actually useful LinkedIn tips for Job Seekers\n00:16 #1 Message anyone on LinkedIn for free\n01:07 #2 Leverage the People tab on LinkedIn Pages\n02:07 #3 Let Recruiters on LinkedIn know you’re interested\n02:38 #4 LinkedIn Career Explorer tool\n04:11 LinkedIn Companion App (Dex)\n05:22 #5 Skill Assessments\n06:30 #6 Career Break\n07:31 #7 Featured Section for Job Search\n08:17 #8 Tip for LinkedIn Mobile App\n\n*RESOURCES I MENTION IN THE VIDEO*\nEffective networking tips for LinkedIn - https://youtu.be/CwjwnHJE5sU\nCareer Explorer tool - https://linkedin.github.io/career-explorer/\nFree Featured Section thumbnail - https://www.jeffsu.org/8-genius-linkedin-features-for-job-seekers/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#linkedin #jobsearch", "Job Seekers on LinkedIn Need to Know These 8 Things", "e47ed46f-02c1-4922-86bf-03071ff5c85f", false, "D7DIHNK2DYw", 1, [], 527, false, "https://www.youtube.com/watch?v=D7DIHNK2DYw", 68, "/downloads/Jeff Su/2023-06-06 Job Seekers on LinkedIn Need to Know These 8 Things/Job Seekers on LinkedIn Need to Know These 8 Things [D7DIHNK2DYw].mp4", false, false, 99, ~U[2023-06-06 13:00:06Z], ~U[2026-04-23 14:42:10Z], ~U[2026-04-23 14:42:10Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=135\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nHere are 8 powerful, but often overlooked, LinkedIn features that can significantly enhance your job search: \n\n1. *Message Anyone for Free:* If you're part of the same LinkedIn group, you can directly message anyone, including third-degree connections, at no cost. The trick here is to join LinkedIn groups related to your field, school, or company.\n\n2. *People Tab on LinkedIn Pages:* Explore the 'People' tab on your university or prospective employer's LinkedIn page to find potential connections. A pro tip is to copy their names and search within relevant groups to message them directly.\n\n3. *'I'm Interested' Feature:* Simply visiting the 'About' tab of a company's page and clicking 'I'm Interested' could make recruiters take note of your profile. Remember, this feature may not be available on every page, and its effectiveness may vary.\n\n4. *Career Explorer:* This tool helps you understand the career transitions of others in your industry. Use the data provided to shape your own career path, upgrade your skills, and optimize your LinkedIn profile with the most searched titles in your industry.\n\n5. *Skill Assessments:* Demonstrating your skills through LinkedIn's assessments can increase your visibility to recruiters. Professionals at all stages of their career can benefit from this feature.\n\n6. *Career Break Feature:* If you've had an employment gap, you can explain it using the Career Break feature. However, instead of giving a weak impression, creatively use your profile to showcase what you're looking for next.\n\n7. *Featured Section for Job Seekers:* The 'Featured' section isn't just for content creators. As a job seeker, this section can be utilized to display your resume, portfolio, or other significant work.\n\n8. *Personalize Connection Requests:* When using LinkedIn's mobile app, remember to 'Personalize request' rather than simply clicking 'Connect'. This approach can increase your chances of your connection request being accepted.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Actually useful LinkedIn tips for Job Seekers\n00:16 #1 Message anyone on LinkedIn for free\n01:07 #2 Leverage the People tab on LinkedIn Pages\n02:07 #3 Let Recruiters on LinkedIn know you’re interested\n02:38 #4 LinkedIn Career Explorer tool\n04:11 LinkedIn Companion App (Dex)\n05:22 #5 Skill Assessments\n06:30 #6 Career Break\n07:31 #7 Featured Section for Job Search\n08:17 #8 Tip for LinkedIn Mobile App\n\n*RESOURCES I MENTION IN THE VIDEO*\nEffective networking tips for LinkedIn - https://youtu.be/CwjwnHJE5sU\nCareer Explorer tool - https://linkedin.github.io/career-explorer/\nFree Featured Section thumbnail - https://www.jeffsu.org/8-genius-linkedin-features-for-job-seekers/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n (truncated) 16:42:10.434 [debug] QUERY OK source="sources" db=0.3ms idle=189.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:10.435 [debug] QUERY OK source="media_profiles" db=0.9ms queue=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] 16:42:10.437 [debug] QUERY OK source="media_items" db=0.9ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [68] 16:42:10.437 [info] Kicking off download for media item #68 (D7DIHNK2DYw) 16:42:10.440 [debug] QUERY OK source="tasks" db=0.2ms idle=5.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [72, 68, ~U[2026-04-23 14:42:10Z], ~U[2026-04-23 14:42:10Z]] 16:42:10.440 [debug] Current batch of media processed. Will check again in 1000ms 16:42:11.376 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZEyRtkNmcEQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b9/0d/b90dca87c7a19a248e7ca856b769bcf687b2084cdba185ebe92229084d97050c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:42:11.379 [debug] Running yt-dlp command for action: download 16:42:11.382 [debug] QUERY OK source="settings" db=2.2ms queue=0.2ms idle=942.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:11.384 [debug] QUERY OK source="settings" db=1.4ms idle=943.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:11.385 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=944.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:11.385 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZEyRtkNmcEQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d4/50/d45052d1cbcbfff4f4751fcb44844836605775102469659c10157965e2562fc5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:42:11.440 [debug] Current batch of media processed. Will check again in 1000ms 16:42:12.441 [debug] Current batch of media processed. Will check again in 1000ms 16:42:13.442 [debug] Current batch of media processed. Will check again in 1000ms 16:42:14.444 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🌟 Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=134\n\nStruggling with file management? In this video, I reveal my simple file management system and share my top 5 file management tips that can help streamline your digital life!\n\nI discuss the importance of balancing form (organization) and function (searchability) when it comes to managing your files. \n\nI then provide an overview of my easy-to-use framework for file hierarchy, limiting folder levels to a maximum of five, with each level accommodating up to 99 folders.\n\nI explain how I use Google Drive, and I also reveal the logic behind my file naming conventions, including two effective ways: date-based and alphabetical sorting.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Different File Management Systems\n00:40 How I Organize My Files\n02:47 How I Name My Files\n04:36 Digital + Physical De-cluttering\n05:19 Tip 1 - Organize Files by Where You Use it\n05:50 Tip 2 - Leverage Native Features\n06:36 Tip 3 - Attach Keyword to File\n07:31 Tip 4 - Selectively Star or Flag files\n07:59 Tip 5 - Know when to Create a Shortcut\n09:03 Two File Management Rules to Live By\n\n*RESOURCES I MENTION IN THE VIDEO*\nThe Oakywood iPhone Magsafe Shelf Mount: http://shrsl.com/42oov\nMy Alfred Tutorial: https://youtu.be/FXV-zwkRMxo\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=134\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#filemanagement #productivity #organization", "duration" => 566, "filename" => "/downloads/Jeff Su/2023-05-23 This Simple File Management System Changed My Life!/This Simple File Management System Changed My Life! [MM-MPS57qKA].mp4", "id" => "MM-MPS57qKA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=MM-MPS57qKA", "playlist_index" => 69, "timestamp" => 1684847701, "title" => "This Simple File Management System Changed My Life!", "upload_date" => "20230523"} 16:42:14.445 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1200.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:42:14.447 [debug] QUERY OK source="sources" db=0.9ms idle=1202.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:14.448 [debug] QUERY OK source="media_items" db=0.6ms idle=1203.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-05-23 13:15:01Z], 1] 16:42:14.451 [debug] QUERY OK source="media_items" db=2.0ms idle=696.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🌟 Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=134\n\nStruggling with file management? In this video, I reveal my simple file management system and share my top 5 file management tips that can help streamline your digital life!\n\nI discuss the importance of balancing form (organization) and function (searchability) when it comes to managing your files. \n\nI then provide an overview of my easy-to-use framework for file hierarchy, limiting folder levels to a maximum of five, with each level accommodating up to 99 folders.\n\nI explain how I use Google Drive, and I also reveal the logic behind my file naming conventions, including two effective ways: date-based and alphabetical sorting.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Different File Management Systems\n00:40 How I Organize My Files\n02:47 How I Name My Files\n04:36 Digital + Physical De-cluttering\n05:19 Tip 1 - Organize Files by Where You Use it\n05:50 Tip 2 - Leverage Native Features\n06:36 Tip 3 - Attach Keyword to File\n07:31 Tip 4 - Selectively Star or Flag files\n07:59 Tip 5 - Know when to Create a Shortcut\n09:03 Two File Management Rules to Live By\n\n*RESOURCES I MENTION IN THE VIDEO*\nThe Oakywood iPhone Magsafe Shelf Mount: http://shrsl.com/42oov\nMy Alfred Tutorial: https://youtu.be/FXV-zwkRMxo\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=134\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#filemanagement #productivity #organization", "This Simple File Management System Changed My Life!", "138d1a70-7f04-4ea2-b85a-ed50e51d3cac", false, "MM-MPS57qKA", 1, [], 566, false, "https://www.youtube.com/watch?v=MM-MPS57qKA", 69, "/downloads/Jeff Su/2023-05-23 This Simple File Management System Changed My Life!/This Simple File Management System Changed My Life! [MM-MPS57qKA].mp4", false, false, 99, ~U[2023-05-23 13:15:01Z], ~U[2026-04-23 14:42:14Z], ~U[2026-04-23 14:42:14Z], "🌟 Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=134\n\nStruggling with file management? In this video, I reveal my simple file management system and share my top 5 file management tips that can help streamline your digital life!\n\nI discuss the importance of balancing form (organization) and function (searchability) when it comes to managing your files. \n\nI then provide an overview of my easy-to-use framework for file hierarchy, limiting folder levels to a maximum of five, with each level accommodating up to 99 folders.\n\nI explain how I use Google Drive, and I also reveal the logic behind my file naming conventions, including two effective ways: date-based and alphabetical sorting.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Different File Management Systems\n00:40 How I Organize My Files\n02:47 How I Name My Files\n04:36 Digital + Physical De-cluttering\n05:19 Tip 1 - Organize Files by Where You Use it\n05:50 Tip 2 - Leverage Native Features\n06:36 Tip 3 - Attach Keyword to File\n07:31 Tip 4 - Selectively Star or Flag files\n07:59 Tip 5 - Know when to Create a Shortcut\n09:03 Two File Management Rules to Live By\n\n*RESOURCES I MENTION IN THE VIDEO*\nThe Oakywood iPhone Magsafe Shelf Mount: http://shrsl.com/42oov\nMy Alfred Tutorial: https://youtu.be/FXV-zwkRMxo\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=134\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#filemanagement #productivity #organization", "This Simple File Management System Changed My Life!", "MM-MPS57qKA", 1, 566, false, "https://www.youtube.com/watch?v=MM-MPS57qKA", "/downloads/Jeff Su/2023-05-23 This Simple File Management System Changed My Life!/This Simple File Management System Changed My Life! [MM-MPS57qKA].mp4", false, ~U[2023-05-23 13:15:01Z]] 16:42:14.452 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=207.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:14.452 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:42:14.453 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [69] 16:42:14.453 [info] Kicking off download for media item #69 (MM-MPS57qKA) 16:42:14.456 [debug] QUERY OK source="tasks" db=0.3ms idle=4.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [73, 69, ~U[2026-04-23 14:42:14Z], ~U[2026-04-23 14:42:14Z]] 16:42:14.457 [debug] Current batch of media processed. Will check again in 1000ms 16:42:15.457 [debug] Current batch of media processed. Will check again in 1000ms 16:42:15.561 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=31cp_OXKzkI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/be/60/be60870e41510d126dbb7266894b91213d32cc6cc6ecf3e718fce49cfd8db902.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:42:15.564 [debug] Running yt-dlp command for action: download 16:42:15.566 [debug] QUERY OK source="settings" db=1.7ms queue=0.1ms idle=1110.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:15.568 [debug] QUERY OK source="settings" db=1.3ms queue=0.4ms idle=1111.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:15.570 [debug] QUERY OK source="settings" db=0.9ms idle=1112.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:15.573 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=31cp_OXKzkI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/36/4b/364b5c81f05bf3697c670247994ba2a5cedbede2b3fd7e8e8b0276608fbfe3a1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:42:16.458 [debug] Current batch of media processed. Will check again in 1000ms 16:42:17.460 [debug] Current batch of media processed. Will check again in 1000ms 16:42:18.254 [info] {"source":"oban","duration":993,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:42:18.461 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n😖\u00A0The job search process can be filled with uncertainty and conflicting advice. But we do know from Forbes and Resumebuilder that 46% of job seekers utilize #ChatGPT to assist them, and 69% of those individuals receive more interviews. To make the most of AI assistance, it's essential to provide high-quality prompts at each stage of the job search process.\n\nOne effective way to utilize ChatGPT is by enhancing your networking skills. For instance, to connect with a professional on #LinkedIn, you can use ChatGPT to analyze their profile and generate a personalized connection request. Moreover, ChatGPT can help you come up with tailored questions to ask during coffee chats, showing the professional that you've done your homework and are serious about learning from them.\n\nChatGPT can also help you compose follow-up emails after an interview, emphasizing your transferable skills and mentioning specific details from the conversation to show you were paying attention. Additionally, ChatGPT can guide you through salary negotiations by simulating a realistic conversation between a job seeker and a recruiter. By practicing with AI-generated responses, you can enter the negotiation process with more confidence and poise.\n\nPart 1 ➡️ https://youtu.be/pmnY5V16GSE\n\n\n*TIMESTAMPS*\n00:00 Why Job Seekers are using ChatGPT\n01:06 Land Coffee Chats using ChatGPT\n03:40 Smart Questions to ask during Coffee Chats\n04:59 Use ChatGPT to find Questions for the Interviewer\n06:04 Write a Thank You Email using ChatGPT\n06:54 How ChatGPT can help with Salary Negotiation\n08:24 ChatGPT for Job Search: Part 1\n\n*RESOURCES I MENTION IN THE VIDEO*\nPrompts mentioned in this video - https://www.jeffsu.org/chatgpt-for-job-search-part-2\nChatGPT for Job Search (Part 1) - https://youtu.be/pmnY5V16GSE\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch", "duration" => 522, "filename" => "/downloads/Jeff Su/2023-05-08 I wish every Job Seeker would watch this/I wish every Job Seeker would watch this [ZXmbb5fPfgk].mp4", "id" => "ZXmbb5fPfgk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZXmbb5fPfgk", "playlist_index" => 70, "timestamp" => 1683550829, "title" => "I wish every Job Seeker would watch this", "upload_date" => "20230508"} 16:42:18.462 [debug] QUERY OK source="sources" db=0.3ms idle=1217.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:42:18.462 [debug] QUERY OK source="sources" db=0.2ms idle=1218.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:18.463 [debug] QUERY OK source="media_items" db=0.5ms idle=702.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-05-08 13:00:29Z], 1] 16:42:19.641 [debug] QUERY OK source="media_items" db=1176.8ms idle=219.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n😖\u00A0The job search process can be filled with uncertainty and conflicting advice. But we do know from Forbes and Resumebuilder that 46% of job seekers utilize #ChatGPT to assist them, and 69% of those individuals receive more interviews. To make the most of AI assistance, it's essential to provide high-quality prompts at each stage of the job search process.\n\nOne effective way to utilize ChatGPT is by enhancing your networking skills. For instance, to connect with a professional on #LinkedIn, you can use ChatGPT to analyze their profile and generate a personalized connection request. Moreover, ChatGPT can help you come up with tailored questions to ask during coffee chats, showing the professional that you've done your homework and are serious about learning from them.\n\nChatGPT can also help you compose follow-up emails after an interview, emphasizing your transferable skills and mentioning specific details from the conversation to show you were paying attention. Additionally, ChatGPT can guide you through salary negotiations by simulating a realistic conversation between a job seeker and a recruiter. By practicing with AI-generated responses, you can enter the negotiation process with more confidence and poise.\n\nPart 1 ➡️ https://youtu.be/pmnY5V16GSE\n\n\n*TIMESTAMPS*\n00:00 Why Job Seekers are using ChatGPT\n01:06 Land Coffee Chats using ChatGPT\n03:40 Smart Questions to ask during Coffee Chats\n04:59 Use ChatGPT to find Questions for the Interviewer\n06:04 Write a Thank You Email using ChatGPT\n06:54 How ChatGPT can help with Salary Negotiation\n08:24 ChatGPT for Job Search: Part 1\n\n*RESOURCES I MENTION IN THE VIDEO*\nPrompts mentioned in this video - https://www.jeffsu.org/chatgpt-for-job-search-part-2\nChatGPT for Job Search (Part 1) - https://youtu.be/pmnY5V16GSE\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch", "I wish every Job Seeker would watch this", "928d95c2-a175-418f-94f2-ac8f73e96fe9", false, "ZXmbb5fPfgk", 1, [], 522, false, "https://www.youtube.com/watch?v=ZXmbb5fPfgk", 70, "/downloads/Jeff Su/2023-05-08 I wish every Job Seeker would watch this/I wish every Job Seeker would watch this [ZXmbb5fPfgk].mp4", false, false, 99, ~U[2023-05-08 13:00:29Z], ~U[2026-04-23 14:42:18Z], ~U[2026-04-23 14:42:18Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n😖\u00A0The job search process can be filled with uncertainty and conflicting advice. But we do know from Forbes and Resumebuilder that 46% of job seekers utilize #ChatGPT to assist them, and 69% of those individuals receive more interviews. To make the most of AI assistance, it's essential to provide high-quality prompts at each stage of the job search process.\n\nOne effective way to utilize ChatGPT is by enhancing your networking skills. For instance, to connect with a professional on #LinkedIn, you can use ChatGPT to analyze their profile and generate a personalized connection request. Moreover, ChatGPT can help you come up with tailored questions to ask during coffee chats, showing the professional that you've done your homework and are serious about learning from them.\n\nChatGPT can also help you compose follow-up emails after an interview, emphasizing your transferable skills and mentioning specific details from the conversation to show you were paying attention. Additionally, ChatGPT can guide you through salary negotiations by simulating a realistic conversation between a job seeker and a recruiter. By practicing with AI-generated responses, you can enter the negotiation process with more confidence and poise.\n\nPart 1 ➡️ https://youtu.be/pmnY5V16GSE\n\n\n*TIMESTAMPS*\n00:00 Why Job Seekers are using ChatGPT\n01:06 Land Coffee Chats using ChatGPT\n03:40 Smart Questions to ask during Coffee Chats\n04:59 Use ChatGPT to find Questions for the Interviewer\n06:04 Write a Thank You Email using ChatGPT\n06:54 How ChatGPT can help with Salary Negotiation\n08:24 ChatGPT for Job Search: Part 1\n\n*RESOURCES I MENTION IN THE VIDEO*\nPrompts mentioned in this video - https://www.jeffsu.org/chatgpt-for-job-search-part-2\nChatGPT for Job Search (Part 1) - https://youtu.be/pmnY5V16GSE\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch", "I wish every Job Seeker would watch this", "ZXmbb5fPfgk", 1, 522, false, "https://www.youtube.com/watch?v=ZXmbb5fPfgk", "/downloads/Jeff Su/2023-05-08 I wish every Job Seeker would watch this/I wish every Job Seeker would watch this [ZXmbb5fPfgk].mp4", false, ~U[2023-05-08 13:00:29Z]] 16:42:19.645 [debug] QUERY OK source="sources" db=2.9ms queue=0.1ms idle=1179.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:19.646 [debug] QUERY OK source="media_profiles" db=0.4ms idle=1182.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] 16:42:19.647 [debug] QUERY OK source="media_items" db=0.4ms idle=1182.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 [70] 16:42:19.647 [info] Kicking off download for media item #70 (ZXmbb5fPfgk) 16:42:20.086 [debug] QUERY OK source="tasks" db=2.6ms queue=0.1ms idle=437.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [74, 70, ~U[2026-04-23 14:42:20Z], ~U[2026-04-23 14:42:20Z]] 16:42:20.088 [debug] Current batch of media processed. Will check again in 1000ms 16:42:21.089 [debug] Current batch of media processed. Will check again in 1000ms 16:42:22.089 [debug] Current batch of media processed. Will check again in 1000ms 16:42:23.091 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=132\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nChatGPT is only as good as the prompts you use, so it’s important to use Prompt Engineering techniques when we use ChatGPT for job search! \n\nIn this video, learn how to effectively use ChatGPT for your job search, covering critical aspects such as crafting a compelling cover letter, tailoring your resume, and structuring interview answers.\n\nDiscover the power of a multi-prompt approach and various prompt engineering techniques to get better results from ChatGPT. \n\nI guide you through the process of identifying pain points, generating tailored responses, and creating quantifiable impact in your resume. \n\nMaster the art of interview preparation with our step-by-step instructions, utilizing frameworks like Present, Past, and Future and CARL. \n\nHere's Part 2 ➡️ https://youtu.be/ZXmbb5fPfgk\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why most ChatGPT Prompts Suck\n00:45 Use ChatGPT for your Cover Letter\n03:12 Use ChatGPT for your Resume\n04:46 Improve Bullet Points with ChatGPT\n06:42 Use ChatGPT for Tell Me About Yourself\n08:07 Prepare for Interviews with ChatGPT\n09:38 The Definitive Guide (Part 2)\n09:59 Huge Bonus Tip! \n\n*RESOURCES I MENTION IN THE VIDEO*\nPrompts mentioned in this video - https://www.jeffsu.org/chatgpt-for-job-search-part-1/\nChatGPT for Job Search (Part 2) - https://youtu.be/ZXmbb5fPfgk\nWrite an amazing Cover Letter - https://youtu.be/NUhDP30IRKk\nCraft an Incredible Resume - https://youtu.be/Tt08KmFfIYQ\nStructure “Tell me about yourself” - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\nAwesome Prompts GitHub page - https://github.com/f/awesome-chatgpt-prompts/blob/main/README.md#act-as-a-cover-letter\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatGPT #jobsearch #resume", "duration" => 619, "filename" => "/downloads/Jeff Su/2023-04-25 Land a Job using ChatGPT: The Definitive Guide!/Land a Job using ChatGPT: The Definitive Guide! [pmnY5V16GSE].mp4", "id" => "pmnY5V16GSE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pmnY5V16GSE", "playlist_index" => 71, "timestamp" => 1682425826, "title" => "Land a Job using ChatGPT: The Definitive Guide!", "upload_date" => "20230425"} 16:42:23.092 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1847.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:42:23.093 [debug] QUERY OK source="sources" db=0.4ms idle=1848.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:23.093 [debug] QUERY OK source="media_items" db=0.4ms idle=1849.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-25 12:30:26Z], 1] 16:42:23.097 [debug] QUERY OK source="media_items" db=2.0ms idle=1326.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=132\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nChatGPT is only as good as the prompts you use, so it’s important to use Prompt Engineering techniques when we use ChatGPT for job search! \n\nIn this video, learn how to effectively use ChatGPT for your job search, covering critical aspects such as crafting a compelling cover letter, tailoring your resume, and structuring interview answers.\n\nDiscover the power of a multi-prompt approach and various prompt engineering techniques to get better results from ChatGPT. \n\nI guide you through the process of identifying pain points, generating tailored responses, and creating quantifiable impact in your resume. \n\nMaster the art of interview preparation with our step-by-step instructions, utilizing frameworks like Present, Past, and Future and CARL. \n\nHere's Part 2 ➡️ https://youtu.be/ZXmbb5fPfgk\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why most ChatGPT Prompts Suck\n00:45 Use ChatGPT for your Cover Letter\n03:12 Use ChatGPT for your Resume\n04:46 Improve Bullet Points with ChatGPT\n06:42 Use ChatGPT for Tell Me About Yourself\n08:07 Prepare for Interviews with ChatGPT\n09:38 The Definitive Guide (Part 2)\n09:59 Huge Bonus Tip! \n\n*RESOURCES I MENTION IN THE VIDEO*\nPrompts mentioned in this video - https://www.jeffsu.org/chatgpt-for-job-search-part-1/\nChatGPT for Job Search (Part 2) - https://youtu.be/ZXmbb5fPfgk\nWrite an amazing Cover Letter - https://youtu.be/NUhDP30IRKk\nCraft an Incredible Resume - https://youtu.be/Tt08KmFfIYQ\nStructure “Tell me about yourself” - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\nAwesome Prompts GitHub page - https://github.com/f/awesome-chatgpt-prompts/blob/main/README.md#act-as-a-cover-letter\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatGPT #jobsearch #resume", "Land a Job using ChatGPT: The Definitive Guide!", "068b0cfc-3302-44ed-a541-b6aaaa7439c2", false, "pmnY5V16GSE", 1, [], 619, false, "https://www.youtube.com/watch?v=pmnY5V16GSE", 71, "/downloads/Jeff Su/2023-04-25 Land a Job using ChatGPT: The Definitive Guide!/Land a Job using ChatGPT: The Definitive Guide! [pmnY5V16GSE].mp4", false, false, 99, ~U[2023-04-25 12:30:26Z], ~U[2026-04-23 14:42:23Z], ~U[2026-04-23 14:42:23Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=132\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nChatGPT is only as good as the prompts you use, so it’s important to use Prompt Engineering techniques when we use ChatGPT for job search! \n\nIn this video, learn how to effectively use ChatGPT for your job search, covering critical aspects such as crafting a compelling cover letter, tailoring your resume, and structuring interview answers.\n\nDiscover the power of a multi-prompt approach and various prompt engineering techniques to get better results from ChatGPT. \n\nI guide you through the process of identifying pain points, generating tailored responses, and creating quantifiable impact in your resume. \n\nMaster the art of interview preparation with our step-by-step instructions, utilizing frameworks like Present, Past, and Future and CARL. \n\nHere's Part 2 ➡️ https://youtu.be/ZXmbb5fPfgk\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why most ChatGPT Prompts Suck\n00:45 Use ChatGPT for your Cover Letter\n03:12 Use ChatGPT for your Resume\n04:46 Improve Bullet Points with ChatGPT\n06:42 Use ChatGPT for Tell Me About Yourself\n08:07 Prepare for Interviews with ChatGPT\n09:38 The Definitive Guide (Part 2)\n09:59 Huge Bonus Tip! \n\n*RESOURCES I MENTION IN THE VIDEO*\nPrompts mentioned in this video - https://www.jeffsu.org/chatgpt-for-job-search-part-1/\nChatGPT for Job Search (Part 2) - https://youtu.be/ZXmbb5fPfgk\nWrite an amazing Cover Letter - https://youtu.be/NUhDP30IRKk\nCraft an Incredible Resume - https://youtu.be/Tt08KmFfIYQ\nStructure “Tell me about yourself” - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\nAwesome Prompts GitHub page - https://github.com/f/awesome-chatgpt-prompts/blob/main/README.md#act-as-a-cover-letter\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatGPT #jobsearch #resume", "Land a Job using ChatGPT: The Definitive Guide!", "pmnY5V16GSE", 1, 619, false, "https://www.youtube.com/watch?v=pmnY5V16GSE", "/downloads/Jeff Su/2023-04-25 Land a Job using ChatGPT: The Definitive Guide!/Land a Job using ChatGPT: The Definitive Guide! [pmnY5V16GSE].mp4", false, ~U[2023-04-25 12:30:26Z]] 16:42:23.098 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=327.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:23.100 [debug] QUERY OK source="media_profiles" db=0.7ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:42:23.100 [debug] QUERY OK source="media_items" db=0.4ms idle=7.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [71] 16:42:23.101 [info] Kicking off download for media item #71 (pmnY5V16GSE) 16:42:23.105 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=6.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [75, 71, ~U[2026-04-23 14:42:23Z], ~U[2026-04-23 14:42:23Z]] 16:42:23.105 [debug] Current batch of media processed. Will check again in 1000ms 16:42:24.105 [debug] Current batch of media processed. Will check again in 1000ms 16:42:25.106 [debug] Current batch of media processed. Will check again in 1000ms 16:42:26.107 [debug] Current batch of media processed. Will check again in 1000ms 16:42:27.109 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=131\n\nDownload my event management Notion template here 👉🏻\u00A0https://www.jeffsu.org/plan-an-entire-event-in-notion/\n\nAs a Product Marketing Manager, I’ve run hundreds of large-scale events at work but those usually involve spreadsheets with over 20 tabs! \n\nIn this video I share how to plan and organize smaller scale events (such as birthday parties) with ease using a simple Notion template 🎉\n\nThe template includes an overview page, action items table, timeline, invitees page, and comms page. The overview callout block allows brainstorming and sets the tone for the event. The action items table lists key milestones and progress, while the timeline page displays milestones in a visual format. \n\nThe invitees page keeps track of friends' status and +1s, and the comms page provides templates for invitation, confirmation, and reminder messages. \n\n💡\u00A0Pro tips include sorting views by due date, including a Notion button for default action items, and assuming a 20% drop-off rate.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Plan and Organize Events in Notion\n00:35 Notion Template Structure\n00:56 Event Overview\n01:30 Action Items for Event Management\n02:58 Event Timeline\n04:11 Invitee List\n05:07 Communication Plan\n06:53 Cost Management\n07:02 Advanced Event Planning Tips\n07:31 Bonus Tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy paid productivity newsletter - https://www.jeffsu.org/productivity-ping/\nThomas Frank’s Ultimate Tasks tutorial - https://youtu.be/tjAWsuz5MdM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #template #productivity", "duration" => 508, "filename" => "/downloads/Jeff Su/2023-04-11 Plan an ENTIRE Event on Notion (in 9 minutes)!/Plan an ENTIRE Event on Notion (in 9 minutes)! [7lIfD9IYHGg].mp4", "id" => "7lIfD9IYHGg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7lIfD9IYHGg", "playlist_index" => 72, "timestamp" => 1681218004, "title" => "Plan an ENTIRE Event on Notion (in 9 minutes)!", "upload_date" => "20230411"} 16:42:27.110 [debug] QUERY OK source="sources" db=0.3ms idle=865.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:42:27.110 [debug] QUERY OK source="sources" db=0.2ms idle=866.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:27.111 [debug] QUERY OK source="media_items" db=0.4ms idle=866.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-11 13:00:04Z], 1] 16:42:27.114 [debug] QUERY OK source="media_items" db=1.8ms idle=867.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=131\n\nDownload my event management Notion template here 👉🏻\u00A0https://www.jeffsu.org/plan-an-entire-event-in-notion/\n\nAs a Product Marketing Manager, I’ve run hundreds of large-scale events at work but those usually involve spreadsheets with over 20 tabs! \n\nIn this video I share how to plan and organize smaller scale events (such as birthday parties) with ease using a simple Notion template 🎉\n\nThe template includes an overview page, action items table, timeline, invitees page, and comms page. The overview callout block allows brainstorming and sets the tone for the event. The action items table lists key milestones and progress, while the timeline page displays milestones in a visual format. \n\nThe invitees page keeps track of friends' status and +1s, and the comms page provides templates for invitation, confirmation, and reminder messages. \n\n💡\u00A0Pro tips include sorting views by due date, including a Notion button for default action items, and assuming a 20% drop-off rate.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Plan and Organize Events in Notion\n00:35 Notion Template Structure\n00:56 Event Overview\n01:30 Action Items for Event Management\n02:58 Event Timeline\n04:11 Invitee List\n05:07 Communication Plan\n06:53 Cost Management\n07:02 Advanced Event Planning Tips\n07:31 Bonus Tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy paid productivity newsletter - https://www.jeffsu.org/productivity-ping/\nThomas Frank’s Ultimate Tasks tutorial - https://youtu.be/tjAWsuz5MdM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #template #productivity", "Plan an ENTIRE Event on Notion (in 9 minutes)!", "6f5c5340-f212-4955-9af9-0820c17163d4", false, "7lIfD9IYHGg", 1, [], 508, false, "https://www.youtube.com/watch?v=7lIfD9IYHGg", 72, "/downloads/Jeff Su/2023-04-11 Plan an ENTIRE Event on Notion (in 9 minutes)!/Plan an ENTIRE Event on Notion (in 9 minutes)! [7lIfD9IYHGg].mp4", false, false, 99, ~U[2023-04-11 13:00:04Z], ~U[2026-04-23 14:42:27Z], ~U[2026-04-23 14:42:27Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=131\n\nDownload my event management Notion template here 👉🏻\u00A0https://www.jeffsu.org/plan-an-entire-event-in-notion/\n\nAs a Product Marketing Manager, I’ve run hundreds of large-scale events at work but those usually involve spreadsheets with over 20 tabs! \n\nIn this video I share how to plan and organize smaller scale events (such as birthday parties) with ease using a simple Notion template 🎉\n\nThe template includes an overview page, action items table, timeline, invitees page, and comms page. The overview callout block allows brainstorming and sets the tone for the event. The action items table lists key milestones and progress, while the timeline page displays milestones in a visual format. \n\nThe invitees page keeps track of friends' status and +1s, and the comms page provides templates for invitation, confirmation, and reminder messages. \n\n💡\u00A0Pro tips include sorting views by due date, including a Notion button for default action items, and assuming a 20% drop-off rate.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Plan and Organize Events in Notion\n00:35 Notion Template Structure\n00:56 Event Overview\n01:30 Action Items for Event Management\n02:58 Event Timeline\n04:11 Invitee List\n05:07 Communication Plan\n06:53 Cost Management\n07:02 Advanced Event Planning Tips\n07:31 Bonus Tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy paid productivity newsletter - https://www.jeffsu.org/productivity-ping/\nThomas Frank’s Ultimate Tasks tutorial - https://youtu.be/tjAWsuz5MdM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #template #productivity", "Plan an ENTIRE Event on Notion (in 9 minutes)!", "7lIfD9IYHGg", 1, 508, false, "https://www.youtube.com/watch?v=7lIfD9IYHGg", "/downloads/Jeff Su/2023-04-11 Plan an ENTIRE Event on Notion (in 9 minutes)!/Plan an ENTIRE Event on Notion (in 9 minutes)! [7lIfD9IYHGg].mp4", false, ~U[2023-04-11 13:00:04Z]] 16:42:27.115 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=336.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:27.116 [debug] QUERY OK source="media_profiles" db=0.9ms 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] 16:42:27.117 [debug] QUERY OK source="media_items" db=0.8ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [72] 16:42:27.117 [info] Kicking off download for media item #72 (7lIfD9IYHGg) 16:42:27.121 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=5.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [76, 72, ~U[2026-04-23 14:42:27Z], ~U[2026-04-23 14:42:27Z]] 16:42:27.121 [debug] Current batch of media processed. Will check again in 1000ms 16:42:28.121 [debug] Current batch of media processed. Will check again in 1000ms 16:42:29.123 [debug] Current batch of media processed. Will check again in 1000ms 16:42:30.123 [debug] Current batch of media processed. Will check again in 1000ms 16:42:31.125 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=130\n\nNotion is a relatively intuitive tool for the most part, but I bet you’ll find at least 1 Notion tip for productivity you didn’t know before in this video on 15 UNCONVENTIONAL Notion Tips for Productivity!\n\nIn addition to the recent additions like Notion AI and the latest Notion Buttons update, I go over organization best practices for Notion databases and pages! \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Productive way to add icons in Notion\n00:35 Tab management in Notion\n01:27 Notion Database navigation tips\n01:58 Wrap individual columns\n02:11 Use custom icons for columns\n02:28 Edit properties directly in Gallery view\n02:42 Repeating templates with recurring actions\n03:12 Filter view: Date is relative to today\n03:26 Change start week to Monday\n03:41 Automatically update Day of the Week\n04:12 Add navigation toggle to page (for mobile)\n04:47 Database organization tips\n05:51 Notion page organization tips\n06:08 The one practical Notion AI tip (so far)\n06:58 Use Save to Notion with Notion AI\n07:12 Updated Notion Buttons feature\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Productive Weekly Planner video - https://youtu.be/XXYfRgXTEE0\nFormat Date Formula - formatDate(prop(\"Date\"), \"dddd\")\nThomas Frank’s Buttons video (real) - https://youtu.be/XX-SHfDagPM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #productivity #tips", "duration" => 535, "filename" => "/downloads/Jeff Su/2023-03-28 15 MUST-KNOW Notion tips for Productivity!/15 MUST-KNOW Notion tips for Productivity! [CPYwVRtlxms].mp4", "id" => "CPYwVRtlxms", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CPYwVRtlxms", "playlist_index" => 73, "timestamp" => 1680008408, "title" => "15 MUST-KNOW Notion tips for Productivity!", "upload_date" => "20230328"} 16:42:31.126 [debug] QUERY OK source="sources" db=0.3ms idle=881.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:42:31.126 [debug] QUERY OK source="sources" db=0.2ms idle=882.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:31.127 [debug] QUERY OK source="media_items" db=0.4ms idle=882.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-03-28 13:00:08Z], 1] 16:42:31.130 [debug] QUERY OK source="media_items" db=1.7ms idle=883.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=130\n\nNotion is a relatively intuitive tool for the most part, but I bet you’ll find at least 1 Notion tip for productivity you didn’t know before in this video on 15 UNCONVENTIONAL Notion Tips for Productivity!\n\nIn addition to the recent additions like Notion AI and the latest Notion Buttons update, I go over organization best practices for Notion databases and pages! \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Productive way to add icons in Notion\n00:35 Tab management in Notion\n01:27 Notion Database navigation tips\n01:58 Wrap individual columns\n02:11 Use custom icons for columns\n02:28 Edit properties directly in Gallery view\n02:42 Repeating templates with recurring actions\n03:12 Filter view: Date is relative to today\n03:26 Change start week to Monday\n03:41 Automatically update Day of the Week\n04:12 Add navigation toggle to page (for mobile)\n04:47 Database organization tips\n05:51 Notion page organization tips\n06:08 The one practical Notion AI tip (so far)\n06:58 Use Save to Notion with Notion AI\n07:12 Updated Notion Buttons feature\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Productive Weekly Planner video - https://youtu.be/XXYfRgXTEE0\nFormat Date Formula - formatDate(prop(\"Date\"), \"dddd\")\nThomas Frank’s Buttons video (real) - https://youtu.be/XX-SHfDagPM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #productivity #tips", "15 MUST-KNOW Notion tips for Productivity!", "27290394-c055-4184-a83d-2281fdc0541a", false, "CPYwVRtlxms", 1, [], 535, false, "https://www.youtube.com/watch?v=CPYwVRtlxms", 73, "/downloads/Jeff Su/2023-03-28 15 MUST-KNOW Notion tips for Productivity!/15 MUST-KNOW Notion tips for Productivity! [CPYwVRtlxms].mp4", false, false, 99, ~U[2023-03-28 13:00:08Z], ~U[2026-04-23 14:42:31Z], ~U[2026-04-23 14:42:31Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=130\n\nNotion is a relatively intuitive tool for the most part, but I bet you’ll find at least 1 Notion tip for productivity you didn’t know before in this video on 15 UNCONVENTIONAL Notion Tips for Productivity!\n\nIn addition to the recent additions like Notion AI and the latest Notion Buttons update, I go over organization best practices for Notion databases and pages! \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Productive way to add icons in Notion\n00:35 Tab management in Notion\n01:27 Notion Database navigation tips\n01:58 Wrap individual columns\n02:11 Use custom icons for columns\n02:28 Edit properties directly in Gallery view\n02:42 Repeating templates with recurring actions\n03:12 Filter view: Date is relative to today\n03:26 Change start week to Monday\n03:41 Automatically update Day of the Week\n04:12 Add navigation toggle to page (for mobile)\n04:47 Database organization tips\n05:51 Notion page organization tips\n06:08 The one practical Notion AI tip (so far)\n06:58 Use Save to Notion with Notion AI\n07:12 Updated Notion Buttons feature\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Productive Weekly Planner video - https://youtu.be/XXYfRgXTEE0\nFormat Date Formula - formatDate(prop(\"Date\"), \"dddd\")\nThomas Frank’s Buttons video (real) - https://youtu.be/XX-SHfDagPM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #productivity #tips", "15 MUST-KNOW Notion tips for Productivity!", "CPYwVRtlxms", 1, 535, false, "https://www.youtube.com/watch?v=CPYwVRtlxms", "/downloads/Jeff Su/2023-03-28 15 MUST-KNOW Notion tips for Productivity!/15 MUST-KNOW Notion tips for Productivity! [CPYwVRtlxms].mp4", false, ~U[2023-03-28 13:00:08Z]] 16:42:31.130 [debug] QUERY OK source="sources" db=0.2ms idle=344.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:31.131 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:42:31.132 [debug] QUERY OK source="media_items" db=0.2ms idle=4.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [73] 16:42:31.132 [info] Kicking off download for media item #73 (CPYwVRtlxms) 16:42:31.134 [debug] QUERY OK source="tasks" db=0.2ms idle=3.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [77, 73, ~U[2026-04-23 14:42:31Z], ~U[2026-04-23 14:42:31Z]] 16:42:31.134 [debug] Current batch of media processed. Will check again in 1000ms 16:42:32.134 [debug] Current batch of media processed. Will check again in 1000ms 16:42:33.135 [debug] Current batch of media processed. Will check again in 1000ms 16:42:34.136 [debug] Current batch of media processed. Will check again in 1000ms 16:42:35.137 [debug] Current batch of media processed. Will check again in 1000ms 16:42:36.138 [debug] Current batch of media processed. Will check again in 1000ms 16:42:37.140 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🌟\u00A0Here are literally the first 18 things I always do on a new Macbook Pro\n\nRight out of the box there are actually a lot of settings I recommend you DISABLE (e.g. true tone and slight dimming)\n\nApple thinks they know best sometimes, but they don’t 😏\n\nWe then move on to 1-time Finder setting changes that will help you become more productive in the long run\n\nFinally, I end with the 8 Mac apps I always install on new Macbooks that make the Mac experience just that much better!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Setup a New Macbook Pro\n00:12 Add 2 Fingerprints for Touch ID\n00:21 Display Settings\n01:00 Desktop and Dock\n01:33 Language and Region\n02:07 Lock Screen\n02:25 Ethernet Set Service Order\n02:44 Show Path Bar and Status Bar\n02:56 Customize Finder Toolbar\n03:23 Airdrop Pro Tip\n03:50 Finder Settings for Productivity\n04:34 Access Library Folder\n04:51 Migrate Fonts Folder to New MacBook\n05:07 Dock Settings for Productivity\n05:20 Tinkertool App\n06:02 Alfred App\n07:01 AppCleaner App\n07:35 VLC and IINA Media Players\n07:55 CleanshotX and Shottr Screenshot Apps\n08:15 Moom and Rectangle\n\n*RESOURCES I MENTION IN THE VIDEO*\nFull Alfred Tutorial - https://www.youtube.com/watch?v=FXV-zwkRMxo\nTinkertool - http://www.bresink.com/osx/0TinkerTool/download.php\nAlfred - https://www.alfredapp.com/\nAppCleaner - https://freemacsoft.net/appcleaner/\nVLC - https://www.videolan.org/vlc/\nIINA - https://iina.io/\nCleanshot - https://gumroad.com/a/529753203/dkaTQ\nShottr - https://shottr.cc/\nMoom - https://apps.apple.com/us/app/moom/id419330170?mt=12\nRectangle - https://rectangleapp.com/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#MacbookPro #productivity #Apple", "duration" => 522, "filename" => "/downloads/Jeff Su/2023-03-14 First 18 Things to Do for Productivity ⧸⧸ New Macbook Pro!/First 18 Things to Do for Productivity ⧸⧸ New Macbook Pro! [dVxMrVJ58as].mp4", "id" => "dVxMrVJ58as", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=dVxMrVJ58as", "playlist_index" => 74, "timestamp" => 1678798821, "title" => "First 18 Things to Do for Productivity // New Macbook Pro!", "upload_date" => "20230314"} 16:42:37.143 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=896.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:42:37.144 [debug] QUERY OK source="sources" db=0.8ms idle=899.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:37.146 [debug] QUERY OK source="media_items" db=1.2ms idle=900.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-03-14 13:00:21Z], 1] 16:42:37.150 [debug] QUERY OK source="media_items" db=2.4ms idle=902.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🌟\u00A0Here are literally the first 18 things I always do on a new Macbook Pro\n\nRight out of the box there are actually a lot of settings I recommend you DISABLE (e.g. true tone and slight dimming)\n\nApple thinks they know best sometimes, but they don’t 😏\n\nWe then move on to 1-time Finder setting changes that will help you become more productive in the long run\n\nFinally, I end with the 8 Mac apps I always install on new Macbooks that make the Mac experience just that much better!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Setup a New Macbook Pro\n00:12 Add 2 Fingerprints for Touch ID\n00:21 Display Settings\n01:00 Desktop and Dock\n01:33 Language and Region\n02:07 Lock Screen\n02:25 Ethernet Set Service Order\n02:44 Show Path Bar and Status Bar\n02:56 Customize Finder Toolbar\n03:23 Airdrop Pro Tip\n03:50 Finder Settings for Productivity\n04:34 Access Library Folder\n04:51 Migrate Fonts Folder to New MacBook\n05:07 Dock Settings for Productivity\n05:20 Tinkertool App\n06:02 Alfred App\n07:01 AppCleaner App\n07:35 VLC and IINA Media Players\n07:55 CleanshotX and Shottr Screenshot Apps\n08:15 Moom and Rectangle\n\n*RESOURCES I MENTION IN THE VIDEO*\nFull Alfred Tutorial - https://www.youtube.com/watch?v=FXV-zwkRMxo\nTinkertool - http://www.bresink.com/osx/0TinkerTool/download.php\nAlfred - https://www.alfredapp.com/\nAppCleaner - https://freemacsoft.net/appcleaner/\nVLC - https://www.videolan.org/vlc/\nIINA - https://iina.io/\nCleanshot - https://gumroad.com/a/529753203/dkaTQ\nShottr - https://shottr.cc/\nMoom - https://apps.apple.com/us/app/moom/id419330170?mt=12\nRectangle - https://rectangleapp.com/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#MacbookPro #productivity #Apple", "First 18 Things to Do for Productivity // New Macbook Pro!", "3d8942a4-f1e4-4b3f-bcdb-882c0aabcc79", false, "dVxMrVJ58as", 1, [], 522, false, "https://www.youtube.com/watch?v=dVxMrVJ58as", 74, "/downloads/Jeff Su/2023-03-14 First 18 Things to Do for Productivity ⧸⧸ New Macbook Pro!/First 18 Things to Do for Productivity ⧸⧸ New Macbook Pro! [dVxMrVJ58as].mp4", false, false, 99, ~U[2023-03-14 13:00:21Z], ~U[2026-04-23 14:42:37Z], ~U[2026-04-23 14:42:37Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🌟\u00A0Here are literally the first 18 things I always do on a new Macbook Pro\n\nRight out of the box there are actually a lot of settings I recommend you DISABLE (e.g. true tone and slight dimming)\n\nApple thinks they know best sometimes, but they don’t 😏\n\nWe then move on to 1-time Finder setting changes that will help you become more productive in the long run\n\nFinally, I end with the 8 Mac apps I always install on new Macbooks that make the Mac experience just that much better!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Setup a New Macbook Pro\n00:12 Add 2 Fingerprints for Touch ID\n00:21 Display Settings\n01:00 Desktop and Dock\n01:33 Language and Region\n02:07 Lock Screen\n02:25 Ethernet Set Service Order\n02:44 Show Path Bar and Status Bar\n02:56 Customize Finder Toolbar\n03:23 Airdrop Pro Tip\n03:50 Finder Settings for Productivity\n04:34 Access Library Folder\n04:51 Migrate Fonts Folder to New MacBook\n05:07 Dock Settings for Productivity\n05:20 Tinkertool App\n06:02 Alfred App\n07:01 AppCleaner App\n07:35 VLC and IINA Media Players\n07:55 CleanshotX and Shottr Screenshot Apps\n08:15 Moom and Rectangle\n\n*RESOURCES I MENTION IN THE VIDEO*\nFull Alfred Tutorial - https://www.youtube.com/watch?v=FXV-zwkRMxo\nTinkertool - http://www.bresink.com/osx/0TinkerTool/download.php\nAlfred - https://www.alfredapp.com/\nAppCleaner - https://freemacsoft.net/appcleaner/\nVLC - https://www.videolan.org/vlc/\nIINA - https://iina.io/\nCleanshot - https://gumroad.com/a/529753203/dkaTQ\nShottr - https://shottr.cc/\nMoom - https://apps.apple.com/us/app/moom/id419330170?mt=12\nRectangle - https://rectangleapp.com/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#MacbookPro #productivity #Apple", "First 18 Things to Do for Productivity // New Macbook Pro!", "dVxMrVJ58as", 1, 522, false, "https://www.youtube.com/watch?v=dVxMrVJ58as", "/downloads/Jeff Su/2023-03-14 First 18 Things to Do for Productivity ⧸⧸ New Macbook Pro!/First 18 Things to Do for Productivity ⧸⧸ New Macbook Pro! [dVxMrVJ58as].mp4", false, ~U[2023-03-14 13:00:21Z]] 16:42:37.150 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=345.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:37.151 [debug] QUERY OK source="media_profiles" db=0.2ms queue=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] 16:42:37.153 [debug] QUERY OK source="media_items" db=1.1ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [74] 16:42:37.153 [info] Kicking off download for media item #74 (dVxMrVJ58as) 16:42:37.157 [debug] QUERY OK source="tasks" db=0.2ms idle=6.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [78, 74, ~U[2026-04-23 14:42:37Z], ~U[2026-04-23 14:42:37Z]] 16:42:37.157 [debug] Current batch of media processed. Will check again in 1000ms 16:42:38.157 [debug] Current batch of media processed. Will check again in 1000ms 16:42:39.158 [debug] Current batch of media processed. Will check again in 1000ms 16:42:40.092 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=31cp_OXKzkI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/36/4b/364b5c81f05bf3697c670247994ba2a5cedbede2b3fd7e8e8b0276608fbfe3a1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:42:40.128 [debug] Running yt-dlp command for action: download_thumbnail 16:42:40.129 [debug] QUERY OK source="settings" db=0.2ms idle=1885.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:40.129 [debug] QUERY OK source="settings" db=0.1ms idle=1885.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:40.130 [debug] QUERY OK source="settings" db=0.1ms idle=1885.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:40.130 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=31cp_OXKzkI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/16/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/98/45/9845387f12574b7aa38a94894d909e9a37c837284098e059a9e4da2aac717712.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:42:40.159 [debug] Current batch of media processed. Will check again in 1000ms 16:42:41.035 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZEyRtkNmcEQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d4/50/d45052d1cbcbfff4f4751fcb44844836605775102469659c10157965e2562fc5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:42:41.072 [debug] Running yt-dlp command for action: download_thumbnail 16:42:41.073 [debug] QUERY OK source="settings" db=0.2ms idle=943.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:41.073 [debug] QUERY OK source="settings" db=0.1ms idle=943.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:41.073 [debug] QUERY OK source="settings" db=0.1ms idle=943.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:41.074 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZEyRtkNmcEQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/15/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fe/ec/feece78ee3be36f40701a6405811a32fe2bdf36a930695f9aa4bae6a128843df.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:42:41.161 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=128\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📑\u00A0Google Docs template: https://www.jeffsu.org/why-did-you-leave-your-last-job-explain-a-layoff/\n\nWhether you left your previous position on your own terms or you were laid off (aka fired), there’s a fool-proof framework you can use when faced with the “Why did you leave your last job” interview question!\n\n🌟\u00A0And that framework is: Facts-to-Future\n\nBasically you want to address the question directly with just the facts (so your emotions and opinions don’t get in the way), then pivot to what you REALLY want to talk about: how you are a good fit for this NEW role you’re interviewing for. \n\nIn this video I share 1 pro tip for each part of the framework AND I go through a sample answer to the “why did you leave your last role” interview question so you can see how everything ties together 😁\n\n*TIMESTAMPS*\n00:00 Why did you leave your last job?\n00:08 Framework for this interview question\n00:33 Facts\n01:29 Pivot\n02:00 Future\n02:44 Sample Answer\n04:01 Write your own answer\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle Docs template - https://www.jeffsu.org/why-did-you-leave-your-last-job-explain-a-layoff/\nWhy Do You Want to Work Here? https://youtu.be/x-4MewJpaso\nCommon Interview Questions & Answers Playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#interviewtips #explainalayoff #jobsearch", "duration" => 259, "filename" => "/downloads/Jeff Su/2023-02-28 Why Did You Leave Your Last Job? (explain a layoff)/Why Did You Leave Your Last Job? (explain a layoff) [tPlJjtQkpM0].mp4", "id" => "tPlJjtQkpM0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tPlJjtQkpM0", "playlist_index" => 75, "timestamp" => 1677589240, "title" => "Why Did You Leave Your Last Job? (explain a layoff)", "upload_date" => "20230228"} 16:42:41.162 [debug] QUERY OK source="sources" db=0.4ms idle=917.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:42:41.163 [debug] QUERY OK source="sources" db=0.3ms idle=343.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:41.163 [debug] QUERY OK source="media_items" db=0.4ms idle=89.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-28 13:00:40Z], 1] 16:42:41.166 [debug] QUERY OK source="media_items" db=1.8ms idle=90.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=128\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📑\u00A0Google Docs template: https://www.jeffsu.org/why-did-you-leave-your-last-job-explain-a-layoff/\n\nWhether you left your previous position on your own terms or you were laid off (aka fired), there’s a fool-proof framework you can use when faced with the “Why did you leave your last job” interview question!\n\n🌟\u00A0And that framework is: Facts-to-Future\n\nBasically you want to address the question directly with just the facts (so your emotions and opinions don’t get in the way), then pivot to what you REALLY want to talk about: how you are a good fit for this NEW role you’re interviewing for. \n\nIn this video I share 1 pro tip for each part of the framework AND I go through a sample answer to the “why did you leave your last role” interview question so you can see how everything ties together 😁\n\n*TIMESTAMPS*\n00:00 Why did you leave your last job?\n00:08 Framework for this interview question\n00:33 Facts\n01:29 Pivot\n02:00 Future\n02:44 Sample Answer\n04:01 Write your own answer\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle Docs template - https://www.jeffsu.org/why-did-you-leave-your-last-job-explain-a-layoff/\nWhy Do You Want to Work Here? https://youtu.be/x-4MewJpaso\nCommon Interview Questions & Answers Playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#interviewtips #explainalayoff #jobsearch", "Why Did You Leave Your Last Job? (explain a layoff)", "10d71c8d-d96b-4ad0-b842-7a900318b2ed", false, "tPlJjtQkpM0", 1, [], 259, false, "https://www.youtube.com/watch?v=tPlJjtQkpM0", 75, "/downloads/Jeff Su/2023-02-28 Why Did You Leave Your Last Job? (explain a layoff)/Why Did You Leave Your Last Job? (explain a layoff) [tPlJjtQkpM0].mp4", false, false, 99, ~U[2023-02-28 13:00:40Z], ~U[2026-04-23 14:42:41Z], ~U[2026-04-23 14:42:41Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=128\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📑\u00A0Google Docs template: https://www.jeffsu.org/why-did-you-leave-your-last-job-explain-a-layoff/\n\nWhether you left your previous position on your own terms or you were laid off (aka fired), there’s a fool-proof framework you can use when faced with the “Why did you leave your last job” interview question!\n\n🌟\u00A0And that framework is: Facts-to-Future\n\nBasically you want to address the question directly with just the facts (so your emotions and opinions don’t get in the way), then pivot to what you REALLY want to talk about: how you are a good fit for this NEW role you’re interviewing for. \n\nIn this video I share 1 pro tip for each part of the framework AND I go through a sample answer to the “why did you leave your last role” interview question so you can see how everything ties together 😁\n\n*TIMESTAMPS*\n00:00 Why did you leave your last job?\n00:08 Framework for this interview question\n00:33 Facts\n01:29 Pivot\n02:00 Future\n02:44 Sample Answer\n04:01 Write your own answer\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle Docs template - https://www.jeffsu.org/why-did-you-leave-your-last-job-explain-a-layoff/\nWhy Do You Want to Work Here? https://youtu.be/x-4MewJpaso\nCommon Interview Questions & Answers Playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#interviewtips #explainalayoff #jobsearch", "Why Did You Leave Your Last Job? (explain a layoff)", "tPlJjtQkpM0", 1, 259, false, "https://www.youtube.com/watch?v=tPlJjtQkpM0", "/downloads/Jeff Su/2023-02-28 Why Did You Leave Your Last Job? (explain a layoff)/Why Did You Leave Your Last Job? (explain a layoff) [tPlJjtQkpM0].mp4", false, ~U[2023-02-28 13:00:40Z]] 16:42:41.167 [debug] QUERY OK source="sources" db=0.7ms idle=93.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:41.168 [debug] QUERY OK source="media_profiles" db=0.5ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:42:41.173 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=9.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [75] 16:42:41.174 [info] Kicking off download for media item #75 (tPlJjtQkpM0) 16:42:41.181 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=13.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [79, 75, ~U[2026-04-23 14:42:41Z], ~U[2026-04-23 14:42:41Z]] 16:42:41.182 [debug] Current batch of media processed. Will check again in 1000ms 16:42:42.182 [debug] Current batch of media processed. Will check again in 1000ms 16:42:43.183 [debug] Current batch of media processed. Will check again in 1000ms 16:42:44.185 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Two HUGE benefits to adopting the Inbox Zero workflow:\n\n1️⃣\u00A0You will never get distracted by emails you have already dealt\n\n2️⃣\u00A0You will never again miss important emails \n\nThe Inbox Zero workflow was originally designed with Gmail in mind but that’s not going to stop us from applying the same concepts in Microsoft Outlook! \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Inbox Zero for Outlook\n00:18 Benefits of Inbox Zero\n00:45 Microsoft Outlook Settings\n03:03 Categories for Inbox Zero\n04:51 Daily Workflow Example\n08:21 How to Apply to Your Own Inbox\n08:33 Microsoft Outlook Drawbacks\n\n*RESOURCES I MENTION IN THE VIDEO*\n(note: Inbox Zero for Gmail is outdated, new video in the works)\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#inboxzero #microsoftoutlook #productivity", "duration" => 669, "filename" => "/downloads/Jeff Su/2023-02-21 Achieve INBOX ZERO on Outlook (in 10 minutes)!/Achieve INBOX ZERO on Outlook (in 10 minutes)! [U8LKXbUxf-M].mp4", "id" => "U8LKXbUxf-M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=U8LKXbUxf-M", "playlist_index" => 76, "timestamp" => 1676984431, "title" => "Achieve INBOX ZERO on Outlook (in 10 minutes)!", "upload_date" => "20230221"} 16:42:44.186 [debug] QUERY OK source="sources" db=0.3ms idle=1941.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:42:44.186 [debug] QUERY OK source="sources" db=0.2ms idle=1942.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:44.187 [debug] QUERY OK source="media_items" db=0.4ms idle=1942.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-21 13:00:31Z], 1] 16:42:44.190 [debug] QUERY OK source="media_items" db=1.6ms idle=1364.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Two HUGE benefits to adopting the Inbox Zero workflow:\n\n1️⃣\u00A0You will never get distracted by emails you have already dealt\n\n2️⃣\u00A0You will never again miss important emails \n\nThe Inbox Zero workflow was originally designed with Gmail in mind but that’s not going to stop us from applying the same concepts in Microsoft Outlook! \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Inbox Zero for Outlook\n00:18 Benefits of Inbox Zero\n00:45 Microsoft Outlook Settings\n03:03 Categories for Inbox Zero\n04:51 Daily Workflow Example\n08:21 How to Apply to Your Own Inbox\n08:33 Microsoft Outlook Drawbacks\n\n*RESOURCES I MENTION IN THE VIDEO*\n(note: Inbox Zero for Gmail is outdated, new video in the works)\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#inboxzero #microsoftoutlook #productivity", "Achieve INBOX ZERO on Outlook (in 10 minutes)!", "a6f52c55-1e2d-4578-9711-05bf1056398c", false, "U8LKXbUxf-M", 1, [], 669, false, "https://www.youtube.com/watch?v=U8LKXbUxf-M", 76, "/downloads/Jeff Su/2023-02-21 Achieve INBOX ZERO on Outlook (in 10 minutes)!/Achieve INBOX ZERO on Outlook (in 10 minutes)! [U8LKXbUxf-M].mp4", false, false, 99, ~U[2023-02-21 13:00:31Z], ~U[2026-04-23 14:42:44Z], ~U[2026-04-23 14:42:44Z], "Two HUGE benefits to adopting the Inbox Zero workflow:\n\n1️⃣\u00A0You will never get distracted by emails you have already dealt\n\n2️⃣\u00A0You will never again miss important emails \n\nThe Inbox Zero workflow was originally designed with Gmail in mind but that’s not going to stop us from applying the same concepts in Microsoft Outlook! \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Inbox Zero for Outlook\n00:18 Benefits of Inbox Zero\n00:45 Microsoft Outlook Settings\n03:03 Categories for Inbox Zero\n04:51 Daily Workflow Example\n08:21 How to Apply to Your Own Inbox\n08:33 Microsoft Outlook Drawbacks\n\n*RESOURCES I MENTION IN THE VIDEO*\n(note: Inbox Zero for Gmail is outdated, new video in the works)\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#inboxzero #microsoftoutlook #productivity", "Achieve INBOX ZERO on Outlook (in 10 minutes)!", "U8LKXbUxf-M", 1, 669, false, "https://www.youtube.com/watch?v=U8LKXbUxf-M", "/downloads/Jeff Su/2023-02-21 Achieve INBOX ZERO on Outlook (in 10 minutes)!/Achieve INBOX ZERO on Outlook (in 10 minutes)! [U8LKXbUxf-M].mp4", false, ~U[2023-02-21 13:00:31Z]] 16:42:44.192 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=365.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:44.193 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:42:44.194 [debug] QUERY OK source="media_items" db=0.6ms idle=6.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [76] 16:42:44.194 [info] Kicking off download for media item #76 (U8LKXbUxf-M) 16:42:44.198 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=5.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [80, 76, ~U[2026-04-23 14:42:44Z], ~U[2026-04-23 14:42:44Z]] 16:42:44.198 [debug] Current batch of media processed. Will check again in 1000ms 16:42:45.199 [debug] Current batch of media processed. Will check again in 1000ms 16:42:46.199 [debug] Current batch of media processed. Will check again in 1000ms 16:42:47.201 [debug] Current batch of media processed. Will check again in 1000ms 16:42:47.324 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=31cp_OXKzkI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/16/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/98/45/9845387f12574b7aa38a94894d909e9a37c837284098e059a9e4da2aac717712.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:42:47.325 [debug] QUERY OK db=0.0ms idle=489.7ms begin [] 16:42:47.326 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:42:40Z], "/downloads/Jeff Su/2025-08-27 3 AI Habits So Powerful It Feels Like Cheating/3 AI Habits So Powerful It Feels Like Cheating [31cp_OXKzkI].mp4", "/downloads/Jeff Su/2025-08-27 3 AI Habits So Powerful It Feels Like Cheating/3 AI Habits So Powerful It Feels Like Cheating [31cp_OXKzkI].info.json", "/downloads/Jeff Su/2025-08-27 3 AI Habits So Powerful It Feels Like Cheating/3 AI Habits So Powerful It Feels Like Cheating [31cp_OXKzkI].nfo", "/downloads/Jeff Su/2025-08-27 3 AI Habits So Powerful It Feels Like Cheating/3 AI Habits So Powerful It Feels Like Cheating [31cp_OXKzkI]-thumb.jpg", ~U[2026-04-23 14:42:47Z], 16] 16:42:47.327 [debug] QUERY OK source="media_metadata" db=0.9ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/16/metadata.json.gz", "/config/metadata/media_items/16/thumbnail.jpg", 16, ~U[2026-04-23 14:42:47Z], ~U[2026-04-23 14:42:47Z]] 16:42:47.328 [debug] QUERY OK db=0.4ms commit [] 16:42:47.330 [debug] QUERY OK source="media_items" db=1.7ms idle=84.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [31489299, ~U[2026-04-23 14:42:47Z], 16] 16:42:47.330 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:42:47.331 [info] {"args":{"id":16},"id":20,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":38347766,"event":"job:stop","queue_time":221981902,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:42:47.339 [info] {"args":{"id":17},"id":21,"meta":{},"system_time":1776955367339076953,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:42:47.339 [debug] QUERY OK source="media_items" db=0.3ms idle=95.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" = ?) [17] 16:42:47.340 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:42:47.340 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=12.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:47.341 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=10.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] 16:42:47.342 [debug] QUERY OK source="media_items" db=0.3ms idle=10.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [17] 16:42:47.343 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [17] 16:42:47.343 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:42:47.344 [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 [] 16:42:47.345 [debug] QUERY OK source="settings" db=0.1ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:47.345 [debug] Running yt-dlp command for action: get_downloadable_status 16:42:47.346 [debug] QUERY OK source="settings" db=0.2ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:47.346 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:47.347 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:47.347 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GchXMRwuWxE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0a/e4/0ae40afdea7ddc6c4228e316ab15c81e499387e34e91f3dbd7926640c4ca8b68.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:42:47.414 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZEyRtkNmcEQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/15/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fe/ec/feece78ee3be36f40701a6405811a32fe2bdf36a930695f9aa4bae6a128843df.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:42:47.415 [debug] QUERY OK db=0.1ms idle=70.5ms begin [] 16:42:47.416 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:42:41Z], "/downloads/Jeff Su/2025-09-09 My Top 5 AI Tips for iPhone Users!/My Top 5 AI Tips for iPhone Users! [ZEyRtkNmcEQ].mp4", "/downloads/Jeff Su/2025-09-09 My Top 5 AI Tips for iPhone Users!/My Top 5 AI Tips for iPhone Users! [ZEyRtkNmcEQ].info.json", "/downloads/Jeff Su/2025-09-09 My Top 5 AI Tips for iPhone Users!/My Top 5 AI Tips for iPhone Users! [ZEyRtkNmcEQ].nfo", "/downloads/Jeff Su/2025-09-09 My Top 5 AI Tips for iPhone Users!/My Top 5 AI Tips for iPhone Users! [ZEyRtkNmcEQ]-thumb.jpg", ~U[2026-04-23 14:42:47Z], 15] 16:42:47.417 [debug] QUERY OK source="media_metadata" db=0.7ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/15/metadata.json.gz", "/config/metadata/media_items/15/thumbnail.jpg", 15, ~U[2026-04-23 14:42:47Z], ~U[2026-04-23 14:42:47Z]] 16:42:47.417 [debug] QUERY OK db=0.2ms commit [] 16:42:47.419 [debug] QUERY OK source="media_items" db=1.3ms idle=73.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [40176542, ~U[2026-04-23 14:42:47Z], 15] 16:42:47.419 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:42:47.420 [info] {"args":{"id":15},"id":19,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":42945899,"event":"job:stop","queue_time":222472878,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:42:47.427 [info] {"args":{"id":18},"id":22,"meta":{},"system_time":1776955367427108291,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:42:47.427 [debug] QUERY OK source="media_items" db=0.2ms idle=80.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" = ?) [18] 16:42:47.427 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:42:47.428 [debug] QUERY OK source="sources" db=0.2ms idle=10.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:47.428 [debug] QUERY OK source="media_profiles" db=0.2ms idle=8.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] 16:42:47.429 [debug] QUERY OK source="media_items" db=0.3ms idle=8.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [18] 16:42:47.430 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [18] 16:42:47.430 [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] 16:42:47.431 [debug] QUERY OK source="settings" db=0.2ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:47.431 [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 [] 16:42:47.432 [debug] Running yt-dlp command for action: get_downloadable_status 16:42:47.433 [debug] QUERY OK source="settings" db=0.1ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:47.433 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:47.433 [debug] QUERY OK source="settings" db=0.2ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:47.434 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=O_L5M8VojLs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b4/0d/b40daa251fdaa6204673af8e2d9ae48e7fdb81ae11c8faf6be7c393e0cfca6c3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:42:48.203 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "📘\u00A0Order a copy of The Making of a Manager: https://amzn.to/3Yp72jA\n\nWe’ve all had good managers who bring out the best in us, and bad managers who we avoid as much as possible. \n\nBut if we think about it, what really sets these two types of managers apart?\n\nIn The Making of a Manager, Julie Zhuo shares 8 universal qualities all great managers have and in this video, I go through the top 3 that I think make the biggest difference.\n\nEnjoy 😁\n\n*TIMESTAMPS*\n00:00 What Qualities do Great Managers Have?\n01:05 Great Managers Build Trust\n03:03 Great Managers Give Great Feedback\n04:54 Great Managers Run Amazing Meetings\n06:05 Remaining 5 Qualities Great Managers Have\n\n*RESOURCES I MENTION IN THE VIDEO*\nProductive 1:1’s with Your Manager: https://youtu.be/LWz57CpcSnE\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#makingofamanager #peoplemanagers #juliezhuo", "duration" => 440, "filename" => "/downloads/Jeff Su/2023-02-07 What Makes a GREAT Manager? (it’s not what you think)/What Makes a GREAT Manager? (it’s not what you think) [84kPR_NDjI8].mp4", "id" => "84kPR_NDjI8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=84kPR_NDjI8", "playlist_index" => 77, "timestamp" => 1675774804, "title" => "What Makes a GREAT Manager? (it’s not what you think)", "upload_date" => "20230207"} 16:42:48.205 [debug] QUERY OK source="sources" db=2.2ms queue=0.1ms idle=771.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:42:48.207 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=773.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:48.211 [debug] QUERY OK source="media_items" db=2.2ms queue=1.7ms idle=774.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-07 13:00:04Z], 1] 16:42:48.215 [debug] QUERY OK source="media_items" db=2.5ms queue=0.1ms idle=778.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📘\u00A0Order a copy of The Making of a Manager: https://amzn.to/3Yp72jA\n\nWe’ve all had good managers who bring out the best in us, and bad managers who we avoid as much as possible. \n\nBut if we think about it, what really sets these two types of managers apart?\n\nIn The Making of a Manager, Julie Zhuo shares 8 universal qualities all great managers have and in this video, I go through the top 3 that I think make the biggest difference.\n\nEnjoy 😁\n\n*TIMESTAMPS*\n00:00 What Qualities do Great Managers Have?\n01:05 Great Managers Build Trust\n03:03 Great Managers Give Great Feedback\n04:54 Great Managers Run Amazing Meetings\n06:05 Remaining 5 Qualities Great Managers Have\n\n*RESOURCES I MENTION IN THE VIDEO*\nProductive 1:1’s with Your Manager: https://youtu.be/LWz57CpcSnE\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#makingofamanager #peoplemanagers #juliezhuo", "What Makes a GREAT Manager? (it’s not what you think)", "c55bdd8c-01bf-4434-a56a-b3f3bb0d95d6", false, "84kPR_NDjI8", 1, [], 440, false, "https://www.youtube.com/watch?v=84kPR_NDjI8", 77, "/downloads/Jeff Su/2023-02-07 What Makes a GREAT Manager? (it’s not what you think)/What Makes a GREAT Manager? (it’s not what you think) [84kPR_NDjI8].mp4", false, false, 99, ~U[2023-02-07 13:00:04Z], ~U[2026-04-23 14:42:48Z], ~U[2026-04-23 14:42:48Z], "📘\u00A0Order a copy of The Making of a Manager: https://amzn.to/3Yp72jA\n\nWe’ve all had good managers who bring out the best in us, and bad managers who we avoid as much as possible. \n\nBut if we think about it, what really sets these two types of managers apart?\n\nIn The Making of a Manager, Julie Zhuo shares 8 universal qualities all great managers have and in this video, I go through the top 3 that I think make the biggest difference.\n\nEnjoy 😁\n\n*TIMESTAMPS*\n00:00 What Qualities do Great Managers Have?\n01:05 Great Managers Build Trust\n03:03 Great Managers Give Great Feedback\n04:54 Great Managers Run Amazing Meetings\n06:05 Remaining 5 Qualities Great Managers Have\n\n*RESOURCES I MENTION IN THE VIDEO*\nProductive 1:1’s with Your Manager: https://youtu.be/LWz57CpcSnE\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#makingofamanager #peoplemanagers #juliezhuo", "What Makes a GREAT Manager? (it’s not what you think)", "84kPR_NDjI8", 1, 440, false, "https://www.youtube.com/watch?v=84kPR_NDjI8", "/downloads/Jeff Su/2023-02-07 What Makes a GREAT Manager? (it’s not what you think)/What Makes a GREAT Manager? (it’s not what you think) [84kPR_NDjI8].mp4", false, ~U[2023-02-07 13:00:04Z]] 16:42:48.217 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms idle=376.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:42:48.220 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.8ms idle=12.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] 16:42:48.221 [debug] QUERY OK source="media_items" db=0.8ms idle=13.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 [77] 16:42:48.222 [info] Kicking off download for media item #77 (84kPR_NDjI8) 16:42:48.226 [debug] QUERY OK source="tasks" db=0.6ms queue=0.2ms idle=8.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [81, 77, ~U[2026-04-23 14:42:48Z], ~U[2026-04-23 14:42:48Z]] 16:42:48.227 [debug] Current batch of media processed. Will check again in 1000ms 16:42:48.257 [info] {"source":"oban","duration":1168,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:42:49.227 [debug] Current batch of media processed. Will check again in 1000ms 16:42:50.228 [debug] Current batch of media processed. Will check again in 1000ms 16:42:51.229 [debug] Current batch of media processed. Will check again in 1000ms 16:42:52.231 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=125\n\nTired of performing necessary yet repetitive tasks at work? \n\nLet’s go over my 8 favorite set-and-forget productivity tips for work that are huge time-savers in the long run 🏃🏻\n\nThese tips include: updating default settings in Google Docs, Sheets, Slides, and even the Microsoft Suite of tools; using group aliases for Google Calendar and Drive; setting up Appointment Slots for automated scheduling; creating filters in Gmail, and much more! \n\n*TIMESTAMPS*\n00:00 Stop Performing Repetitive Tasks\n00:18 Challenge the Status Quo\n01:24 Grouping for Efficiency\n02:13 Automate Back-and-Forths\n03:44 Filter out the Trash\n04:59 Make an Offer They Can’t Refuse\n05:41 The Self-Serve Checkout\n06:28 Consistent File Management\n07:22 Two Minute Rule for Your Inbox\n\n*RESOURCES I MENTION IN THE VIDEO*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\nMy Alfred Tutorial - https://www.youtube.com/watch?v=FXV-zwkRMxo\nImportant Spreadsheet Formulas to know - https://www.youtube.com/watch?v=98dnBA5WYLY\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity #timesavers #workspace", "duration" => 493, "filename" => "/downloads/Jeff Su/2023-01-24 8 Productivity Tips for Work (that pay off forever)!/8 Productivity Tips for Work (that pay off forever)! [QHrWMMlVYRA].mp4", "id" => "QHrWMMlVYRA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QHrWMMlVYRA", "playlist_index" => 78, "timestamp" => 1674565225, "title" => "8 Productivity Tips for Work (that pay off forever)!", "upload_date" => "20230124"} 16:42:52.233 [debug] QUERY OK source="sources" db=1.6ms idle=1386.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:42:52.235 [debug] QUERY OK source="sources" db=1.0ms queue=0.6ms idle=989.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:52.238 [debug] QUERY OK source="media_items" db=1.8ms queue=0.6ms idle=991.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-01-24 13:00:25Z], 1] 16:42:52.243 [debug] QUERY OK source="media_items" db=2.8ms idle=994.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=125\n\nTired of performing necessary yet repetitive tasks at work? \n\nLet’s go over my 8 favorite set-and-forget productivity tips for work that are huge time-savers in the long run 🏃🏻\n\nThese tips include: updating default settings in Google Docs, Sheets, Slides, and even the Microsoft Suite of tools; using group aliases for Google Calendar and Drive; setting up Appointment Slots for automated scheduling; creating filters in Gmail, and much more! \n\n*TIMESTAMPS*\n00:00 Stop Performing Repetitive Tasks\n00:18 Challenge the Status Quo\n01:24 Grouping for Efficiency\n02:13 Automate Back-and-Forths\n03:44 Filter out the Trash\n04:59 Make an Offer They Can’t Refuse\n05:41 The Self-Serve Checkout\n06:28 Consistent File Management\n07:22 Two Minute Rule for Your Inbox\n\n*RESOURCES I MENTION IN THE VIDEO*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\nMy Alfred Tutorial - https://www.youtube.com/watch?v=FXV-zwkRMxo\nImportant Spreadsheet Formulas to know - https://www.youtube.com/watch?v=98dnBA5WYLY\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity #timesavers #workspace", "8 Productivity Tips for Work (that pay off forever)!", "dc030a38-99ec-43b7-a8f5-3be4b063b0b3", false, "QHrWMMlVYRA", 1, [], 493, false, "https://www.youtube.com/watch?v=QHrWMMlVYRA", 78, "/downloads/Jeff Su/2023-01-24 8 Productivity Tips for Work (that pay off forever)!/8 Productivity Tips for Work (that pay off forever)! [QHrWMMlVYRA].mp4", false, false, 99, ~U[2023-01-24 13:00:25Z], ~U[2026-04-23 14:42:52Z], ~U[2026-04-23 14:42:52Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=125\n\nTired of performing necessary yet repetitive tasks at work? \n\nLet’s go over my 8 favorite set-and-forget productivity tips for work that are huge time-savers in the long run 🏃🏻\n\nThese tips include: updating default settings in Google Docs, Sheets, Slides, and even the Microsoft Suite of tools; using group aliases for Google Calendar and Drive; setting up Appointment Slots for automated scheduling; creating filters in Gmail, and much more! \n\n*TIMESTAMPS*\n00:00 Stop Performing Repetitive Tasks\n00:18 Challenge the Status Quo\n01:24 Grouping for Efficiency\n02:13 Automate Back-and-Forths\n03:44 Filter out the Trash\n04:59 Make an Offer They Can’t Refuse\n05:41 The Self-Serve Checkout\n06:28 Consistent File Management\n07:22 Two Minute Rule for Your Inbox\n\n*RESOURCES I MENTION IN THE VIDEO*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\nMy Alfred Tutorial - https://www.youtube.com/watch?v=FXV-zwkRMxo\nImportant Spreadsheet Formulas to know - https://www.youtube.com/watch?v=98dnBA5WYLY\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity #timesavers #workspace", "8 Productivity Tips for Work (that pay off forever)!", "QHrWMMlVYRA", 1, 493, false, "https://www.youtube.com/watch?v=QHrWMMlVYRA", "/downloads/Jeff Su/2023-01-24 8 Productivity Tips for Work (that pay off forever)!/8 Productivity Tips for Work (that pay off forever)! [QHrWMMlVYRA].mp4", false, ~U[2023-01-24 13:00:25Z]] 16:42:52.244 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=396.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:52.245 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=11.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] 16:42:52.246 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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 [78] 16:42:52.246 [info] Kicking off download for media item #78 (QHrWMMlVYRA) 16:42:52.253 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=8.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [82, 78, ~U[2026-04-23 14:42:52Z], ~U[2026-04-23 14:42:52Z]] 16:42:52.254 [debug] Current batch of media processed. Will check again in 1000ms 16:42:53.230 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GchXMRwuWxE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0a/e4/0ae40afdea7ddc6c4228e316ab15c81e499387e34e91f3dbd7926640c4ca8b68.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:42:53.232 [debug] Running yt-dlp command for action: download 16:42:53.233 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=985.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:53.234 [debug] QUERY OK source="settings" db=0.3ms idle=981.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:53.234 [debug] QUERY OK source="settings" db=0.5ms idle=981.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:53.235 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GchXMRwuWxE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/74/4c/744c383c0e6e624b99ddefc0c9e772703ab7a005c9a44f050da727e9608e6a5f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:42:53.258 [debug] Current batch of media processed. Will check again in 1000ms 16:42:53.599 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=O_L5M8VojLs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b4/0d/b40daa251fdaa6204673af8e2d9ae48e7fdb81ae11c8faf6be7c393e0cfca6c3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:42:53.600 [debug] Running yt-dlp command for action: download 16:42:53.601 [debug] QUERY OK source="settings" db=1.1ms idle=1346.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:53.603 [debug] QUERY OK source="settings" db=1.4ms idle=752.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:53.605 [debug] QUERY OK source="settings" db=1.1ms idle=370.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:42:53.605 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=O_L5M8VojLs --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d4/af/d4afe3084847a93390122064cff048b101d3d6e882105fffbdb391b25e410f79.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:42:54.259 [debug] Current batch of media processed. Will check again in 1000ms 16:42:55.260 [debug] Current batch of media processed. Will check again in 1000ms 16:42:56.262 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=124\n\n*Make a copy of my template here* 👉🏻\u00A0https://www.jeffsu.org/a-productive-notion-daily-planner-for-2023\n\n*Sign up for my Productivity Newsletter* 📬 https://www.jeffsu.org/productivity-ping/\n\nSince my first video on how to plan a productive day on Notion (https://youtu.be/sZB8OZoSIyU), I’ve been obsessed with creating the most efficient Daily Planner on Notion (minimal effort, maximum returns)\n\nAfter 3 years of tweaking, I think we’re 90% of the way there! This Productive Daily Planner for Notion keeps the core elements from previous templates (e.g. Make Time workflow) while improving upon the usability (i.e. no need to create a new page for each week)\n\nEnjoy 😁\n\n*TIMESTAMPS*\n00:00 A Productive Notion Daily Planner\n00:40 Structure of Daily Planner Agenda\n01:41 Daily Tasks\n04:16 Make Time Database\n05:32 Projects and Upcoming Tasks\n06:40 Pro Tips when using this Planner\n07:54 Feedback for this Notion Daily Planner\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Simple Productivity System - https://youtu.be/7M6bIeVbCqA\nThomas Frank’s video - https://youtu.be/tjAWsuz5MdM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #dailyplanner #productivity", "duration" => 486, "filename" => "/downloads/Jeff Su/2023-01-10 A Productive Notion Daily Planner!/A Productive Notion Daily Planner! [XXYfRgXTEE0].mp4", "id" => "XXYfRgXTEE0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XXYfRgXTEE0", "playlist_index" => 79, "timestamp" => 1673355627, "title" => "A Productive Notion Daily Planner!", "upload_date" => "20230110"} 16:42:56.263 [debug] QUERY OK source="sources" db=0.4ms idle=1004.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:42:56.263 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1004.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:56.265 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=1005.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-01-10 13:00:27Z], 1] 16:42:56.267 [debug] QUERY OK source="media_items" db=1.6ms idle=402.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=124\n\n*Make a copy of my template here* 👉🏻\u00A0https://www.jeffsu.org/a-productive-notion-daily-planner-for-2023\n\n*Sign up for my Productivity Newsletter* 📬 https://www.jeffsu.org/productivity-ping/\n\nSince my first video on how to plan a productive day on Notion (https://youtu.be/sZB8OZoSIyU), I’ve been obsessed with creating the most efficient Daily Planner on Notion (minimal effort, maximum returns)\n\nAfter 3 years of tweaking, I think we’re 90% of the way there! This Productive Daily Planner for Notion keeps the core elements from previous templates (e.g. Make Time workflow) while improving upon the usability (i.e. no need to create a new page for each week)\n\nEnjoy 😁\n\n*TIMESTAMPS*\n00:00 A Productive Notion Daily Planner\n00:40 Structure of Daily Planner Agenda\n01:41 Daily Tasks\n04:16 Make Time Database\n05:32 Projects and Upcoming Tasks\n06:40 Pro Tips when using this Planner\n07:54 Feedback for this Notion Daily Planner\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Simple Productivity System - https://youtu.be/7M6bIeVbCqA\nThomas Frank’s video - https://youtu.be/tjAWsuz5MdM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #dailyplanner #productivity", "A Productive Notion Daily Planner!", "9fc563e3-ac9c-47ae-9912-0aead0dab0eb", false, "XXYfRgXTEE0", 1, [], 486, false, "https://www.youtube.com/watch?v=XXYfRgXTEE0", 79, "/downloads/Jeff Su/2023-01-10 A Productive Notion Daily Planner!/A Productive Notion Daily Planner! [XXYfRgXTEE0].mp4", false, false, 99, ~U[2023-01-10 13:00:27Z], ~U[2026-04-23 14:42:56Z], ~U[2026-04-23 14:42:56Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=124\n\n*Make a copy of my template here* 👉🏻\u00A0https://www.jeffsu.org/a-productive-notion-daily-planner-for-2023\n\n*Sign up for my Productivity Newsletter* 📬 https://www.jeffsu.org/productivity-ping/\n\nSince my first video on how to plan a productive day on Notion (https://youtu.be/sZB8OZoSIyU), I’ve been obsessed with creating the most efficient Daily Planner on Notion (minimal effort, maximum returns)\n\nAfter 3 years of tweaking, I think we’re 90% of the way there! This Productive Daily Planner for Notion keeps the core elements from previous templates (e.g. Make Time workflow) while improving upon the usability (i.e. no need to create a new page for each week)\n\nEnjoy 😁\n\n*TIMESTAMPS*\n00:00 A Productive Notion Daily Planner\n00:40 Structure of Daily Planner Agenda\n01:41 Daily Tasks\n04:16 Make Time Database\n05:32 Projects and Upcoming Tasks\n06:40 Pro Tips when using this Planner\n07:54 Feedback for this Notion Daily Planner\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Simple Productivity System - https://youtu.be/7M6bIeVbCqA\nThomas Frank’s video - https://youtu.be/tjAWsuz5MdM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #dailyplanner #productivity", "A Productive Notion Daily Planner!", "XXYfRgXTEE0", 1, 486, false, "https://www.youtube.com/watch?v=XXYfRgXTEE0", "/downloads/Jeff Su/2023-01-10 A Productive Notion Daily Planner!/A Productive Notion Daily Planner! [XXYfRgXTEE0].mp4", false, ~U[2023-01-10 13:00:27Z]] 16:42:56.268 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=10.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:42:56.269 [debug] QUERY OK source="media_profiles" db=0.4ms queue=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] 16:42:56.270 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [79] 16:42:56.271 [info] Kicking off download for media item #79 (XXYfRgXTEE0) 16:42:56.274 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=5.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [83, 79, ~U[2026-04-23 14:42:56Z], ~U[2026-04-23 14:42:56Z]] 16:42:56.274 [debug] Current batch of media processed. Will check again in 1000ms 16:42:57.275 [debug] Current batch of media processed. Will check again in 1000ms 16:42:58.275 [debug] Current batch of media processed. Will check again in 1000ms 16:42:59.276 [debug] Current batch of media processed. Will check again in 1000ms 16:43:00.212 [info] {"source":"oban","duration":353,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:43:00.278 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Turned 30 this year so I spent a bit of time thinking about habits I wish I had started sooner\n\nHere are the 5 “unexpected” (aka unconventional) habits I ignored in my 20’s but hey, better late than never right? ✌🏻\n\n*TIMESTAMPS*\n00:00 5 Habits I Did NOT Ignore\n00:43 Wish People Happy Birthday\n02:15 Moisturize and Apply Sunscreen\n03:56 Close the Loop\n05:10 Read Less, Review More\n06:31 Be a Guide, Not a Guru\n07:59 Bonus Habit\n\n*RESOURCES I MENTION IN THE VIDEO*\n🥺 La Roche-Posay Moisturizer: https://amzn.to/3CrUwHu\n☀️ La Roche-Posay Sunscreen: https://amzn.to/3vMKjRW\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n🎂\u00A0Birthday Exporter - https://chrome.google.com/webstore/detail/birthday-calendar-exporte/imielmggcccenhgncmpjlehemlinhjjo?hl=en\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#unconventionalhabits #dailyhabits #selfimprovement", "duration" => 507, "filename" => "/downloads/Jeff Su/2022-12-27 5 Habits I Ignored in My 20s/5 Habits I Ignored in My 20s [99-bTIKU8OE].mp4", "id" => "99-bTIKU8OE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=99-bTIKU8OE", "playlist_index" => 80, "timestamp" => 1672146007, "title" => "5 Habits I Ignored in My 20s", "upload_date" => "20221227"} 16:43:00.279 [debug] QUERY OK source="sources" db=0.4ms idle=408.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:00.280 [debug] QUERY OK source="sources" db=0.8ms idle=67.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:00.281 [debug] QUERY OK source="media_items" db=0.4ms idle=21.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-27 13:00:07Z], 1] 16:43:00.283 [debug] QUERY OK source="media_items" db=1.5ms idle=22.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Turned 30 this year so I spent a bit of time thinking about habits I wish I had started sooner\n\nHere are the 5 “unexpected” (aka unconventional) habits I ignored in my 20’s but hey, better late than never right? ✌🏻\n\n*TIMESTAMPS*\n00:00 5 Habits I Did NOT Ignore\n00:43 Wish People Happy Birthday\n02:15 Moisturize and Apply Sunscreen\n03:56 Close the Loop\n05:10 Read Less, Review More\n06:31 Be a Guide, Not a Guru\n07:59 Bonus Habit\n\n*RESOURCES I MENTION IN THE VIDEO*\n🥺 La Roche-Posay Moisturizer: https://amzn.to/3CrUwHu\n☀️ La Roche-Posay Sunscreen: https://amzn.to/3vMKjRW\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n🎂\u00A0Birthday Exporter - https://chrome.google.com/webstore/detail/birthday-calendar-exporte/imielmggcccenhgncmpjlehemlinhjjo?hl=en\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#unconventionalhabits #dailyhabits #selfimprovement", "5 Habits I Ignored in My 20s", "d7bdf269-16c2-4b10-866a-0b22330a7079", false, "99-bTIKU8OE", 1, [], 507, false, "https://www.youtube.com/watch?v=99-bTIKU8OE", 80, "/downloads/Jeff Su/2022-12-27 5 Habits I Ignored in My 20s/5 Habits I Ignored in My 20s [99-bTIKU8OE].mp4", false, false, 99, ~U[2022-12-27 13:00:07Z], ~U[2026-04-23 14:43:00Z], ~U[2026-04-23 14:43:00Z], "Turned 30 this year so I spent a bit of time thinking about habits I wish I had started sooner\n\nHere are the 5 “unexpected” (aka unconventional) habits I ignored in my 20’s but hey, better late than never right? ✌🏻\n\n*TIMESTAMPS*\n00:00 5 Habits I Did NOT Ignore\n00:43 Wish People Happy Birthday\n02:15 Moisturize and Apply Sunscreen\n03:56 Close the Loop\n05:10 Read Less, Review More\n06:31 Be a Guide, Not a Guru\n07:59 Bonus Habit\n\n*RESOURCES I MENTION IN THE VIDEO*\n🥺 La Roche-Posay Moisturizer: https://amzn.to/3CrUwHu\n☀️ La Roche-Posay Sunscreen: https://amzn.to/3vMKjRW\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n🎂\u00A0Birthday Exporter - https://chrome.google.com/webstore/detail/birthday-calendar-exporte/imielmggcccenhgncmpjlehemlinhjjo?hl=en\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#unconventionalhabits #dailyhabits #selfimprovement", "5 Habits I Ignored in My 20s", "99-bTIKU8OE", 1, 507, false, "https://www.youtube.com/watch?v=99-bTIKU8OE", "/downloads/Jeff Su/2022-12-27 5 Habits I Ignored in My 20s/5 Habits I Ignored in My 20s [99-bTIKU8OE].mp4", false, ~U[2022-12-27 13:00:07Z]] 16:43:00.284 [debug] QUERY OK source="sources" db=0.3ms idle=24.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:00.284 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:43:00.285 [debug] QUERY OK source="media_items" db=0.3ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [80] 16:43:00.285 [info] Kicking off download for media item #80 (99-bTIKU8OE) 16:43:00.288 [debug] QUERY OK source="tasks" db=0.2ms idle=3.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [84, 80, ~U[2026-04-23 14:43:00Z], ~U[2026-04-23 14:43:00Z]] 16:43:00.288 [debug] Current batch of media processed. Will check again in 1000ms 16:43:01.288 [debug] Current batch of media processed. Will check again in 1000ms 16:43:02.289 [debug] Current batch of media processed. Will check again in 1000ms 16:43:03.290 [debug] Current batch of media processed. Will check again in 1000ms 16:43:04.291 [debug] Current batch of media processed. Will check again in 1000ms 16:43:05.293 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My Macro-Micro Roadmap: https://www.jeffsu.org/the-definitive-guide-to-getting-promoted-at-work\n\nSubscribe to my Career newsletter: https://www.jeffsu.org/the-debrief/\n\nThe bad news? Your next promotion is 80% determined by your manager 😞\n\nThe good news? There is a 100% chance you’ll be able to influence that 80% 😏\n\nHaving been promoted 4 times in the last 8 years of my career in management consulting and tech, here are my top 5 learnings!\n\n*TIMESTAMPS*\n00:00 How to Get Promoted Every 2 Years\n00:36 Create a Macro-Micro Roadmap\n01:43 Manage Up, and Across\n03:07 Don’t Beat Around the Bush\n03:57 Play the Game, and Keep Score\n05:25 Be the Master of One\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Top 5 Productivity Tips for Work - https://youtu.be/1LOlJay5Sbw\nDickie Bush question list (same doc as Macro-Micro Roadmap) - https://www.jeffsu.org/the-definitive-guide-to-getting-promoted-at-work\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#promotion #careertips #productivityatwork", "duration" => 386, "filename" => "/downloads/Jeff Su/2022-12-06 5 Steps to Get Your Next Promotion at Work!/5 Steps to Get Your Next Promotion at Work! [bQV58TZW6hQ].mp4", "id" => "bQV58TZW6hQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bQV58TZW6hQ", "playlist_index" => 81, "timestamp" => 1670331625, "title" => "5 Steps to Get Your Next Promotion at Work!", "upload_date" => "20221206"} 16:43:05.294 [debug] QUERY OK source="sources" db=0.3ms idle=1034.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:05.295 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=1035.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:05.296 [debug] QUERY OK source="media_items" db=0.4ms idle=1036.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-06 13:00:25Z], 1] 16:43:05.299 [debug] QUERY OK source="media_items" db=1.6ms idle=1037.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Macro-Micro Roadmap: https://www.jeffsu.org/the-definitive-guide-to-getting-promoted-at-work\n\nSubscribe to my Career newsletter: https://www.jeffsu.org/the-debrief/\n\nThe bad news? Your next promotion is 80% determined by your manager 😞\n\nThe good news? There is a 100% chance you’ll be able to influence that 80% 😏\n\nHaving been promoted 4 times in the last 8 years of my career in management consulting and tech, here are my top 5 learnings!\n\n*TIMESTAMPS*\n00:00 How to Get Promoted Every 2 Years\n00:36 Create a Macro-Micro Roadmap\n01:43 Manage Up, and Across\n03:07 Don’t Beat Around the Bush\n03:57 Play the Game, and Keep Score\n05:25 Be the Master of One\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Top 5 Productivity Tips for Work - https://youtu.be/1LOlJay5Sbw\nDickie Bush question list (same doc as Macro-Micro Roadmap) - https://www.jeffsu.org/the-definitive-guide-to-getting-promoted-at-work\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#promotion #careertips #productivityatwork", "5 Steps to Get Your Next Promotion at Work!", "978e6d58-3791-4eb0-9d01-d7932c384f45", false, "bQV58TZW6hQ", 1, [], 386, false, "https://www.youtube.com/watch?v=bQV58TZW6hQ", 81, "/downloads/Jeff Su/2022-12-06 5 Steps to Get Your Next Promotion at Work!/5 Steps to Get Your Next Promotion at Work! [bQV58TZW6hQ].mp4", false, false, 99, ~U[2022-12-06 13:00:25Z], ~U[2026-04-23 14:43:05Z], ~U[2026-04-23 14:43:05Z], "My Macro-Micro Roadmap: https://www.jeffsu.org/the-definitive-guide-to-getting-promoted-at-work\n\nSubscribe to my Career newsletter: https://www.jeffsu.org/the-debrief/\n\nThe bad news? Your next promotion is 80% determined by your manager 😞\n\nThe good news? There is a 100% chance you’ll be able to influence that 80% 😏\n\nHaving been promoted 4 times in the last 8 years of my career in management consulting and tech, here are my top 5 learnings!\n\n*TIMESTAMPS*\n00:00 How to Get Promoted Every 2 Years\n00:36 Create a Macro-Micro Roadmap\n01:43 Manage Up, and Across\n03:07 Don’t Beat Around the Bush\n03:57 Play the Game, and Keep Score\n05:25 Be the Master of One\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Top 5 Productivity Tips for Work - https://youtu.be/1LOlJay5Sbw\nDickie Bush question list (same doc as Macro-Micro Roadmap) - https://www.jeffsu.org/the-definitive-guide-to-getting-promoted-at-work\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#promotion #careertips #productivityatwork", "5 Steps to Get Your Next Promotion at Work!", "bQV58TZW6hQ", 1, 386, false, "https://www.youtube.com/watch?v=bQV58TZW6hQ", "/downloads/Jeff Su/2022-12-06 5 Steps to Get Your Next Promotion at Work!/5 Steps to Get Your Next Promotion at Work! [bQV58TZW6hQ].mp4", false, ~U[2022-12-06 13:00:25Z]] 16:43:05.299 [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" = ?) [1] 16:43:05.300 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:43:05.301 [debug] QUERY OK source="media_items" db=1.0ms 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 [81] 16:43:05.301 [info] Kicking off download for media item #81 (bQV58TZW6hQ) 16:43:05.305 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=5.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [85, 81, ~U[2026-04-23 14:43:05Z], ~U[2026-04-23 14:43:05Z]] 16:43:05.305 [debug] Current batch of media processed. Will check again in 1000ms 16:43:06.305 [debug] Current batch of media processed. Will check again in 1000ms 16:43:07.307 [debug] Current batch of media processed. Will check again in 1000ms 16:43:08.307 [debug] Current batch of media processed. Will check again in 1000ms 16:43:09.309 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=121\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📧\u00A0Pressing “Send” is easy, but writing a memorable thank you email is not. Here are my top 3 tips for an amazing post-interview email!\n\nMy Interview Questions & Answers Playlist 👉🏻\u00A0https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nFirst, the trick is to actually start DURING the interview itself and write down 1 specific detail the interviewer seems to care most about, and bring that detail up in the post-interview follow up email to show you were paying attention\n\nNext, while it seems obvious to know the interviewer’s email (duh!) you sometimes actually forget to ask for it before leaving the interview. In that case you can ask the recruiter for help or try to find the email on your own\n\nFinally, don’t be afraid to be shameless! You worked SO HARD on the job application, you prepared SO MUCH for the interview. If you don’t get a respond to your thank note, wait a week and follow up!\n\n*TIMESTAMPS*\n00:00 How to write a post interview email\n00:28 Why a thank you email is important\n00:51 Point to something specific\n03:09 Find interviewers’ email address\n03:56 Pleasant persistence\n04:37 Bonus tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload the Thank You Email Template - https://www.jeffsu.org/how-to-write-a-memorable-thank-you-email\nThe CARL Answer Structure - https://www.youtube.com/watch?v=gZ2354BH0a0\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇_\n\n#interviewtips #jobsearch #thankyouemail", "duration" => 340, "filename" => "/downloads/Jeff Su/2022-11-22 Write a PERFECT Interview Thank You Email!/Write a PERFECT Interview Thank You Email! [gSbV3q_MMbg].mp4", "id" => "gSbV3q_MMbg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gSbV3q_MMbg", "playlist_index" => 82, "timestamp" => 1669122035, "title" => "Write a PERFECT Interview Thank You Email!", "upload_date" => "20221122"} 16:43:09.310 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=421.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:09.311 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=51.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:09.311 [debug] QUERY OK source="media_items" db=0.4ms idle=52.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-22 13:00:35Z], 1] 16:43:09.319 [debug] QUERY OK source="media_items" db=7.0ms idle=53.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=121\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📧\u00A0Pressing “Send” is easy, but writing a memorable thank you email is not. Here are my top 3 tips for an amazing post-interview email!\n\nMy Interview Questions & Answers Playlist 👉🏻\u00A0https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nFirst, the trick is to actually start DURING the interview itself and write down 1 specific detail the interviewer seems to care most about, and bring that detail up in the post-interview follow up email to show you were paying attention\n\nNext, while it seems obvious to know the interviewer’s email (duh!) you sometimes actually forget to ask for it before leaving the interview. In that case you can ask the recruiter for help or try to find the email on your own\n\nFinally, don’t be afraid to be shameless! You worked SO HARD on the job application, you prepared SO MUCH for the interview. If you don’t get a respond to your thank note, wait a week and follow up!\n\n*TIMESTAMPS*\n00:00 How to write a post interview email\n00:28 Why a thank you email is important\n00:51 Point to something specific\n03:09 Find interviewers’ email address\n03:56 Pleasant persistence\n04:37 Bonus tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload the Thank You Email Template - https://www.jeffsu.org/how-to-write-a-memorable-thank-you-email\nThe CARL Answer Structure - https://www.youtube.com/watch?v=gZ2354BH0a0\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇_\n\n#interviewtips #jobsearch #thankyouemail", "Write a PERFECT Interview Thank You Email!", "bae4a8aa-a7ca-41c0-b8cc-69fb0270e3bc", false, "gSbV3q_MMbg", 1, [], 340, false, "https://www.youtube.com/watch?v=gSbV3q_MMbg", 82, "/downloads/Jeff Su/2022-11-22 Write a PERFECT Interview Thank You Email!/Write a PERFECT Interview Thank You Email! [gSbV3q_MMbg].mp4", false, false, 99, ~U[2022-11-22 13:00:35Z], ~U[2026-04-23 14:43:09Z], ~U[2026-04-23 14:43:09Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=121\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📧\u00A0Pressing “Send” is easy, but writing a memorable thank you email is not. Here are my top 3 tips for an amazing post-interview email!\n\nMy Interview Questions & Answers Playlist 👉🏻\u00A0https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nFirst, the trick is to actually start DURING the interview itself and write down 1 specific detail the interviewer seems to care most about, and bring that detail up in the post-interview follow up email to show you were paying attention\n\nNext, while it seems obvious to know the interviewer’s email (duh!) you sometimes actually forget to ask for it before leaving the interview. In that case you can ask the recruiter for help or try to find the email on your own\n\nFinally, don’t be afraid to be shameless! You worked SO HARD on the job application, you prepared SO MUCH for the interview. If you don’t get a respond to your thank note, wait a week and follow up!\n\n*TIMESTAMPS*\n00:00 How to write a post interview email\n00:28 Why a thank you email is important\n00:51 Point to something specific\n03:09 Find interviewers’ email address\n03:56 Pleasant persistence\n04:37 Bonus tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload the Thank You Email Template - https://www.jeffsu.org/how-to-write-a-memorable-thank-you-email\nThe CARL Answer Structure - https://www.youtube.com/watch?v=gZ2354BH0a0\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇_\n\n#interviewtips #jobsearch #thankyouemail", "Write a PERFECT Interview Thank You Email!", "gSbV3q_MMbg", 1, 340, false, "https://www.youtube.com/watch?v=gSbV3q_MMbg", "/downloads/Jeff Su/2022-11-22 Write a PERFECT Interview Thank You Email!/Write a PERFECT Interview Thank You Email! [gSbV3q_MMbg].mp4", false, ~U[2022-11-22 13:00:35Z]] 16:43:09.320 [debug] QUERY OK source="sources" db=0.3ms queue=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" = ?) [1] 16:43:09.321 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=10.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:43:09.322 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=10.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [82] 16:43:09.322 [info] Kicking off download for media item #82 (gSbV3q_MMbg) 16:43:09.326 [debug] QUERY OK source="tasks" db=0.2ms idle=5.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [86, 82, ~U[2026-04-23 14:43:09Z], ~U[2026-04-23 14:43:09Z]] 16:43:09.327 [debug] Current batch of media processed. Will check again in 1000ms 16:43:10.327 [debug] Current batch of media processed. Will check again in 1000ms 16:43:11.328 [debug] Current batch of media processed. Will check again in 1000ms 16:43:12.329 [debug] Current batch of media processed. Will check again in 1000ms 16:43:13.331 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "I’ve actually been asked whether I thought I wasted 2 years in management consulting by quite a few people (including my mom, who thought I wasted my time lol), so I gave it some serious thought 🤔\n\nBut I always came to the same conclusion: had I not joined consulting, I really don’t think I would have adopted a framework mentality towards problem solving since I wouldn’t have gone through the case interview process \n\nAnd this skills is going to benefit me for the rest of my life, so 100% worth it ✌🏻\n\nTIMESTAMPS\n00:00 Why I might have wasted 2 years\n00:43 What I got out of Management Consulting\n01:29 How to Problem Solve using Frameworks\n02:45 Example: Business planning\n03:55 Example: Starting a new job\n04:27 How you can use frameworks \n\nRESOURCES I MENTION IN THE VIDEO\nVictor Cheng’s Business Situation Framework - https://www.caseinterview.com/case_interview_frameworks.pdf\nCommunicate effectively at work - https://youtu.be/8bZGi3yz4qg\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#careertips #consulting #tech", "duration" => 320, "filename" => "/downloads/Jeff Su/2022-11-15 Did I Waste 2 Years in Management Consulting?/Did I Waste 2 Years in Management Consulting? [lcRILuvAWgU].mp4", "id" => "lcRILuvAWgU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lcRILuvAWgU", "playlist_index" => 83, "timestamp" => 1668518104, "title" => "Did I Waste 2 Years in Management Consulting?", "upload_date" => "20221115"} 16:43:13.332 [debug] QUERY OK source="sources" db=0.3ms idle=435.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:13.332 [debug] QUERY OK source="sources" db=0.3ms idle=73.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:13.333 [debug] QUERY OK source="media_items" db=0.7ms idle=74.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-15 13:15:04Z], 1] 16:43:13.774 [debug] QUERY OK source="media_items" db=439.8ms idle=75.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I’ve actually been asked whether I thought I wasted 2 years in management consulting by quite a few people (including my mom, who thought I wasted my time lol), so I gave it some serious thought 🤔\n\nBut I always came to the same conclusion: had I not joined consulting, I really don’t think I would have adopted a framework mentality towards problem solving since I wouldn’t have gone through the case interview process \n\nAnd this skills is going to benefit me for the rest of my life, so 100% worth it ✌🏻\n\nTIMESTAMPS\n00:00 Why I might have wasted 2 years\n00:43 What I got out of Management Consulting\n01:29 How to Problem Solve using Frameworks\n02:45 Example: Business planning\n03:55 Example: Starting a new job\n04:27 How you can use frameworks \n\nRESOURCES I MENTION IN THE VIDEO\nVictor Cheng’s Business Situation Framework - https://www.caseinterview.com/case_interview_frameworks.pdf\nCommunicate effectively at work - https://youtu.be/8bZGi3yz4qg\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#careertips #consulting #tech", "Did I Waste 2 Years in Management Consulting?", "c489393a-f5d0-46c2-bee9-b28588e888d4", false, "lcRILuvAWgU", 1, [], 320, false, "https://www.youtube.com/watch?v=lcRILuvAWgU", 83, "/downloads/Jeff Su/2022-11-15 Did I Waste 2 Years in Management Consulting?/Did I Waste 2 Years in Management Consulting? [lcRILuvAWgU].mp4", false, false, 99, ~U[2022-11-15 13:15:04Z], ~U[2026-04-23 14:43:13Z], ~U[2026-04-23 14:43:13Z], "I’ve actually been asked whether I thought I wasted 2 years in management consulting by quite a few people (including my mom, who thought I wasted my time lol), so I gave it some serious thought 🤔\n\nBut I always came to the same conclusion: had I not joined consulting, I really don’t think I would have adopted a framework mentality towards problem solving since I wouldn’t have gone through the case interview process \n\nAnd this skills is going to benefit me for the rest of my life, so 100% worth it ✌🏻\n\nTIMESTAMPS\n00:00 Why I might have wasted 2 years\n00:43 What I got out of Management Consulting\n01:29 How to Problem Solve using Frameworks\n02:45 Example: Business planning\n03:55 Example: Starting a new job\n04:27 How you can use frameworks \n\nRESOURCES I MENTION IN THE VIDEO\nVictor Cheng’s Business Situation Framework - https://www.caseinterview.com/case_interview_frameworks.pdf\nCommunicate effectively at work - https://youtu.be/8bZGi3yz4qg\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#careertips #consulting #tech", "Did I Waste 2 Years in Management Consulting?", "lcRILuvAWgU", 1, 320, false, "https://www.youtube.com/watch?v=lcRILuvAWgU", "/downloads/Jeff Su/2022-11-15 Did I Waste 2 Years in Management Consulting?/Did I Waste 2 Years in Management Consulting? [lcRILuvAWgU].mp4", false, ~U[2022-11-15 13:15:04Z]] 16:43:13.775 [debug] QUERY OK source="sources" db=0.3ms idle=516.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:13.776 [debug] QUERY OK source="media_profiles" db=0.2ms idle=443.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] 16:43:13.776 [debug] QUERY OK source="media_items" db=0.3ms idle=443.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 [83] 16:43:13.777 [info] Kicking off download for media item #83 (lcRILuvAWgU) 16:43:13.780 [debug] QUERY OK source="tasks" db=0.3ms idle=3.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [87, 83, ~U[2026-04-23 14:43:13Z], ~U[2026-04-23 14:43:13Z]] 16:43:13.780 [debug] Current batch of media processed. Will check again in 1000ms 16:43:14.780 [debug] Current batch of media processed. Will check again in 1000ms 16:43:15.781 [debug] Current batch of media processed. Will check again in 1000ms 16:43:16.782 [debug] Current batch of media processed. Will check again in 1000ms 16:43:17.784 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Here are the 6 Underrated Macbook Apps for Productivity:\n\nshottr - https://shottr.cc/\nCleanShot X - https://geni.us/cleanshotx\nMac Mouse Fix - https://mousefix.org/\nTempBox - https://tempbox.waseem.works/\nLatest - https://github.com/mangerlahn/Latest\nHovrly - https://hovrly.com/\nStickies - You already have it! 😉\n\n*The original Top 10 Macbook Productivity Apps* 👉🏻\u00A0https://youtu.be/-xXc7qeiC8I\n\nMost of these above apps are open source, and they’re ALL free to use. While a few of them are relatively simple (e.g. you can add Timezones in Google Calendar instead of using Hovrly), they’re just so lightweight and user-friendly! \n\nTIMESTAMPS\n00:00 Are Free Mac Apps Just Better?\n00:24 shottr\n02:44 Why I still use CleanShot X\n02:57 Mac Mouse Fix\n04:11 TempBox\n05:30 Latest\n06:08 Hovrly\n06:50 Stickies\n\nRESOURCES MENTIONED\nMust-Have File Management Apps - https://youtu.be/gcJDDSv7Gq8\nTop 10 Productivity Apps for the Mac - https://youtu.be/-xXc7qeiC8I\nProductive Macbook Tips - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zMWvqbdy1uoJ0IrJ2xyVQG\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#macbook #macapps #productivity", "duration" => 489, "filename" => "/downloads/Jeff Su/2022-11-01 6 Underrated Macbook Apps for Productivity!/6 Underrated Macbook Apps for Productivity! [gkYNdy-Hig4].mp4", "id" => "gkYNdy-Hig4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gkYNdy-Hig4", "playlist_index" => 84, "timestamp" => 1667306701, "title" => "6 Underrated Macbook Apps for Productivity!", "upload_date" => "20221101"} 16:43:17.785 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=880.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:17.786 [debug] QUERY OK source="sources" db=0.2ms idle=526.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:17.786 [debug] QUERY OK source="media_items" db=0.4ms idle=527.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-01 12:45:01Z], 1] 16:43:17.789 [debug] QUERY OK source="media_items" db=1.6ms idle=528.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Here are the 6 Underrated Macbook Apps for Productivity:\n\nshottr - https://shottr.cc/\nCleanShot X - https://geni.us/cleanshotx\nMac Mouse Fix - https://mousefix.org/\nTempBox - https://tempbox.waseem.works/\nLatest - https://github.com/mangerlahn/Latest\nHovrly - https://hovrly.com/\nStickies - You already have it! 😉\n\n*The original Top 10 Macbook Productivity Apps* 👉🏻\u00A0https://youtu.be/-xXc7qeiC8I\n\nMost of these above apps are open source, and they’re ALL free to use. While a few of them are relatively simple (e.g. you can add Timezones in Google Calendar instead of using Hovrly), they’re just so lightweight and user-friendly! \n\nTIMESTAMPS\n00:00 Are Free Mac Apps Just Better?\n00:24 shottr\n02:44 Why I still use CleanShot X\n02:57 Mac Mouse Fix\n04:11 TempBox\n05:30 Latest\n06:08 Hovrly\n06:50 Stickies\n\nRESOURCES MENTIONED\nMust-Have File Management Apps - https://youtu.be/gcJDDSv7Gq8\nTop 10 Productivity Apps for the Mac - https://youtu.be/-xXc7qeiC8I\nProductive Macbook Tips - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zMWvqbdy1uoJ0IrJ2xyVQG\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#macbook #macapps #productivity", "6 Underrated Macbook Apps for Productivity!", "0dc6e7a1-b052-4e60-8c8f-b99b84881fba", false, "gkYNdy-Hig4", 1, [], 489, false, "https://www.youtube.com/watch?v=gkYNdy-Hig4", 84, "/downloads/Jeff Su/2022-11-01 6 Underrated Macbook Apps for Productivity!/6 Underrated Macbook Apps for Productivity! [gkYNdy-Hig4].mp4", false, false, 99, ~U[2022-11-01 12:45:01Z], ~U[2026-04-23 14:43:17Z], ~U[2026-04-23 14:43:17Z], "Here are the 6 Underrated Macbook Apps for Productivity:\n\nshottr - https://shottr.cc/\nCleanShot X - https://geni.us/cleanshotx\nMac Mouse Fix - https://mousefix.org/\nTempBox - https://tempbox.waseem.works/\nLatest - https://github.com/mangerlahn/Latest\nHovrly - https://hovrly.com/\nStickies - You already have it! 😉\n\n*The original Top 10 Macbook Productivity Apps* 👉🏻\u00A0https://youtu.be/-xXc7qeiC8I\n\nMost of these above apps are open source, and they’re ALL free to use. While a few of them are relatively simple (e.g. you can add Timezones in Google Calendar instead of using Hovrly), they’re just so lightweight and user-friendly! \n\nTIMESTAMPS\n00:00 Are Free Mac Apps Just Better?\n00:24 shottr\n02:44 Why I still use CleanShot X\n02:57 Mac Mouse Fix\n04:11 TempBox\n05:30 Latest\n06:08 Hovrly\n06:50 Stickies\n\nRESOURCES MENTIONED\nMust-Have File Management Apps - https://youtu.be/gcJDDSv7Gq8\nTop 10 Productivity Apps for the Mac - https://youtu.be/-xXc7qeiC8I\nProductive Macbook Tips - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zMWvqbdy1uoJ0IrJ2xyVQG\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#macbook #macapps #productivity", "6 Underrated Macbook Apps for Productivity!", "gkYNdy-Hig4", 1, 489, false, "https://www.youtube.com/watch?v=gkYNdy-Hig4", "/downloads/Jeff Su/2022-11-01 6 Underrated Macbook Apps for Productivity!/6 Underrated Macbook Apps for Productivity! [gkYNdy-Hig4].mp4", false, ~U[2022-11-01 12:45:01Z]] 16:43:17.790 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=530.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:17.790 [debug] QUERY OK source="media_profiles" db=0.4ms idle=4.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:43:17.792 [debug] QUERY OK source="media_items" db=0.6ms idle=5.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [84] 16:43:17.792 [info] Kicking off download for media item #84 (gkYNdy-Hig4) 16:43:17.795 [debug] QUERY OK source="tasks" db=0.2ms idle=4.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88, 84, ~U[2026-04-23 14:43:17Z], ~U[2026-04-23 14:43:17Z]] 16:43:17.795 [debug] Current batch of media processed. Will check again in 1000ms 16:43:18.258 [info] {"source":"oban","duration":884,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:43:18.795 [debug] Current batch of media processed. Will check again in 1000ms 16:43:19.796 [debug] Current batch of media processed. Will check again in 1000ms 16:43:20.797 [debug] Current batch of media processed. Will check again in 1000ms 16:43:21.799 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🧑🏻\u200D💻\u00A0LinkedIn profiles are dynamic, so here are the 5 changes we working professionals can make to set ourselves for future success!\n\nMy full LinkedIn playlist 👉🏻\u00A0https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\n\nThe 3 types of people who use LinkedIn all have different LinkedIn profiles because they all have different goals.\n\nJob seekers want to land a job, entrepreneurs want to land clients, and working professionals…well we want to capture the attention of potential employers, hiring managers, and headhunters! \n\nIf you have a portfolio or website you want to show off, add it to your intro section! Or if you have more than 1 link, add them all to your Featured Section (just remember only 3 will be visible at a time on LinkedIn)\n\nWorking professionals can also piggyback on existing performance review processes since what makes for a good self-evaluation also makes for a good LinkedIn experiences section\n\nGood LinkedIn profile hygiene include asking for recommendations regularly, updating your title to reflect the most recent/senior position, and having 1 primary job title even if you wear multiple hats!\n\nFinally, while this isn’t a “must-do” for everyone, I highly recommend actively engaging on LinkedIn since everyone (yes even you 😉) has something unique to share!\n\nTIMESTAMPS\n00:00 Different Types of LinkedIn Profiles\n00:50 Add Website to Your Intro Section\n01:47 Don’t Sell Yourself Short\n03:04 Two Birds, One Stone\n03:45 Re-Purpose Your Colleagues\n05:11 Die a Hero or Become the Villain\n\nRESOURCES I MENTION IN THE VIDEO\nMy full LinkedIn Playlist - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nTop 5 Productivity Tips for Work - https://youtu.be/1LOlJay5Sbw\nAustin Belcak’s 15+ Tips for LinkedIn - https://cultivatedculture.com/linkedin-profile-tips/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#linkedin #workingprofessional #career", "duration" => 397, "filename" => "/downloads/Jeff Su/2022-10-25 5 MUST-DO LinkedIn Profile Tips (that pay off forever)!/5 MUST-DO LinkedIn Profile Tips (that pay off forever)! [OHTRZKg2LS0].mp4", "id" => "OHTRZKg2LS0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OHTRZKg2LS0", "playlist_index" => 85, "timestamp" => 1666702811, "title" => "5 MUST-DO LinkedIn Profile Tips (that pay off forever)!", "upload_date" => "20221025"} 16:43:21.802 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=884.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:21.805 [debug] QUERY OK source="sources" db=2.6ms queue=0.1ms idle=543.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:21.808 [debug] QUERY OK source="media_items" db=2.3ms queue=0.1ms idle=546.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-10-25 13:00:11Z], 1] 16:43:21.812 [debug] QUERY OK source="media_items" db=2.6ms queue=0.1ms idle=550.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🧑🏻\u200D💻\u00A0LinkedIn profiles are dynamic, so here are the 5 changes we working professionals can make to set ourselves for future success!\n\nMy full LinkedIn playlist 👉🏻\u00A0https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\n\nThe 3 types of people who use LinkedIn all have different LinkedIn profiles because they all have different goals.\n\nJob seekers want to land a job, entrepreneurs want to land clients, and working professionals…well we want to capture the attention of potential employers, hiring managers, and headhunters! \n\nIf you have a portfolio or website you want to show off, add it to your intro section! Or if you have more than 1 link, add them all to your Featured Section (just remember only 3 will be visible at a time on LinkedIn)\n\nWorking professionals can also piggyback on existing performance review processes since what makes for a good self-evaluation also makes for a good LinkedIn experiences section\n\nGood LinkedIn profile hygiene include asking for recommendations regularly, updating your title to reflect the most recent/senior position, and having 1 primary job title even if you wear multiple hats!\n\nFinally, while this isn’t a “must-do” for everyone, I highly recommend actively engaging on LinkedIn since everyone (yes even you 😉) has something unique to share!\n\nTIMESTAMPS\n00:00 Different Types of LinkedIn Profiles\n00:50 Add Website to Your Intro Section\n01:47 Don’t Sell Yourself Short\n03:04 Two Birds, One Stone\n03:45 Re-Purpose Your Colleagues\n05:11 Die a Hero or Become the Villain\n\nRESOURCES I MENTION IN THE VIDEO\nMy full LinkedIn Playlist - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nTop 5 Productivity Tips for Work - https://youtu.be/1LOlJay5Sbw\nAustin Belcak’s 15+ Tips for LinkedIn - https://cultivatedculture.com/linkedin-profile-tips/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#linkedin #workingprofessional #career", "5 MUST-DO LinkedIn Profile Tips (that pay off forever)!", "a3a0d265-7105-4d2d-a427-59b1935ddab1", false, "OHTRZKg2LS0", 1, [], 397, false, "https://www.youtube.com/watch?v=OHTRZKg2LS0", 85, "/downloads/Jeff Su/2022-10-25 5 MUST-DO LinkedIn Profile Tips (that pay off forever)!/5 MUST-DO LinkedIn Profile Tips (that pay off forever)! [OHTRZKg2LS0].mp4", false, false, 99, ~U[2022-10-25 13:00:11Z], ~U[2026-04-23 14:43:21Z], ~U[2026-04-23 14:43:21Z], "🧑🏻\u200D💻\u00A0LinkedIn profiles are dynamic, so here are the 5 changes we working professionals can make to set ourselves for future success!\n\nMy full LinkedIn playlist 👉🏻\u00A0https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\n\nThe 3 types of people who use LinkedIn all have different LinkedIn profiles because they all have different goals.\n\nJob seekers want to land a job, entrepreneurs want to land clients, and working professionals…well we want to capture the attention of potential employers, hiring managers, and headhunters! \n\nIf you have a portfolio or website you want to show off, add it to your intro section! Or if you have more than 1 link, add them all to your Featured Section (just remember only 3 will be visible at a time on LinkedIn)\n\nWorking professionals can also piggyback on existing performance review processes since what makes for a good self-evaluation also makes for a good LinkedIn experiences section\n\nGood LinkedIn profile hygiene include asking for recommendations regularly, updating your title to reflect the most recent/senior position, and having 1 primary job title even if you wear multiple hats!\n\nFinally, while this isn’t a “must-do” for everyone, I highly recommend actively engaging on LinkedIn since everyone (yes even you 😉) has something unique to share!\n\nTIMESTAMPS\n00:00 Different Types of LinkedIn Profiles\n00:50 Add Website to Your Intro Section\n01:47 Don’t Sell Yourself Short\n03:04 Two Birds, One Stone\n03:45 Re-Purpose Your Colleagues\n05:11 Die a Hero or Become the Villain\n\nRESOURCES I MENTION IN THE VIDEO\nMy full LinkedIn Playlist - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nTop 5 Productivity Tips for Work - https://youtu.be/1LOlJay5Sbw\nAustin Belcak’s 15+ Tips for LinkedIn - https://cultivatedculture.com/linkedin-profile-tips/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#linkedin #workingprofessional #career", "5 MUST-DO LinkedIn Profile Tips (that pay off forever)!", "OHTRZKg2LS0", 1, 397, false, "https://www.youtube.com/watch?v=OHTRZKg2LS0", "/downloads/Jeff Su/2022-10-25 5 MUST-DO LinkedIn Profile Tips (that pay off forever)!/5 MUST-DO LinkedIn Profile Tips (that pay off forever)! [OHTRZKg2LS0].mp4", false, ~U[2022-10-25 13:00:11Z]] 16:43:21.815 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=554.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:21.818 [debug] QUERY OK source="media_profiles" db=2.0ms queue=0.1ms idle=13.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] 16:43:21.819 [debug] QUERY OK source="media_items" db=0.4ms idle=13.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 [85] 16:43:21.819 [info] Kicking off download for media item #85 (OHTRZKg2LS0) 16:43:21.822 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=6.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [89, 85, ~U[2026-04-23 14:43:21Z], ~U[2026-04-23 14:43:21Z]] 16:43:21.822 [debug] Current batch of media processed. Will check again in 1000ms 16:43:22.108 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=O_L5M8VojLs --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d4/af/d4afe3084847a93390122064cff048b101d3d6e882105fffbdb391b25e410f79.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:43:22.145 [debug] Running yt-dlp command for action: download_thumbnail 16:43:22.147 [debug] QUERY OK source="settings" db=0.2ms idle=327.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:22.147 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:43:22.147 [debug] QUERY OK source="settings" db=0.1ms idle=325.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:22.148 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=O_L5M8VojLs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/18/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/bd/9f/bd9f7283bcbe6cb2a4b3ef420f06ee6745d1719c4cdc7bb919697f974f751fb6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:43:22.823 [debug] Current batch of media processed. Will check again in 1000ms 16:43:23.142 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GchXMRwuWxE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/74/4c/744c383c0e6e624b99ddefc0c9e772703ab7a005c9a44f050da727e9608e6a5f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:43:23.189 [debug] Running yt-dlp command for action: download_thumbnail 16:43:23.195 [debug] QUERY OK source="settings" db=0.2ms idle=1276.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:23.196 [debug] QUERY OK source="settings" db=0.7ms idle=1048.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:23.201 [debug] QUERY OK source="settings" db=4.7ms idle=1048.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:23.201 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GchXMRwuWxE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/17/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/b7/b9/b7b9bc2b0abb5f4f2af7cb05334697a0d7915b215cf80c3f42d3cc2e11da7a0e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:43:23.823 [debug] Current batch of media processed. Will check again in 1000ms 16:43:24.824 [debug] Current batch of media processed. Will check again in 1000ms 16:43:25.826 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=117\n\n🤫\u00A0I’m not saying we should all quiet quit, all I’m saying is if there are shortcuts to get our work done faster, then why not?\n\nHow I stay productive in life 👉🏻\u00A0https://youtu.be/7M6bIeVbCqA\n\nFor me, productivity in the workplace means efficiency + accuracy (i.e. there’s no point being more productive if your deliverables…kind of suck)\n\nSo one of the first things I learned at work was to Steal with Pride. My colleagues have created amazing stuff in the past so there’s really no need to reinvent the wheel! This is by far the most underrated productivity tip for work!\n\nWhether you use the Microsoft suite of tools (Word, Powerpoint, Excel) or Google Workspace (Google Docs, Sheets, Slides), there are a LOT of practical things you can do to be more productive (e.g. use data validation to ensure no mistakes are made)\n\nTIMESTAMPS\n00:00 Quiet Quitting for Productivity\n00:37 Steal with Pride\n01:35 Template All the Things\n02:38 Automation For the Win\n04:18 Don’t Be the Weak Link\n05:56 Make Pre-Reads Great Again\n07:15 Ending Skit\n\nRESOURCES I MENTION IN THE VIDEO\nThe Budget Spreadsheet - https://www.jeffsu.org/workplace-productivity-my-top-5-tips\nRun Effective Meetings - https://youtu.be/LCiQFwAwJvI\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#productivity #careertips #productivityatwork", "duration" => 442, "filename" => "/downloads/Jeff Su/2022-10-18 Top 5 Productivity Tips for Work!/Top 5 Productivity Tips for Work! [1LOlJay5Sbw].mp4", "id" => "1LOlJay5Sbw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1LOlJay5Sbw", "playlist_index" => 86, "timestamp" => 1666098002, "title" => "Top 5 Productivity Tips for Work!", "upload_date" => "20221018"} 16:43:25.827 [debug] QUERY OK source="sources" db=0.2ms idle=1567.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:25.827 [debug] QUERY OK source="sources" db=0.2ms idle=1568.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:25.828 [debug] QUERY OK source="media_items" db=0.5ms idle=1568.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-10-18 13:00:02Z], 1] 16:43:25.832 [debug] QUERY OK source="media_items" db=3.4ms idle=904.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=117\n\n🤫\u00A0I’m not saying we should all quiet quit, all I’m saying is if there are shortcuts to get our work done faster, then why not?\n\nHow I stay productive in life 👉🏻\u00A0https://youtu.be/7M6bIeVbCqA\n\nFor me, productivity in the workplace means efficiency + accuracy (i.e. there’s no point being more productive if your deliverables…kind of suck)\n\nSo one of the first things I learned at work was to Steal with Pride. My colleagues have created amazing stuff in the past so there’s really no need to reinvent the wheel! This is by far the most underrated productivity tip for work!\n\nWhether you use the Microsoft suite of tools (Word, Powerpoint, Excel) or Google Workspace (Google Docs, Sheets, Slides), there are a LOT of practical things you can do to be more productive (e.g. use data validation to ensure no mistakes are made)\n\nTIMESTAMPS\n00:00 Quiet Quitting for Productivity\n00:37 Steal with Pride\n01:35 Template All the Things\n02:38 Automation For the Win\n04:18 Don’t Be the Weak Link\n05:56 Make Pre-Reads Great Again\n07:15 Ending Skit\n\nRESOURCES I MENTION IN THE VIDEO\nThe Budget Spreadsheet - https://www.jeffsu.org/workplace-productivity-my-top-5-tips\nRun Effective Meetings - https://youtu.be/LCiQFwAwJvI\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#productivity #careertips #productivityatwork", "Top 5 Productivity Tips for Work!", "f7e6816b-c2b9-4217-aa7d-d2e72572ca10", false, "1LOlJay5Sbw", 1, [], 442, false, "https://www.youtube.com/watch?v=1LOlJay5Sbw", 86, "/downloads/Jeff Su/2022-10-18 Top 5 Productivity Tips for Work!/Top 5 Productivity Tips for Work! [1LOlJay5Sbw].mp4", false, false, 99, ~U[2022-10-18 13:00:02Z], ~U[2026-04-23 14:43:25Z], ~U[2026-04-23 14:43:25Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=117\n\n🤫\u00A0I’m not saying we should all quiet quit, all I’m saying is if there are shortcuts to get our work done faster, then why not?\n\nHow I stay productive in life 👉🏻\u00A0https://youtu.be/7M6bIeVbCqA\n\nFor me, productivity in the workplace means efficiency + accuracy (i.e. there’s no point being more productive if your deliverables…kind of suck)\n\nSo one of the first things I learned at work was to Steal with Pride. My colleagues have created amazing stuff in the past so there’s really no need to reinvent the wheel! This is by far the most underrated productivity tip for work!\n\nWhether you use the Microsoft suite of tools (Word, Powerpoint, Excel) or Google Workspace (Google Docs, Sheets, Slides), there are a LOT of practical things you can do to be more productive (e.g. use data validation to ensure no mistakes are made)\n\nTIMESTAMPS\n00:00 Quiet Quitting for Productivity\n00:37 Steal with Pride\n01:35 Template All the Things\n02:38 Automation For the Win\n04:18 Don’t Be the Weak Link\n05:56 Make Pre-Reads Great Again\n07:15 Ending Skit\n\nRESOURCES I MENTION IN THE VIDEO\nThe Budget Spreadsheet - https://www.jeffsu.org/workplace-productivity-my-top-5-tips\nRun Effective Meetings - https://youtu.be/LCiQFwAwJvI\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#productivity #careertips #productivityatwork", "Top 5 Productivity Tips for Work!", "1LOlJay5Sbw", 1, 442, false, "https://www.youtube.com/watch?v=1LOlJay5Sbw", "/downloads/Jeff Su/2022-10-18 Top 5 Productivity Tips for Work!/Top 5 Productivity Tips for Work! [1LOlJay5Sbw].mp4", false, ~U[2022-10-18 13:00:02Z]] 16:43:25.836 [debug] QUERY OK source="sources" db=2.9ms queue=0.1ms idle=574.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:25.837 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=9.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] 16:43:25.839 [debug] QUERY OK source="media_items" db=1.2ms idle=10.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [86] 16:43:25.839 [info] Kicking off download for media item #86 (1LOlJay5Sbw) 16:43:25.845 [debug] QUERY OK source="tasks" db=0.3ms idle=8.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [90, 86, ~U[2026-04-23 14:43:25Z], ~U[2026-04-23 14:43:25Z]] 16:43:25.845 [debug] Current batch of media processed. Will check again in 1000ms 16:43:26.851 [debug] Current batch of media processed. Will check again in 1000ms 16:43:27.851 [debug] Current batch of media processed. Will check again in 1000ms 16:43:28.371 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=O_L5M8VojLs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/18/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/bd/9f/bd9f7283bcbe6cb2a4b3ef420f06ee6745d1719c4cdc7bb919697f974f751fb6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:43:28.373 [debug] QUERY OK db=0.7ms idle=1113.8ms begin [] 16:43:28.374 [debug] QUERY OK source="media_items" db=1.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:43:22Z], "/downloads/Jeff Su/2025-07-29 My Brutally Honest Advice About Joining Google (after 9 years)/My Brutally Honest Advice About Joining Google (after 9 years) [O_L5M8VojLs].mp4", "/downloads/Jeff Su/2025-07-29 My Brutally Honest Advice About Joining Google (after 9 years)/My Brutally Honest Advice About Joining Google (after 9 years) [O_L5M8VojLs].info.json", "/downloads/Jeff Su/2025-07-29 My Brutally Honest Advice About Joining Google (after 9 years)/My Brutally Honest Advice About Joining Google (after 9 years) [O_L5M8VojLs].nfo", "/downloads/Jeff Su/2025-07-29 My Brutally Honest Advice About Joining Google (after 9 years)/My Brutally Honest Advice About Joining Google (after 9 years) [O_L5M8VojLs]-thumb.jpg", ~U[2026-04-23 14:43:28Z], 18] 16:43:28.376 [debug] QUERY OK source="media_metadata" db=0.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/18/metadata.json.gz", "/config/metadata/media_items/18/thumbnail.jpg", 18, ~U[2026-04-23 14:43:28Z], ~U[2026-04-23 14:43:28Z]] 16:43:28.376 [debug] QUERY OK db=0.4ms commit [] 16:43:28.378 [debug] QUERY OK source="media_items" db=1.3ms idle=1117.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [36655264, ~U[2026-04-23 14:43:28Z], 18] 16:43:28.380 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:43:28.381 [info] {"args":{"id":18},"id":22,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":40953343,"event":"job:stop","queue_time":251425792,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:43:28.389 [info] {"args":{"id":19},"id":23,"meta":{},"system_time":1776955408389148297,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:43:28.390 [debug] QUERY OK source="media_items" db=0.5ms idle=456.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" = ?) [19] 16:43:28.390 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:43:28.391 [debug] QUERY OK source="sources" db=0.9ms idle=14.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:28.393 [debug] QUERY OK source="media_profiles" db=1.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] 16:43:28.396 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=12.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 [19] 16:43:28.398 [debug] QUERY OK source="media_metadata" db=0.5ms idle=8.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [19] 16:43:28.399 [debug] QUERY OK source="media_profiles" db=0.4ms idle=8.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:43:28.399 [debug] QUERY OK source="settings" db=0.2ms idle=7.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:28.400 [debug] QUERY OK source="settings" db=0.2ms idle=6.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:28.400 [debug] Running yt-dlp command for action: get_downloadable_status 16:43:28.401 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:43:28.402 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:43:28.402 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:43:28.403 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FKLr3ft8ea0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/69/1a/691a6e11592a119b56d8c07155adb17145d677977ef965c4f921ce1f1a9d90cf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:43:28.852 [debug] Current batch of media processed. Will check again in 1000ms 16:43:29.355 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GchXMRwuWxE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/17/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/b7/b9/b7b9bc2b0abb5f4f2af7cb05334697a0d7915b215cf80c3f42d3cc2e11da7a0e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:43:29.358 [debug] QUERY OK db=0.1ms idle=957.5ms begin [] 16:43:29.359 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:43:23Z], "/downloads/Jeff Su/2025-08-12 The AI Agent Tutorial That Should've Been Your First (no code)/The AI Agent Tutorial That Should've Been Your First (no code) [GchXMRwuWxE].mp4", "/downloads/Jeff Su/2025-08-12 The AI Agent Tutorial That Should've Been Your First (no code)/The AI Agent Tutorial That Should've Been Your First (no code) [GchXMRwuWxE].info.json", "/downloads/Jeff Su/2025-08-12 The AI Agent Tutorial That Should've Been Your First (no code)/The AI Agent Tutorial That Should've Been Your First (no code) [GchXMRwuWxE].nfo", "/downloads/Jeff Su/2025-08-12 The AI Agent Tutorial That Should've Been Your First (no code)/The AI Agent Tutorial That Should've Been Your First (no code) [GchXMRwuWxE]-thumb.jpg", ~U[2026-04-23 14:43:29Z], 17] 16:43:29.360 [debug] QUERY OK source="media_metadata" db=0.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/17/metadata.json.gz", "/config/metadata/media_items/17/thumbnail.jpg", 17, ~U[2026-04-23 14:43:29Z], ~U[2026-04-23 14:43:29Z]] 16:43:29.360 [debug] QUERY OK db=0.3ms commit [] 16:43:29.363 [debug] QUERY OK source="media_items" db=1.5ms idle=959.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [42657251, ~U[2026-04-23 14:43:29Z], 17] 16:43:29.363 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:43:29.364 [info] {"args":{"id":17},"id":21,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":42024752,"event":"job:stop","queue_time":254337869,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:43:29.372 [info] {"args":{"id":20},"id":24,"meta":{},"system_time":1776955409372409255,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:43:29.373 [debug] QUERY OK source="media_items" db=0.6ms idle=435.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" = ?) [20] 16:43:29.375 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:43:29.376 [debug] QUERY OK source="sources" db=0.6ms idle=14.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:29.377 [debug] QUERY OK source="media_profiles" db=0.6ms idle=13.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] 16:43:29.378 [debug] QUERY OK source="media_items" db=0.4ms idle=12.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 [20] 16:43:29.379 [debug] QUERY OK source="media_metadata" db=0.2ms idle=6.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [20] 16:43:29.379 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:43:29.380 [debug] QUERY OK source="settings" db=0.4ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:29.381 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:43:29.382 [debug] Running yt-dlp command for action: get_downloadable_status 16:43:29.384 [debug] QUERY OK source="settings" db=0.2ms idle=6.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:29.385 [debug] QUERY OK source="settings" db=0.2ms idle=5.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:29.386 [debug] QUERY OK source="settings" db=0.5ms idle=5.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:29.386 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=p3840QxlYzc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ee/88/ee88fa9ee4fac5c625bd5f00b8dccf153d41c58aa62f676d83ae89585db7a5ba.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:43:29.854 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🩳\u00A0Download my Shortcuts here: https://www.jeffsu.org/macbook-shortcuts-app\n\nAlthough the Shortcuts app is already pretty popular on the iPhone, very few people use it on their Macbooks as well. So in this video I’ve put together the ultimate guide for the Shortcuts app on the Mac! \n\nFirst, I go over all the ways you can activate and run Shortcut workflows on the Mac (since it’s actually not that obvious) and cover the settings changes you need to make\n\nThen, I share 7 Shortcuts I use every single day that makes my life just so much easier (like hitting just 1 button to hide my entire desktop 😉)\n\nMy examples are great but what’s even better is for you to create Shortcuts specific to you, so I end the video by showing you how you can tweak existing workflows to fit your needs and how to share them with others!\n\nHave fun 😁!\n\nTIMESTAMPS\n00:00 The Power of the Shortcuts app\n00:21 What are Shortcuts?\n00:36 How to run Shortcuts on the Mac\n01:49 Update Shortcut Settings\n02:28 Hide Desktop Clutter\n03:04 Enable Focus Mode via Shortcuts\n03:54 Run Network Tool Shortcut\n04:24 Count Character Shortcut\n04:39 Search On Shortcut\n05:14 Empty Downloads Folder Shortcut\n05:25 Customize Your Own Shortcut\n06:50 Share Shortcuts with Others\n\nRESOURCES I MENTION IN THE VIDEO\nTop 10 Mac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\nThe Ultimate Alfred Tutorial - https://youtu.be/FXV-zwkRMxo\nXDA Guide for Shortcuts - https://www.xda-developers.com/guide-shortcuts-macos/\nHow-to-Geek Article - https://www.howtogeek.com/764636/mac-shortcuts-actions-youll-actually-use/\nHowtoiSolve Article - https://www.howtoisolve.com/best-shortcuts-for-mac-shortcuts/\nUsing Shortcuts with Alfred - https://www.alfredapp.com/blog/guides-and-tutorials/macos-shortcuts-with-alfred-workflow/\nCalm Notifications (Alfred) - https://www.alfredforum.com/topic/10916-calmnotifications-—-toggle-do-not-disturb/#comment-56259\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#macbooktips #shortcutsapp #macshortcuts", "duration" => 481, "filename" => "/downloads/Jeff Su/2022-10-04 Ultimate Guide to the Shortcuts App (for the Mac)!/Ultimate Guide to the Shortcuts App (for the Mac)! [PIGraFbLEvY].mp4", "id" => "PIGraFbLEvY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PIGraFbLEvY", "playlist_index" => 87, "timestamp" => 1664888412, "title" => "Ultimate Guide to the Shortcuts App (for the Mac)!", "upload_date" => "20221004"} 16:43:29.855 [debug] QUERY OK source="sources" db=1.0ms idle=473.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:29.856 [debug] QUERY OK source="sources" db=0.4ms idle=474.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:29.857 [debug] QUERY OK source="media_items" db=0.4ms idle=472.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-10-04 13:00:12Z], 1] 16:43:29.861 [debug] QUERY OK source="media_items" db=2.8ms idle=472.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🩳\u00A0Download my Shortcuts here: https://www.jeffsu.org/macbook-shortcuts-app\n\nAlthough the Shortcuts app is already pretty popular on the iPhone, very few people use it on their Macbooks as well. So in this video I’ve put together the ultimate guide for the Shortcuts app on the Mac! \n\nFirst, I go over all the ways you can activate and run Shortcut workflows on the Mac (since it’s actually not that obvious) and cover the settings changes you need to make\n\nThen, I share 7 Shortcuts I use every single day that makes my life just so much easier (like hitting just 1 button to hide my entire desktop 😉)\n\nMy examples are great but what’s even better is for you to create Shortcuts specific to you, so I end the video by showing you how you can tweak existing workflows to fit your needs and how to share them with others!\n\nHave fun 😁!\n\nTIMESTAMPS\n00:00 The Power of the Shortcuts app\n00:21 What are Shortcuts?\n00:36 How to run Shortcuts on the Mac\n01:49 Update Shortcut Settings\n02:28 Hide Desktop Clutter\n03:04 Enable Focus Mode via Shortcuts\n03:54 Run Network Tool Shortcut\n04:24 Count Character Shortcut\n04:39 Search On Shortcut\n05:14 Empty Downloads Folder Shortcut\n05:25 Customize Your Own Shortcut\n06:50 Share Shortcuts with Others\n\nRESOURCES I MENTION IN THE VIDEO\nTop 10 Mac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\nThe Ultimate Alfred Tutorial - https://youtu.be/FXV-zwkRMxo\nXDA Guide for Shortcuts - https://www.xda-developers.com/guide-shortcuts-macos/\nHow-to-Geek Article - https://www.howtogeek.com/764636/mac-shortcuts-actions-youll-actually-use/\nHowtoiSolve Article - https://www.howtoisolve.com/best-shortcuts-for-mac-shortcuts/\nUsing Shortcuts with Alfred - https://www.alfredapp.com/blog/guides-and-tutorials/macos-shortcuts-with-alfred-workflow/\nCalm Notifications (Alfred) - https://www.alfredforum.com/topic/10916-calmnotifications-—-toggle-do-not-disturb/#comment-56259\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#macbooktips #shortcutsapp #macshortcuts", "Ultimate Guide to the Shortcuts App (for the Mac)!", "be75803a-c8bb-4daf-989d-23ed027e280e", false, "PIGraFbLEvY", 1, [], 481, false, "https://www.youtube.com/watch?v=PIGraFbLEvY", 87, "/downloads/Jeff Su/2022-10-04 Ultimate Guide to the Shortcuts App (for the Mac)!/Ultimate Guide to the Shortcuts App (for the Mac)! [PIGraFbLEvY].mp4", false, false, 99, ~U[2022-10-04 13:00:12Z], ~U[2026-04-23 14:43:29Z], ~U[2026-04-23 14:43:29Z], "🩳\u00A0Download my Shortcuts here: https://www.jeffsu.org/macbook-shortcuts-app\n\nAlthough the Shortcuts app is already pretty popular on the iPhone, very few people use it on their Macbooks as well. So in this video I’ve put together the ultimate guide for the Shortcuts app on the Mac! \n\nFirst, I go over all the ways you can activate and run Shortcut workflows on the Mac (since it’s actually not that obvious) and cover the settings changes you need to make\n\nThen, I share 7 Shortcuts I use every single day that makes my life just so much easier (like hitting just 1 button to hide my entire desktop 😉)\n\nMy examples are great but what’s even better is for you to create Shortcuts specific to you, so I end the video by showing you how you can tweak existing workflows to fit your needs and how to share them with others!\n\nHave fun 😁!\n\nTIMESTAMPS\n00:00 The Power of the Shortcuts app\n00:21 What are Shortcuts?\n00:36 How to run Shortcuts on the Mac\n01:49 Update Shortcut Settings\n02:28 Hide Desktop Clutter\n03:04 Enable Focus Mode via Shortcuts\n03:54 Run Network Tool Shortcut\n04:24 Count Character Shortcut\n04:39 Search On Shortcut\n05:14 Empty Downloads Folder Shortcut\n05:25 Customize Your Own Shortcut\n06:50 Share Shortcuts with Others\n\nRESOURCES I MENTION IN THE VIDEO\nTop 10 Mac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\nThe Ultimate Alfred Tutorial - https://youtu.be/FXV-zwkRMxo\nXDA Guide for Shortcuts - https://www.xda-developers.com/guide-shortcuts-macos/\nHow-to-Geek Article - https://www.howtogeek.com/764636/mac-shortcuts-actions-youll-actually-use/\nHowtoiSolve Article - https://www.howtoisolve.com/best-shortcuts-for-mac-shortcuts/\nUsing Shortcuts with Alfred - https://www.alfredapp.com/blog/guides-and-tutorials/macos-shortcuts-with-alfred-workflow/\nCalm Notifications (Alfred) - https://www.alfredforum.com/topic/10916-calmnotifications-—-toggle-do-not-disturb/#comment-56259\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#macbooktips #shortcutsapp #macshortcuts", "Ultimate Guide to the Shortcuts App (for the Mac)!", "PIGraFbLEvY", 1, 481, false, "https://www.youtube.com/watch?v=PIGraFbLEvY", "/downloads/Jeff Su/2022-10-04 Ultimate Guide to the Shortcuts App (for the Mac)!/Ultimate Guide to the Shortcuts App (for the Mac)! [PIGraFbLEvY].mp4", false, ~U[2022-10-04 13:00:12Z]] 16:43:29.863 [debug] QUERY OK source="sources" db=1.1ms idle=475.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:29.863 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=7.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:43:29.865 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=7.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [87] 16:43:29.865 [info] Kicking off download for media item #87 (PIGraFbLEvY) 16:43:29.868 [debug] QUERY OK source="tasks" db=0.5ms idle=4.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [91, 87, ~U[2026-04-23 14:43:29Z], ~U[2026-04-23 14:43:29Z]] 16:43:29.868 [debug] Current batch of media processed. Will check again in 1000ms 16:43:30.868 [debug] Current batch of media processed. Will check again in 1000ms 16:43:31.869 [debug] Current batch of media processed. Will check again in 1000ms 16:43:32.870 [debug] Current batch of media processed. Will check again in 1000ms 16:43:33.872 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Download the Mortgage Calculator template here: https://www.jeffsu.org/mortgage-calculator-a-simple-tutorial/\n\n💸\u00A0Who knew a 1.5% change in interest rates can result in an additional US$ 100,000 of interest payments?\n\nIn this video I go through a step-by-step tutorial on how to calculate your monthly mortgage payments given 3 things: the initial amount you borrowed, the interest rate you agreed to, and the loan repayment period\n\nBy playing around with the numbers, you will be able to clearly see how each factor affects the total interest you pay back the bank (or to whoever loaned you the principal)\n\nTIMESTAMPS\n00:00 How to Calculate Monthly Payments\n00:33 Intro to Mortgage Calculator Template\n00:58 Monthly Payment for Fixed-Rate Loan\n02:33 Calculate Monthly Interest Payments\n04:55 Double Check Your Calculations\n05:49 How Interest Rate affects Total Interest\n06:17 How Extra Payments affect Total Interest\n07:05 Pro Tips for this Mortgage Calculator\n\nRESOURCES I MENTION IN THE VIDEO\nAli Abdaal’s video on buying a house - https://youtu.be/ngWZaSbw130\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#mortgage #adulting #amortization", "duration" => 467, "filename" => "/downloads/Jeff Su/2022-09-20 Mortgage Calculator: A Simple Tutorial (template included)!/Mortgage Calculator: A Simple Tutorial (template included)! [Z4vz8aa_vxs].mp4", "id" => "Z4vz8aa_vxs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Z4vz8aa_vxs", "playlist_index" => 88, "timestamp" => 1663678830, "title" => "Mortgage Calculator: A Simple Tutorial (template included)!", "upload_date" => "20220920"} 16:43:33.873 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=927.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:33.873 [debug] QUERY OK source="sources" db=0.2ms idle=614.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:33.874 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=615.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-20 13:00:30Z], 1] 16:43:33.877 [debug] QUERY OK source="media_items" db=1.8ms idle=616.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Download the Mortgage Calculator template here: https://www.jeffsu.org/mortgage-calculator-a-simple-tutorial/\n\n💸\u00A0Who knew a 1.5% change in interest rates can result in an additional US$ 100,000 of interest payments?\n\nIn this video I go through a step-by-step tutorial on how to calculate your monthly mortgage payments given 3 things: the initial amount you borrowed, the interest rate you agreed to, and the loan repayment period\n\nBy playing around with the numbers, you will be able to clearly see how each factor affects the total interest you pay back the bank (or to whoever loaned you the principal)\n\nTIMESTAMPS\n00:00 How to Calculate Monthly Payments\n00:33 Intro to Mortgage Calculator Template\n00:58 Monthly Payment for Fixed-Rate Loan\n02:33 Calculate Monthly Interest Payments\n04:55 Double Check Your Calculations\n05:49 How Interest Rate affects Total Interest\n06:17 How Extra Payments affect Total Interest\n07:05 Pro Tips for this Mortgage Calculator\n\nRESOURCES I MENTION IN THE VIDEO\nAli Abdaal’s video on buying a house - https://youtu.be/ngWZaSbw130\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#mortgage #adulting #amortization", "Mortgage Calculator: A Simple Tutorial (template included)!", "723fedb3-145e-4142-82d3-91c61fc1639f", false, "Z4vz8aa_vxs", 1, [], 467, false, "https://www.youtube.com/watch?v=Z4vz8aa_vxs", 88, "/downloads/Jeff Su/2022-09-20 Mortgage Calculator: A Simple Tutorial (template included)!/Mortgage Calculator: A Simple Tutorial (template included)! [Z4vz8aa_vxs].mp4", false, false, 99, ~U[2022-09-20 13:00:30Z], ~U[2026-04-23 14:43:33Z], ~U[2026-04-23 14:43:33Z], "Download the Mortgage Calculator template here: https://www.jeffsu.org/mortgage-calculator-a-simple-tutorial/\n\n💸\u00A0Who knew a 1.5% change in interest rates can result in an additional US$ 100,000 of interest payments?\n\nIn this video I go through a step-by-step tutorial on how to calculate your monthly mortgage payments given 3 things: the initial amount you borrowed, the interest rate you agreed to, and the loan repayment period\n\nBy playing around with the numbers, you will be able to clearly see how each factor affects the total interest you pay back the bank (or to whoever loaned you the principal)\n\nTIMESTAMPS\n00:00 How to Calculate Monthly Payments\n00:33 Intro to Mortgage Calculator Template\n00:58 Monthly Payment for Fixed-Rate Loan\n02:33 Calculate Monthly Interest Payments\n04:55 Double Check Your Calculations\n05:49 How Interest Rate affects Total Interest\n06:17 How Extra Payments affect Total Interest\n07:05 Pro Tips for this Mortgage Calculator\n\nRESOURCES I MENTION IN THE VIDEO\nAli Abdaal’s video on buying a house - https://youtu.be/ngWZaSbw130\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#mortgage #adulting #amortization", "Mortgage Calculator: A Simple Tutorial (template included)!", "Z4vz8aa_vxs", 1, 467, false, "https://www.youtube.com/watch?v=Z4vz8aa_vxs", "/downloads/Jeff Su/2022-09-20 Mortgage Calculator: A Simple Tutorial (template included)!/Mortgage Calculator: A Simple Tutorial (template included)! [Z4vz8aa_vxs].mp4", false, ~U[2022-09-20 13:00:30Z]] 16:43:33.878 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=618.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:33.878 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 16:43:33.880 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms 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 [88] 16:43:33.880 [info] Kicking off download for media item #88 (Z4vz8aa_vxs) 16:43:33.885 [debug] QUERY OK source="tasks" db=0.8ms idle=6.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [92, 88, ~U[2026-04-23 14:43:33Z], ~U[2026-04-23 14:43:33Z]] 16:43:33.886 [debug] Current batch of media processed. Will check again in 1000ms 16:43:34.338 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FKLr3ft8ea0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/69/1a/691a6e11592a119b56d8c07155adb17145d677977ef965c4f921ce1f1a9d90cf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:43:34.339 [debug] Running yt-dlp command for action: download 16:43:34.339 [debug] QUERY OK source="settings" db=0.3ms idle=458.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:34.340 [debug] QUERY OK source="settings" db=0.2ms idle=455.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:34.341 [debug] QUERY OK source="settings" db=0.8ms idle=455.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:34.341 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FKLr3ft8ea0 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/14/68/146889fe6ce3e481e15c9a85013962250273627c8bea6e3ac2c7a17c521f9cb6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:43:34.886 [debug] Current batch of media processed. Will check again in 1000ms 16:43:35.887 [debug] Current batch of media processed. Will check again in 1000ms 16:43:36.013 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=p3840QxlYzc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ee/88/ee88fa9ee4fac5c625bd5f00b8dccf153d41c58aa62f676d83ae89585db7a5ba.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:43:36.015 [debug] Running yt-dlp command for action: download 16:43:36.016 [debug] QUERY OK source="settings" db=0.3ms idle=1675.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:36.016 [debug] QUERY OK source="settings" db=0.4ms idle=1675.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:36.017 [debug] QUERY OK source="settings" db=0.4ms idle=1066.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:36.018 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=p3840QxlYzc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a4/3f/a43f35930c27285f6007364020e993f622622dd41adea65cba02ed9d0b4b0b4f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:43:36.889 [debug] Current batch of media processed. Will check again in 1000ms 16:43:37.889 [debug] Current batch of media processed. Will check again in 1000ms 16:43:38.891 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎇\u00A0Download the free icon pack here - https://www.jeffsu.org/10-mac-tips-that-feel-illegal-to-know\n❎\u00A0Get CleanShot X - https://geni.us/cleanshotx\n\nIf you’re looking for Macbook tips that seem… a bit too good to be true you’ve come to the right place! In this video I share mac tips you probably haven’t seen anywhere else and more importantly, they’re all super actionable\n\nYou can easily change the default folder icons to image you want, you can disable the caps lock button so you never enable it by mistake again, you can customize the view of the System Preferences window, and much, much more!\n\nIt’s some super fun and productive stuff 😁\n\nTIMESTAMPS\n00:00 Change Macbook Folder Icons\n00:53 Disable Caps Lock Button on Mac\n01:08 Customize View for System Preferences\n01:34 Quickly Access Sound Preferences\n02:10 Move Windows in Background\n02:46 Show Menu Bar in Full Screen\n03:08 Move Files to Location\n03:51 Finder Window Management\n04:20 Preview Files the RIGHT Way\n05:07 Convert Images on Mac\n05:31 Take Full Page Screenshots\n\nRESOURCES I MENTION IN THE VIDEO\nMy Alfred Workflow - https://youtu.be/FXV-zwkRMxo\nTop 10 Mac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#mac #tips #productivity", "duration" => 390, "filename" => "/downloads/Jeff Su/2022-09-06 10 MUST-KNOW Macbook Tips for Productivity!/10 MUST-KNOW Macbook Tips for Productivity! [5XfR6xBBXhw].mp4", "id" => "5XfR6xBBXhw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5XfR6xBBXhw", "playlist_index" => 89, "timestamp" => 1662469210, "title" => "10 MUST-KNOW Macbook Tips for Productivity!", "upload_date" => "20220906"} 16:43:38.892 [debug] QUERY OK source="sources" db=0.4ms idle=1632.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:38.892 [debug] QUERY OK source="sources" db=0.3ms idle=1633.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:38.893 [debug] QUERY OK source="media_items" db=0.5ms idle=1633.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-06 13:00:10Z], 1] 16:43:38.896 [debug] QUERY OK source="media_items" db=2.0ms idle=1634.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎇\u00A0Download the free icon pack here - https://www.jeffsu.org/10-mac-tips-that-feel-illegal-to-know\n❎\u00A0Get CleanShot X - https://geni.us/cleanshotx\n\nIf you’re looking for Macbook tips that seem… a bit too good to be true you’ve come to the right place! In this video I share mac tips you probably haven’t seen anywhere else and more importantly, they’re all super actionable\n\nYou can easily change the default folder icons to image you want, you can disable the caps lock button so you never enable it by mistake again, you can customize the view of the System Preferences window, and much, much more!\n\nIt’s some super fun and productive stuff 😁\n\nTIMESTAMPS\n00:00 Change Macbook Folder Icons\n00:53 Disable Caps Lock Button on Mac\n01:08 Customize View for System Preferences\n01:34 Quickly Access Sound Preferences\n02:10 Move Windows in Background\n02:46 Show Menu Bar in Full Screen\n03:08 Move Files to Location\n03:51 Finder Window Management\n04:20 Preview Files the RIGHT Way\n05:07 Convert Images on Mac\n05:31 Take Full Page Screenshots\n\nRESOURCES I MENTION IN THE VIDEO\nMy Alfred Workflow - https://youtu.be/FXV-zwkRMxo\nTop 10 Mac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#mac #tips #productivity", "10 MUST-KNOW Macbook Tips for Productivity!", "6e591c2d-8149-4b1c-9adc-0ae0fcc3649c", false, "5XfR6xBBXhw", 1, [], 390, false, "https://www.youtube.com/watch?v=5XfR6xBBXhw", 89, "/downloads/Jeff Su/2022-09-06 10 MUST-KNOW Macbook Tips for Productivity!/10 MUST-KNOW Macbook Tips for Productivity! [5XfR6xBBXhw].mp4", false, false, 99, ~U[2022-09-06 13:00:10Z], ~U[2026-04-23 14:43:38Z], ~U[2026-04-23 14:43:38Z], "🎇\u00A0Download the free icon pack here - https://www.jeffsu.org/10-mac-tips-that-feel-illegal-to-know\n❎\u00A0Get CleanShot X - https://geni.us/cleanshotx\n\nIf you’re looking for Macbook tips that seem… a bit too good to be true you’ve come to the right place! In this video I share mac tips you probably haven’t seen anywhere else and more importantly, they’re all super actionable\n\nYou can easily change the default folder icons to image you want, you can disable the caps lock button so you never enable it by mistake again, you can customize the view of the System Preferences window, and much, much more!\n\nIt’s some super fun and productive stuff 😁\n\nTIMESTAMPS\n00:00 Change Macbook Folder Icons\n00:53 Disable Caps Lock Button on Mac\n01:08 Customize View for System Preferences\n01:34 Quickly Access Sound Preferences\n02:10 Move Windows in Background\n02:46 Show Menu Bar in Full Screen\n03:08 Move Files to Location\n03:51 Finder Window Management\n04:20 Preview Files the RIGHT Way\n05:07 Convert Images on Mac\n05:31 Take Full Page Screenshots\n\nRESOURCES I MENTION IN THE VIDEO\nMy Alfred Workflow - https://youtu.be/FXV-zwkRMxo\nTop 10 Mac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#mac #tips #productivity", "10 MUST-KNOW Macbook Tips for Productivity!", "5XfR6xBBXhw", 1, 390, false, "https://www.youtube.com/watch?v=5XfR6xBBXhw", "/downloads/Jeff Su/2022-09-06 10 MUST-KNOW Macbook Tips for Productivity!/10 MUST-KNOW Macbook Tips for Productivity! [5XfR6xBBXhw].mp4", false, ~U[2022-09-06 13:00:10Z]] 16:43:38.898 [debug] QUERY OK source="sources" db=1.1ms idle=939.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:38.899 [debug] QUERY OK source="media_profiles" db=0.9ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:43:38.899 [debug] QUERY OK source="media_items" db=0.3ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [89] 16:43:38.899 [info] Kicking off download for media item #89 (5XfR6xBBXhw) 16:43:38.902 [debug] QUERY OK source="tasks" db=0.2ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [93, 89, ~U[2026-04-23 14:43:38Z], ~U[2026-04-23 14:43:38Z]] 16:43:38.902 [debug] Current batch of media processed. Will check again in 1000ms 16:43:39.903 [debug] Current batch of media processed. Will check again in 1000ms 16:43:40.904 [debug] Current batch of media processed. Will check again in 1000ms 16:43:41.905 [debug] Current batch of media processed. Will check again in 1000ms 16:43:42.907 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=113\n\nFree PDF Version: https://www.jeffsu.org/5-resume-mistakes-you-must-avoid\n\nSave time and buy the Google Docs (editable) version: https://jeffsu.gumroad.com/l/premium-resume-package\n\n😵\u200D💫\u00A0Resumes are easy to create, sure, but with so many rules and nuances, it’s hard to get exactly right\n\nAnd that’s why in this video - 5 Resume Mistakes You Must Avoid - I show you all the changes I made to my original “bad” resume, and more importantly, explain WHY recruiters and hiring managers look for the things they do when deciding who to give interviews to\n\nIt’s sometimes just not enough to discuss resume best practices in theory; I’ve always found it more helpful to look at real resume examples to see what changes I should be making to my own CV during the job search process\n\nNow, let’s get you that first round interview 😁\n\nTIMESTAMPS\n00:00 5 Resume Mistakes to Avoid\n00:42 Putting Education above Experience\n01:52 Not Showing Impact\n02:53 Failing to Include Meaningful Metrics\n04:32 Not Tailoring Resume for Each Application\n05:34 Overlooking the Small Things\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Incredible Resume - https://youtu.be/Tt08KmFfIYQ\nWrite an Amazing Cover Letter - https://youtu.be/NUhDP30IRKk\nAli Abdaal’s Resume Video - https://youtu.be/MqXjqOy-TA8\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#resumetips #jobsearch", "duration" => 401, "filename" => "/downloads/Jeff Su/2022-08-23 5 Resume Mistakes You MUST Avoid (with real examples)!/5 Resume Mistakes You MUST Avoid (with real examples)! [pjqi_M3SPwY].mp4", "id" => "pjqi_M3SPwY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=pjqi_M3SPwY", "playlist_index" => 90, "timestamp" => 1661258702, "title" => "5 Resume Mistakes You MUST Avoid (with real examples)!", "upload_date" => "20220823"} 16:43:42.908 [debug] QUERY OK source="sources" db=0.3ms idle=941.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:42.908 [debug] QUERY OK source="sources" db=0.3ms idle=649.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:42.909 [debug] QUERY OK source="media_items" db=0.4ms idle=650.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-08-23 12:45:02Z], 1] 16:43:42.912 [debug] QUERY OK source="media_items" db=2.0ms idle=651.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=113\n\nFree PDF Version: https://www.jeffsu.org/5-resume-mistakes-you-must-avoid\n\nSave time and buy the Google Docs (editable) version: https://jeffsu.gumroad.com/l/premium-resume-package\n\n😵\u200D💫\u00A0Resumes are easy to create, sure, but with so many rules and nuances, it’s hard to get exactly right\n\nAnd that’s why in this video - 5 Resume Mistakes You Must Avoid - I show you all the changes I made to my original “bad” resume, and more importantly, explain WHY recruiters and hiring managers look for the things they do when deciding who to give interviews to\n\nIt’s sometimes just not enough to discuss resume best practices in theory; I’ve always found it more helpful to look at real resume examples to see what changes I should be making to my own CV during the job search process\n\nNow, let’s get you that first round interview 😁\n\nTIMESTAMPS\n00:00 5 Resume Mistakes to Avoid\n00:42 Putting Education above Experience\n01:52 Not Showing Impact\n02:53 Failing to Include Meaningful Metrics\n04:32 Not Tailoring Resume for Each Application\n05:34 Overlooking the Small Things\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Incredible Resume - https://youtu.be/Tt08KmFfIYQ\nWrite an Amazing Cover Letter - https://youtu.be/NUhDP30IRKk\nAli Abdaal’s Resume Video - https://youtu.be/MqXjqOy-TA8\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#resumetips #jobsearch", "5 Resume Mistakes You MUST Avoid (with real examples)!", "8aaeb0ff-00e2-4634-8965-cd18ca53a910", false, "pjqi_M3SPwY", 1, [], 401, false, "https://www.youtube.com/watch?v=pjqi_M3SPwY", 90, "/downloads/Jeff Su/2022-08-23 5 Resume Mistakes You MUST Avoid (with real examples)!/5 Resume Mistakes You MUST Avoid (with real examples)! [pjqi_M3SPwY].mp4", false, false, 99, ~U[2022-08-23 12:45:02Z], ~U[2026-04-23 14:43:42Z], ~U[2026-04-23 14:43:42Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=113\n\nFree PDF Version: https://www.jeffsu.org/5-resume-mistakes-you-must-avoid\n\nSave time and buy the Google Docs (editable) version: https://jeffsu.gumroad.com/l/premium-resume-package\n\n😵\u200D💫\u00A0Resumes are easy to create, sure, but with so many rules and nuances, it’s hard to get exactly right\n\nAnd that’s why in this video - 5 Resume Mistakes You Must Avoid - I show you all the changes I made to my original “bad” resume, and more importantly, explain WHY recruiters and hiring managers look for the things they do when deciding who to give interviews to\n\nIt’s sometimes just not enough to discuss resume best practices in theory; I’ve always found it more helpful to look at real resume examples to see what changes I should be making to my own CV during the job search process\n\nNow, let’s get you that first round interview 😁\n\nTIMESTAMPS\n00:00 5 Resume Mistakes to Avoid\n00:42 Putting Education above Experience\n01:52 Not Showing Impact\n02:53 Failing to Include Meaningful Metrics\n04:32 Not Tailoring Resume for Each Application\n05:34 Overlooking the Small Things\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Incredible Resume - https://youtu.be/Tt08KmFfIYQ\nWrite an Amazing Cover Letter - https://youtu.be/NUhDP30IRKk\nAli Abdaal’s Resume Video - https://youtu.be/MqXjqOy-TA8\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#resumetips #jobsearch", "5 Resume Mistakes You MUST Avoid (with real examples)!", "pjqi_M3SPwY", 1, 401, false, "https://www.youtube.com/watch?v=pjqi_M3SPwY", "/downloads/Jeff Su/2022-08-23 5 Resume Mistakes You MUST Avoid (with real examples)!/5 Resume Mistakes You MUST Avoid (with real examples)! [pjqi_M3SPwY].mp4", false, ~U[2022-08-23 12:45:02Z]] 16:43:42.913 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=653.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:42.915 [debug] QUERY OK source="media_profiles" db=1.7ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:43:42.916 [debug] QUERY OK source="media_items" db=0.4ms idle=7.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [90] 16:43:42.916 [info] Kicking off download for media item #90 (pjqi_M3SPwY) 16:43:42.919 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=5.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [94, 90, ~U[2026-04-23 14:43:42Z], ~U[2026-04-23 14:43:42Z]] 16:43:42.919 [debug] Current batch of media processed. Will check again in 1000ms 16:43:43.919 [debug] Current batch of media processed. Will check again in 1000ms 16:43:44.920 [debug] Current batch of media processed. Will check again in 1000ms 16:43:45.922 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=112\n\nDownload the free templates here ➡️ https://www.jeffsu.org/how-to-manage-projects-in-notion/\n\n🗂\u00A0Project management can be hard…if you don’t have a reliable system that organizes all your tasks\n\nIn this video I show you how to Easily Manage Complex Projects in Notion by sharing my project management templates and walking you through an example where I plan a complicated international trip\n\nThe key to managing complex projects in Notion is to assign tasks to different milestones that make up your overall project. And as long as you review your Notion project page on a regular basis, you’ll always have an organized project management system!\n\nMy Simple Productivity System video 👉🏻\u00A0https://youtu.be/7M6bIeVbCqA\n\nTIMESTAMPS\n00:00 How NOT to Manage Projects in Notion\n00:34 Project Example: Planning a Complex Trip\n00:52 Notion Project Management Template Overview\n01:36 Level 1 - List of Projects\n01:57 Level 2 - List of Milestones and Tasks\n02:24 Milestone Definition\n03:09 Link Databases using Relations Property\n04:05 Show Remaining Tasks using Rollup Property\n04:39 Add Formula to Show Remaining Tasks\n05:20 Add a Self-Referential Filter\n07:27 Real Life Example\n08:12 Other Project Management Examples\n\nRESOURCES I MENTION IN THE VIDEO\nMy Simple Productivity System - https://youtu.be/7M6bIeVbCqA\nThomas Frank’s Notion Database video - https://youtu.be/mAJOpO73d8Y\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#projectmanagement #notionhq #productivity", "duration" => 567, "filename" => "/downloads/Jeff Su/2022-08-09 Easily Manage Complex Projects in Notion!/Easily Manage Complex Projects in Notion! [OOYmBRr3zVs].mp4", "id" => "OOYmBRr3zVs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OOYmBRr3zVs", "playlist_index" => 91, "timestamp" => 1660050023, "title" => "Easily Manage Complex Projects in Notion!", "upload_date" => "20220809"} 16:43:45.923 [debug] QUERY OK source="sources" db=0.3ms idle=1663.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:45.923 [debug] QUERY OK source="sources" db=0.2ms idle=1664.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:45.924 [debug] QUERY OK source="media_items" db=0.4ms idle=1664.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-08-09 13:00:23Z], 1] 16:43:45.927 [debug] QUERY OK source="media_items" db=1.7ms idle=1665.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=112\n\nDownload the free templates here ➡️ https://www.jeffsu.org/how-to-manage-projects-in-notion/\n\n🗂\u00A0Project management can be hard…if you don’t have a reliable system that organizes all your tasks\n\nIn this video I show you how to Easily Manage Complex Projects in Notion by sharing my project management templates and walking you through an example where I plan a complicated international trip\n\nThe key to managing complex projects in Notion is to assign tasks to different milestones that make up your overall project. And as long as you review your Notion project page on a regular basis, you’ll always have an organized project management system!\n\nMy Simple Productivity System video 👉🏻\u00A0https://youtu.be/7M6bIeVbCqA\n\nTIMESTAMPS\n00:00 How NOT to Manage Projects in Notion\n00:34 Project Example: Planning a Complex Trip\n00:52 Notion Project Management Template Overview\n01:36 Level 1 - List of Projects\n01:57 Level 2 - List of Milestones and Tasks\n02:24 Milestone Definition\n03:09 Link Databases using Relations Property\n04:05 Show Remaining Tasks using Rollup Property\n04:39 Add Formula to Show Remaining Tasks\n05:20 Add a Self-Referential Filter\n07:27 Real Life Example\n08:12 Other Project Management Examples\n\nRESOURCES I MENTION IN THE VIDEO\nMy Simple Productivity System - https://youtu.be/7M6bIeVbCqA\nThomas Frank’s Notion Database video - https://youtu.be/mAJOpO73d8Y\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#projectmanagement #notionhq #productivity", "Easily Manage Complex Projects in Notion!", "59cb76fe-bdc0-425e-b53b-4c77887aa1c3", false, "OOYmBRr3zVs", 1, [], 567, false, "https://www.youtube.com/watch?v=OOYmBRr3zVs", 91, "/downloads/Jeff Su/2022-08-09 Easily Manage Complex Projects in Notion!/Easily Manage Complex Projects in Notion! [OOYmBRr3zVs].mp4", false, false, 99, ~U[2022-08-09 13:00:23Z], ~U[2026-04-23 14:43:45Z], ~U[2026-04-23 14:43:45Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=112\n\nDownload the free templates here ➡️ https://www.jeffsu.org/how-to-manage-projects-in-notion/\n\n🗂\u00A0Project management can be hard…if you don’t have a reliable system that organizes all your tasks\n\nIn this video I show you how to Easily Manage Complex Projects in Notion by sharing my project management templates and walking you through an example where I plan a complicated international trip\n\nThe key to managing complex projects in Notion is to assign tasks to different milestones that make up your overall project. And as long as you review your Notion project page on a regular basis, you’ll always have an organized project management system!\n\nMy Simple Productivity System video 👉🏻\u00A0https://youtu.be/7M6bIeVbCqA\n\nTIMESTAMPS\n00:00 How NOT to Manage Projects in Notion\n00:34 Project Example: Planning a Complex Trip\n00:52 Notion Project Management Template Overview\n01:36 Level 1 - List of Projects\n01:57 Level 2 - List of Milestones and Tasks\n02:24 Milestone Definition\n03:09 Link Databases using Relations Property\n04:05 Show Remaining Tasks using Rollup Property\n04:39 Add Formula to Show Remaining Tasks\n05:20 Add a Self-Referential Filter\n07:27 Real Life Example\n08:12 Other Project Management Examples\n\nRESOURCES I MENTION IN THE VIDEO\nMy Simple Productivity System - https://youtu.be/7M6bIeVbCqA\nThomas Frank’s Notion Database video - https://youtu.be/mAJOpO73d8Y\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#projectmanagement #notionhq #productivity", "Easily Manage Complex Projects in Notion!", "OOYmBRr3zVs", 1, 567, false, "https://www.youtube.com/watch?v=OOYmBRr3zVs", "/downloads/Jeff Su/2022-08-09 Easily Manage Complex Projects in Notion!/Easily Manage Complex Projects in Notion! [OOYmBRr3zVs].mp4", false, ~U[2022-08-09 13:00:23Z]] 16:43:45.927 [debug] QUERY OK source="sources" db=0.2ms idle=953.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:45.928 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:43:45.929 [debug] QUERY OK source="media_items" db=0.5ms 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 [91] 16:43:45.929 [info] Kicking off download for media item #91 (OOYmBRr3zVs) 16:43:45.932 [debug] QUERY OK source="tasks" db=0.2ms idle=4.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [95, 91, ~U[2026-04-23 14:43:45Z], ~U[2026-04-23 14:43:45Z]] 16:43:45.932 [debug] Current batch of media processed. Will check again in 1000ms 16:43:46.932 [debug] Current batch of media processed. Will check again in 1000ms 16:43:47.933 [debug] Current batch of media processed. Will check again in 1000ms 16:43:48.260 [info] {"source":"oban","duration":970,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:43:48.934 [debug] Current batch of media processed. Will check again in 1000ms 16:43:49.936 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=111\n\n🎯 Download Todoist for free - https://geni.us/jefftodoist\n\n🧑🏻\u200D💻\u00A0I love watching productivity videos and implementing tips from Tiago Forte, Ali Abdaal, and Thomas Frank but I’ll be the first to admit it’s too hard to adhere to their productivity systems 100% 🥲\n\nSo, I came up with my own simple productivity system that provides 80% of the benefit with just 20% of the effort:\n\n1️⃣\u00A0Step 1 - Capture\n\n2️⃣\u00A0Step 2 - Organize\n\nThe biggest pro tip comes from Tiago Forte: The wrong way is to organize by where you found the information, the right way is to organize by where that information will be used!\n\nTIMESTAMPS\n00:00 The “Best” Productivity Systems\n00:47 My Simple Two-Step Productivity System\n01:03 Capture and Organize\n01:23 Step 1 - Capture\n03:12 Step 2 - Organize\n05:27 When to Capture and Organize\n06:01 Productivity System - Inbox Management\n06:37 Summary and Next Steps\n\nRESOURCES I MENTION IN THE VIDEO\nAli Abdaal’s Second Brain - https://www.youtube.com/watch?v=K-ssUVyfn5g\nTiago Forte’s Second Brain - https://www.youtube.com/watch?v=vZr18_aOY6I\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎯 Todoist - https://geni.us/jefftodoist\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#productivitysystem #secondbrain #effortless", "duration" => 424, "filename" => "/downloads/Jeff Su/2022-08-02 My Simple Productivity System (for normal people)!/My Simple Productivity System (for normal people)! [7M6bIeVbCqA].mp4", "id" => "7M6bIeVbCqA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7M6bIeVbCqA", "playlist_index" => 92, "timestamp" => 1659445208, "title" => "My Simple Productivity System (for normal people)!", "upload_date" => "20220802"} 16:43:49.937 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1675.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:49.937 [debug] QUERY OK source="sources" db=0.2ms idle=955.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:49.938 [debug] QUERY OK source="media_items" db=0.5ms idle=678.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-08-02 13:00:08Z], 1] 16:43:49.941 [debug] QUERY OK source="media_items" db=1.7ms idle=680.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=111\n\n🎯 Download Todoist for free - https://geni.us/jefftodoist\n\n🧑🏻\u200D💻\u00A0I love watching productivity videos and implementing tips from Tiago Forte, Ali Abdaal, and Thomas Frank but I’ll be the first to admit it’s too hard to adhere to their productivity systems 100% 🥲\n\nSo, I came up with my own simple productivity system that provides 80% of the benefit with just 20% of the effort:\n\n1️⃣\u00A0Step 1 - Capture\n\n2️⃣\u00A0Step 2 - Organize\n\nThe biggest pro tip comes from Tiago Forte: The wrong way is to organize by where you found the information, the right way is to organize by where that information will be used!\n\nTIMESTAMPS\n00:00 The “Best” Productivity Systems\n00:47 My Simple Two-Step Productivity System\n01:03 Capture and Organize\n01:23 Step 1 - Capture\n03:12 Step 2 - Organize\n05:27 When to Capture and Organize\n06:01 Productivity System - Inbox Management\n06:37 Summary and Next Steps\n\nRESOURCES I MENTION IN THE VIDEO\nAli Abdaal’s Second Brain - https://www.youtube.com/watch?v=K-ssUVyfn5g\nTiago Forte’s Second Brain - https://www.youtube.com/watch?v=vZr18_aOY6I\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎯 Todoist - https://geni.us/jefftodoist\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#productivitysystem #secondbrain #effortless", "My Simple Productivity System (for normal people)!", "20e09ec5-d63f-4bf8-ad5d-ae93e6349741", false, "7M6bIeVbCqA", 1, [], 424, false, "https://www.youtube.com/watch?v=7M6bIeVbCqA", 92, "/downloads/Jeff Su/2022-08-02 My Simple Productivity System (for normal people)!/My Simple Productivity System (for normal people)! [7M6bIeVbCqA].mp4", false, false, 99, ~U[2022-08-02 13:00:08Z], ~U[2026-04-23 14:43:49Z], ~U[2026-04-23 14:43:49Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=111\n\n🎯 Download Todoist for free - https://geni.us/jefftodoist\n\n🧑🏻\u200D💻\u00A0I love watching productivity videos and implementing tips from Tiago Forte, Ali Abdaal, and Thomas Frank but I’ll be the first to admit it’s too hard to adhere to their productivity systems 100% 🥲\n\nSo, I came up with my own simple productivity system that provides 80% of the benefit with just 20% of the effort:\n\n1️⃣\u00A0Step 1 - Capture\n\n2️⃣\u00A0Step 2 - Organize\n\nThe biggest pro tip comes from Tiago Forte: The wrong way is to organize by where you found the information, the right way is to organize by where that information will be used!\n\nTIMESTAMPS\n00:00 The “Best” Productivity Systems\n00:47 My Simple Two-Step Productivity System\n01:03 Capture and Organize\n01:23 Step 1 - Capture\n03:12 Step 2 - Organize\n05:27 When to Capture and Organize\n06:01 Productivity System - Inbox Management\n06:37 Summary and Next Steps\n\nRESOURCES I MENTION IN THE VIDEO\nAli Abdaal’s Second Brain - https://www.youtube.com/watch?v=K-ssUVyfn5g\nTiago Forte’s Second Brain - https://www.youtube.com/watch?v=vZr18_aOY6I\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎯 Todoist - https://geni.us/jefftodoist\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#productivitysystem #secondbrain #effortless", "My Simple Productivity System (for normal people)!", "7M6bIeVbCqA", 1, 424, false, "https://www.youtube.com/watch?v=7M6bIeVbCqA", "/downloads/Jeff Su/2022-08-02 My Simple Productivity System (for normal people)!/My Simple Productivity System (for normal people)! [7M6bIeVbCqA].mp4", false, ~U[2022-08-02 13:00:08Z]] 16:43:49.942 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=682.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:49.942 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:43:49.943 [debug] QUERY OK source="media_items" db=0.3ms queue=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 [92] 16:43:49.943 [info] Kicking off download for media item #92 (7M6bIeVbCqA) 16:43:49.946 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=4.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [96, 92, ~U[2026-04-23 14:43:49Z], ~U[2026-04-23 14:43:49Z]] 16:43:49.947 [debug] Current batch of media processed. Will check again in 1000ms 16:43:50.947 [debug] Current batch of media processed. Will check again in 1000ms 16:43:51.948 [debug] Current batch of media processed. Will check again in 1000ms 16:43:52.949 [debug] Current batch of media processed. Will check again in 1000ms 16:43:53.950 [debug] Current batch of media processed. Will check again in 1000ms 16:43:54.952 [debug] Current batch of media processed. Will check again in 1000ms 16:43:55.952 [debug] Current batch of media processed. Will check again in 1000ms 16:43:56.954 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🖥\u00A0The overall theme for this desk setup is: minimal meets practical\n\nI like working with dual displays and I like big open spaces on my desk for creative work. After lots of trial and error, I wanted to share this clean and modern dual monitor setup with you all!\n\nGet my wallpaper 👉🏻\u00A0https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nThank you to @MatthewEncina for the inspiration!\n\nTIMESTAMPS\n00:00 Modern Dual-Monitor Desk Setup\n00:18 The Desk\n01:10 The Gap\n01:37 The Monitors\n01:58 How I Use a Dual-Monitor Setup\n02:53 The Mouse\n03:08 The Keyboard\n03:22 Logi Options+ App\n03:38 The Trackpad\n03:54 The Desk Pad\n04:00 The Laptop Dock\n04:15 The Docking Station\n04:38 The Audio Interface\n04:48 The Microphone\n05:06 The Microphone Arm\n05:18 The Camera Stand\n05:36 The Filming Setup\n05:47 The Light and Softbox\n05:56 The Chair\n06:22 The Cable Management\n06:49 The End\n\nRESOURCES I MENTION IN THE VIDEO\nErgotron Monitor Arm - https://amzn.to/3WeQ59M\nIkea UPPSPEL Desk - https://www.ikea.com/us/en/p/uppspel-gaming-desk-black-s79430163/\nPro Display XDR - https://amzn.to/3aHxPo7\nAudioengine A2+ Speakers - https://amzn.to/3cqpJ3n\nLogitech MX Master 3S - https://amzn.to/3z9LCNy\nLogitech MX Keys Mini for Mac - https://amzn.to/3aRmYaW\nLogitech Brio Webcam - https://amzn.to/3ongK5R\nLogi Options+ - https://www.logitech.com/en-us/software/logi-options-plus.html\nMagic Trackpad 2 - https://amzn.to/3yOpBm4\nGrovemade Wool Felt Desk Pad - https://grovemade.com/product/wool-felt-desk-pad/?rfsn=6731618.b15b01&initial=475\nGrovemade Laptop Docking Station - https://grovemade.com/product/wood-macbook-dock/?rfsn=6731618.b15b01&initial=636\nKensington Docking Station - https://amzn.to/3zcssXi\nFocusrite Scarlett 2i2 3rd Gen - https://amzn.to/3B0emJR\nShure SM7B Microphone - https://amzn.to/3oew44A\nShure SM7B Adapter - https://amzn.to/3BbkJdm\nBlue Compass Boom Arm - https://amzn.to/3PDkP1z\nFalcam Geartree Desk Studio Set - https://www.bhphotovideo.com/c/product/1699461-REG/falcam_2816_geartree_desk_studio_set.html\nSony A7SIII Camera - https://amzn.to/3o5Fcsu\nSony FE 24mm F1.4 GM Lens - https://amzn.to/3uR93sw\nAmaran 100x - https://amzn.to/3Ph22JF\nSelens 65cm Softbox - https://amzn.to/3zcuVkD\nHerman Miller Embody Chair - https://www.hermanmiller.com/en_lac/products/seating/office-chairs/embody-chairs/\nCable Clips - https://amzn.to/3RAHP37\nLaMetric Clock - https://amzn.to/3yRkkdl\nCable Management video from @sambeckman - https://www.youtube.com/watch?v=DHPuvLcSYu8\nCable Management from @edwardleefilms - https://youtu.be/Tpk0GIpq5JM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#desksetup #dualmonitors #minimal", "duration" => 420, "filename" => "/downloads/Jeff Su/2022-07-19 Clean Modern Desk Tour | Dual Monitor Setup/Clean Modern Desk Tour | Dual Monitor Setup [vIJAdMoxCc4].mp4", "id" => "vIJAdMoxCc4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vIJAdMoxCc4", "playlist_index" => 93, "timestamp" => 1658235628, "title" => "Clean Modern Desk Tour | Dual Monitor Setup", "upload_date" => "20220719"} 16:43:56.955 [debug] QUERY OK source="sources" db=0.3ms idle=1695.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:43:56.955 [debug] QUERY OK source="sources" db=0.2ms idle=1696.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:43:56.956 [debug] QUERY OK source="media_items" db=0.6ms idle=1696.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-07-19 13:00:28Z], 1] 16:43:56.960 [debug] QUERY OK source="media_items" db=2.6ms idle=1698.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🖥\u00A0The overall theme for this desk setup is: minimal meets practical\n\nI like working with dual displays and I like big open spaces on my desk for creative work. After lots of trial and error, I wanted to share this clean and modern dual monitor setup with you all!\n\nGet my wallpaper 👉🏻\u00A0https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nThank you to @MatthewEncina for the inspiration!\n\nTIMESTAMPS\n00:00 Modern Dual-Monitor Desk Setup\n00:18 The Desk\n01:10 The Gap\n01:37 The Monitors\n01:58 How I Use a Dual-Monitor Setup\n02:53 The Mouse\n03:08 The Keyboard\n03:22 Logi Options+ App\n03:38 The Trackpad\n03:54 The Desk Pad\n04:00 The Laptop Dock\n04:15 The Docking Station\n04:38 The Audio Interface\n04:48 The Microphone\n05:06 The Microphone Arm\n05:18 The Camera Stand\n05:36 The Filming Setup\n05:47 The Light and Softbox\n05:56 The Chair\n06:22 The Cable Management\n06:49 The End\n\nRESOURCES I MENTION IN THE VIDEO\nErgotron Monitor Arm - https://amzn.to/3WeQ59M\nIkea UPPSPEL Desk - https://www.ikea.com/us/en/p/uppspel-gaming-desk-black-s79430163/\nPro Display XDR - https://amzn.to/3aHxPo7\nAudioengine A2+ Speakers - https://amzn.to/3cqpJ3n\nLogitech MX Master 3S - https://amzn.to/3z9LCNy\nLogitech MX Keys Mini for Mac - https://amzn.to/3aRmYaW\nLogitech Brio Webcam - https://amzn.to/3ongK5R\nLogi Options+ - https://www.logitech.com/en-us/software/logi-options-plus.html\nMagic Trackpad 2 - https://amzn.to/3yOpBm4\nGrovemade Wool Felt Desk Pad - https://grovemade.com/product/wool-felt-desk-pad/?rfsn=6731618.b15b01&initial=475\nGrovemade Laptop Docking Station - https://grovemade.com/product/wood-macbook-dock/?rfsn=6731618.b15b01&initial=636\nKensington Docking Station - https://amzn.to/3zcssXi\nFocusrite Scarlett 2i2 3rd Gen - https://amzn.to/3B0emJR\nShure SM7B Microphone - https://amzn.to/3oew44A\nShure SM7B Adapter - https://amzn.to/3BbkJdm\nBlue Compass Boom Arm - https://amzn.to/3PDkP1z\nFalcam Geartree Desk Studio Set - https://www.bhphotovideo.com/c/product/1699461-REG/falcam_2816_geartree_desk_studio_set.html\nSony A7SIII Camera - https://amzn.to/3o5Fcsu\nSony FE 24mm F1.4 GM Lens - https://amzn.to/3uR93sw\nAmaran 100x - https://amzn.to/3Ph22JF\nSelens 65cm Softbox - https://amzn.to/3zcuVkD\nHerman Miller Embody Chair - https://www.hermanmiller.com/en_lac/products/seating/office-chairs/embody-chairs/\nCable Clips - https://amzn.to/3RAHP37\nLaMetric Clock - https://amzn.to/3yRkkdl\nCable Management video from @sambeckman - https://www.youtube.com/watch?v=DHPuvLcSYu8\nCable Management from @edwardleefilms - https://youtu.be/Tpk0GIpq5JM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#desksetup #dualmonitors #minimal", "Clean Modern Desk Tour | Dual Monitor Setup", "3ba62e45-cd58-450c-a50b-d0f1e02f0ece", false, "vIJAdMoxCc4", 1, [], 420, false, "https://www.youtube.com/watch?v=vIJAdMoxCc4", 93, "/downloads/Jeff Su/2022-07-19 Clean Modern Desk Tour | Dual Monitor Setup/Clean Modern Desk Tour | Dual Monitor Setup [vIJAdMoxCc4].mp4", false, false, 99, ~U[2022-07-19 13:00:28Z], ~U[2026-04-23 14:43:56Z], ~U[2026-04-23 14:43:56Z], "🖥\u00A0The overall theme for this desk setup is: minimal meets practical\n\nI like working with dual displays and I like big open spaces on my desk for creative work. After lots of trial and error, I wanted to share this clean and modern dual monitor setup with you all!\n\nGet my wallpaper 👉🏻\u00A0https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nThank you to @MatthewEncina for the inspiration!\n\nTIMESTAMPS\n00:00 Modern Dual-Monitor Desk Setup\n00:18 The Desk\n01:10 The Gap\n01:37 The Monitors\n01:58 How I Use a Dual-Monitor Setup\n02:53 The Mouse\n03:08 The Keyboard\n03:22 Logi Options+ App\n03:38 The Trackpad\n03:54 The Desk Pad\n04:00 The Laptop Dock\n04:15 The Docking Station\n04:38 The Audio Interface\n04:48 The Microphone\n05:06 The Microphone Arm\n05:18 The Camera Stand\n05:36 The Filming Setup\n05:47 The Light and Softbox\n05:56 The Chair\n06:22 The Cable Management\n06:49 The End\n\nRESOURCES I MENTION IN THE VIDEO\nErgotron Monitor Arm - https://amzn.to/3WeQ59M\nIkea UPPSPEL Desk - https://www.ikea.com/us/en/p/uppspel-gaming-desk-black-s79430163/\nPro Display XDR - https://amzn.to/3aHxPo7\nAudioengine A2+ Speakers - https://amzn.to/3cqpJ3n\nLogitech MX Master 3S - https://amzn.to/3z9LCNy\nLogitech MX Keys Mini for Mac - https://amzn.to/3aRmYaW\nLogitech Brio Webcam - https://amzn.to/3ongK5R\nLogi Options+ - https://www.logitech.com/en-us/software/logi-options-plus.html\nMagic Trackpad 2 - https://amzn.to/3yOpBm4\nGrovemade Wool Felt Desk Pad - https://grovemade.com/product/wool-felt-desk-pad/?rfsn=6731618.b15b01&initial=475\nGrovemade Laptop Docking Station - https://grovemade.com/product/wood-macbook-dock/?rfsn=6731618.b15b01&initial=636\nKensington Docking Station - https://amzn.to/3zcssXi\nFocusrite Scarlett 2i2 3rd Gen - https://amzn.to/3B0emJR\nShure SM7B Microphone - https://amzn.to/3oew44A\nShure SM7B Adapter - https://amzn.to/3BbkJdm\nBlue Compass Boom Arm - https://amzn.to/3PDkP1z\nFalcam Geartree Desk Studio Set - https://www.bhphotovideo.com/c/product/1699461-REG/falcam_2816_geartree_desk_studio_set.html\nSony A7SIII Camera - https://amzn.to/3o5Fcsu\nSony FE 24mm F1.4 GM Lens - https://amzn.to/3uR93sw\nAmaran 100x - https://amzn.to/3Ph22JF\nSelens 65cm Softbox - https://amzn.to/3zcuVkD\nHerman Miller Embody Chair - https://www.hermanmiller.com/en_lac/products/seating/office-chairs/embody-chairs/\nCable Clips - https://amzn.to/3RAHP37\nLaMetric Clock - https://amzn.to/3yRkkdl\nCable Management video from @sambeckman - https://www.youtube.com/watch?v=DHPuvLcSYu8\nCable Management from @edwardleefilms - https://youtu.be/Tpk0GIpq5JM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#desksetup #dualmonitors #minimal", "Clean (truncated) 16:43:56.961 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=964.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:43:56.962 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:43:56.962 [debug] QUERY OK source="media_items" db=0.3ms idle=6.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [93] 16:43:56.963 [info] Kicking off download for media item #93 (vIJAdMoxCc4) 16:43:56.965 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=4.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [97, 93, ~U[2026-04-23 14:43:56Z], ~U[2026-04-23 14:43:56Z]] 16:43:56.966 [debug] Current batch of media processed. Will check again in 1000ms 16:43:57.966 [debug] Current batch of media processed. Will check again in 1000ms 16:43:58.699 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=p3840QxlYzc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a4/3f/a43f35930c27285f6007364020e993f622622dd41adea65cba02ed9d0b4b0b4f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:43:58.738 [debug] Running yt-dlp command for action: download_thumbnail 16:43:58.740 [debug] QUERY OK source="settings" db=0.2ms idle=739.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:58.740 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:43:58.742 [debug] QUERY OK source="settings" db=1.1ms queue=0.1ms idle=481.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:43:58.742 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=p3840QxlYzc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/20/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/51/6f/516f90674a89551418518d36eebfeaac24a207a032770bd3dcf6aaee7940f3e1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:43:58.967 [debug] Current batch of media processed. Will check again in 1000ms 16:43:59.969 [debug] Current batch of media processed. Will check again in 1000ms 16:44:00.213 [info] {"source":"oban","duration":261,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:44:00.674 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FKLr3ft8ea0 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/14/68/146889fe6ce3e481e15c9a85013962250273627c8bea6e3ac2c7a17c521f9cb6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:44:00.766 [debug] Running yt-dlp command for action: download_thumbnail 16:44:00.767 [debug] QUERY OK source="settings" db=0.2ms idle=763.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:00.767 [debug] QUERY OK source="settings" db=0.1ms idle=554.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:00.767 [debug] QUERY OK source="settings" db=0.1ms idle=508.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:00.768 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FKLr3ft8ea0 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/19/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/eb/75/eb7517bd359d3d9e2ae24c4c76494aec94a1ab086639d0af1e7c2e5e6a8eb490.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:44:00.970 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=109\n\nCreate your own Gmail signature (Briskine templates included): https://www.jeffsu.org/10-mind-blowing-tips-all-gmail-users-should-know\n\nGmail rolled out a bunch of cool new things recently and also optimized some of their existing features, so let’s go over some mind blowing tips every Gmail user should know! \n\nFirst of all, I wish someone taught me that you could create your very own custom Gmail signature in Google Docs (and just paste it over). Speaking of Google Docs, thanks to the Smart Chip feature you can start a email draft in Docs, share with others to review, then port into Gmail directly. \n\nYou can now also set an expiration date for emails by toggling on Confidential Mode, and for emails you can’t seem to unsubscribe from, you just need to create a filter with some of the key words from that series of spam!\n\nTIMESTAMPS\n00:00 Create a Custom Gmail Signature\n01:24 Compose Gmail Draft from Google Docs\n02:07 Briskine Gmail Extension\n03:40 Block All Spam Emails\n04:35 Edit Gmail Title before Forwarding\n05:11 Enable Confidential Mode in Gmail\n05:49 Enable New Gmail View\n06:16 Clear Text Formatting in Gmail\n07:01 Change Default Snooze Times\n07:44 Know When to Use Snooze in Gmail\n\nRESOURCES I MENTION IN THE VIDEO\nHow to use Smart Chips in Google Docs - https://youtu.be/auYFCjU7pBA\nBriskine tutorial - https://app.briskine.com/getting-started\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#gmail #productivity #career", "duration" => 519, "filename" => "/downloads/Jeff Su/2022-07-12 10 Gmail Productivity Tips that Changed My Life!/10 Gmail Productivity Tips that Changed My Life! [3_6eRpTkBD8].mp4", "id" => "3_6eRpTkBD8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3_6eRpTkBD8", "playlist_index" => 94, "timestamp" => 1657630802, "title" => "10 Gmail Productivity Tips that Changed My Life!", "upload_date" => "20220712"} 16:44:00.971 [debug] QUERY OK source="sources" db=0.5ms idle=711.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:00.971 [debug] QUERY OK source="sources" db=0.2ms idle=712.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:00.972 [debug] QUERY OK source="media_items" db=0.5ms idle=204.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-07-12 13:00:02Z], 1] 16:44:00.981 [debug] QUERY OK source="media_items" db=7.3ms idle=205.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=109\n\nCreate your own Gmail signature (Briskine templates included): https://www.jeffsu.org/10-mind-blowing-tips-all-gmail-users-should-know\n\nGmail rolled out a bunch of cool new things recently and also optimized some of their existing features, so let’s go over some mind blowing tips every Gmail user should know! \n\nFirst of all, I wish someone taught me that you could create your very own custom Gmail signature in Google Docs (and just paste it over). Speaking of Google Docs, thanks to the Smart Chip feature you can start a email draft in Docs, share with others to review, then port into Gmail directly. \n\nYou can now also set an expiration date for emails by toggling on Confidential Mode, and for emails you can’t seem to unsubscribe from, you just need to create a filter with some of the key words from that series of spam!\n\nTIMESTAMPS\n00:00 Create a Custom Gmail Signature\n01:24 Compose Gmail Draft from Google Docs\n02:07 Briskine Gmail Extension\n03:40 Block All Spam Emails\n04:35 Edit Gmail Title before Forwarding\n05:11 Enable Confidential Mode in Gmail\n05:49 Enable New Gmail View\n06:16 Clear Text Formatting in Gmail\n07:01 Change Default Snooze Times\n07:44 Know When to Use Snooze in Gmail\n\nRESOURCES I MENTION IN THE VIDEO\nHow to use Smart Chips in Google Docs - https://youtu.be/auYFCjU7pBA\nBriskine tutorial - https://app.briskine.com/getting-started\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#gmail #productivity #career", "10 Gmail Productivity Tips that Changed My Life!", "c7e1d4e0-cbd8-490b-8b09-cd1654bffa3c", false, "3_6eRpTkBD8", 1, [], 519, false, "https://www.youtube.com/watch?v=3_6eRpTkBD8", 94, "/downloads/Jeff Su/2022-07-12 10 Gmail Productivity Tips that Changed My Life!/10 Gmail Productivity Tips that Changed My Life! [3_6eRpTkBD8].mp4", false, false, 99, ~U[2022-07-12 13:00:02Z], ~U[2026-04-23 14:44:00Z], ~U[2026-04-23 14:44:00Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=109\n\nCreate your own Gmail signature (Briskine templates included): https://www.jeffsu.org/10-mind-blowing-tips-all-gmail-users-should-know\n\nGmail rolled out a bunch of cool new things recently and also optimized some of their existing features, so let’s go over some mind blowing tips every Gmail user should know! \n\nFirst of all, I wish someone taught me that you could create your very own custom Gmail signature in Google Docs (and just paste it over). Speaking of Google Docs, thanks to the Smart Chip feature you can start a email draft in Docs, share with others to review, then port into Gmail directly. \n\nYou can now also set an expiration date for emails by toggling on Confidential Mode, and for emails you can’t seem to unsubscribe from, you just need to create a filter with some of the key words from that series of spam!\n\nTIMESTAMPS\n00:00 Create a Custom Gmail Signature\n01:24 Compose Gmail Draft from Google Docs\n02:07 Briskine Gmail Extension\n03:40 Block All Spam Emails\n04:35 Edit Gmail Title before Forwarding\n05:11 Enable Confidential Mode in Gmail\n05:49 Enable New Gmail View\n06:16 Clear Text Formatting in Gmail\n07:01 Change Default Snooze Times\n07:44 Know When to Use Snooze in Gmail\n\nRESOURCES I MENTION IN THE VIDEO\nHow to use Smart Chips in Google Docs - https://youtu.be/auYFCjU7pBA\nBriskine tutorial - https://app.briskine.com/getting-started\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#gmail #productivity #career", "10 Gmail Productivity Tips that Changed My Life!", "3_6eRpTkBD8", 1, 519, false, "https://www.youtube.com/watch?v=3_6eRpTkBD8", "/downloads/Jeff Su/2022-07-12 10 Gmail Productivity Tips that Changed My Life!/10 Gmail Productivity Tips that Changed My Life! [3_6eRpTkBD8].mp4", false, ~U[2022-07-12 13:00:02Z]] 16:44:00.981 [debug] QUERY OK source="sources" db=0.4ms idle=213.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:00.982 [debug] QUERY OK source="media_profiles" db=0.2ms idle=10.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] 16:44:00.983 [debug] QUERY OK source="media_items" db=0.3ms idle=10.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [94] 16:44:00.983 [info] Kicking off download for media item #94 (3_6eRpTkBD8) 16:44:02.199 [debug] QUERY OK source="tasks" db=60.5ms queue=0.1ms idle=1156.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [98, 94, ~U[2026-04-23 14:44:02Z], ~U[2026-04-23 14:44:02Z]] 16:44:02.200 [debug] Current batch of media processed. Will check again in 1000ms 16:44:03.200 [debug] Current batch of media processed. Will check again in 1000ms 16:44:04.201 [debug] Current batch of media processed. Will check again in 1000ms 16:44:04.894 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=p3840QxlYzc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/20/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/51/6f/516f90674a89551418518d36eebfeaac24a207a032770bd3dcf6aaee7940f3e1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:44:04.896 [debug] QUERY OK db=0.3ms idle=1637.1ms begin [] 16:44:04.897 [debug] QUERY OK source="media_items" db=1.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:43:58Z], "/downloads/Jeff Su/2025-07-01 The CORRECT way to use ChatGPT (in 2026)/The CORRECT way to use ChatGPT (in 2026) [p3840QxlYzc].mp4", "/downloads/Jeff Su/2025-07-01 The CORRECT way to use ChatGPT (in 2026)/The CORRECT way to use ChatGPT (in 2026) [p3840QxlYzc].info.json", "/downloads/Jeff Su/2025-07-01 The CORRECT way to use ChatGPT (in 2026)/The CORRECT way to use ChatGPT (in 2026) [p3840QxlYzc].nfo", "/downloads/Jeff Su/2025-07-01 The CORRECT way to use ChatGPT (in 2026)/The CORRECT way to use ChatGPT (in 2026) [p3840QxlYzc]-thumb.jpg", ~U[2026-04-23 14:44:04Z], 20] 16:44:04.899 [debug] QUERY OK source="media_metadata" db=1.0ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/20/metadata.json.gz", "/config/metadata/media_items/20/thumbnail.jpg", 20, ~U[2026-04-23 14:44:04Z], ~U[2026-04-23 14:44:04Z]] 16:44:04.901 [debug] QUERY OK db=1.7ms commit [] 16:44:04.906 [debug] QUERY OK source="media_items" db=2.7ms idle=1644.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [29862745, ~U[2026-04-23 14:44:04Z], 20] 16:44:04.906 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:44:04.907 [info] {"args":{"id":20},"id":24,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":35534358,"event":"job:stop","queue_time":284370882,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:44:04.914 [info] {"args":{"id":21},"id":25,"meta":{},"system_time":1776955444914266929,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:44:04.915 [debug] QUERY OK source="media_items" db=0.5ms idle=655.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" = ?) [21] 16:44:04.917 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:44:04.919 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=16.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:04.920 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=13.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] 16:44:04.922 [debug] QUERY OK source="media_items" db=0.6ms queue=1.4ms idle=13.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 [21] 16:44:04.926 [debug] QUERY OK source="media_metadata" db=0.6ms queue=0.5ms idle=10.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [21] 16:44:04.927 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.4ms idle=11.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:44:04.928 [debug] QUERY OK source="settings" db=0.2ms idle=8.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:04.928 [debug] QUERY OK source="settings" db=0.2ms idle=8.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:04.929 [debug] Running yt-dlp command for action: get_downloadable_status 16:44:04.930 [debug] QUERY OK source="settings" db=0.2ms idle=7.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:04.931 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:44:04.931 [debug] QUERY OK source="settings" db=0.3ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:04.932 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=mi2vCsP1oKY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/8b/fb/8bfb71f2b325121b2a6a390f0bac07911f80fe2a0cf8818999179392371bca41.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:44:05.202 [debug] Current batch of media processed. Will check again in 1000ms 16:44:06.204 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🌌\u00A0Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nYou know that feeling when you come across this perfect app or tool and you think to yourself: “how the heck did I not know about this before?!” \n\nWell in this video, I share 11 MUST HAVE Chrome Extensions for Productivity so you can find that perfect extension that will save you a BUNCH of time and make browsing online an (even) better experience 😉\n\nMy personal favorite is the ability to give any and all chrome extensions shortcuts so you can keep your extension bar super clean 🤯\n\nI also have a video on the best productivity tips for Chrome 👉🏻\u00A0https://youtu.be/KXY-2fIAksY\n\nTIMESTAMPS\n00:00 Link to Text Fragment\n01:02 Set Extension Shortcuts\n01:40 Nimbus Screenshot and Screen Recorder\n03:02 uBlock Origin\n04:22 ColorZilla\n05:06 Picture-in-Picture\n05:26 Papier\n06:20 FlashTabs\n07:15 Button for Google Calendar\n07:35 Clean Master\n08:13 Save to Notion\n08:35 Hidden Bonus Tip\n\nCHROME EXTENSIONS\nLink to Text Fragment - https://chrome.google.com/webstore/detail/link-to-text-fragment/pbcodcjpfjdpcineamnnmbkkmkdpajjg?hl=en\nGive Extensions a Shortcut - chrome://extensions/shortcuts\nNimbus - https://chrome.google.com/webstore/detail/nimbus-screenshot-screen/bpconcjcammlapcogcnnelfmaeghhagj?hl=en\nuBlock Origin - https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm?hl=en\nColorZilla - https://chrome.google.com/webstore/detail/colorzilla/bhlhnicpbhignbdhedgjhgdocnmhomnp?hl=en\nPicture-in-Picture - https://chrome.google.com/webstore/detail/picture-in-picture-extens/hkgfoiooedgoejojocmhlaklaeopbecg?hl=en\nPapier - https://chrome.google.com/webstore/detail/papier/hhjeaokafplhjoogdemakihhdhffacia\nFlashTabs - https://chrome.google.com/webstore/detail/flashtabs/gcgdbnfebnhdbffnohjibaomkiepmfnb?hl=en-GB\nClean Master - https://chrome.google.com/webstore/detail/clean-master-the-best-chr/eagiakjmjnblliacokhcalebgnhellfi?hl=en\nButton for Google Calendar - https://chrome.google.com/webstore/detail/button-for-google-calenda/lfjnmopldodmmdhddmeacgjnjeakjpki?hl=en\nSave to Notion - https://chrome.google.com/webstore/detail/save-to-notion/ldmmifpegigmeammaeckplhnjbbpccmm?hl=en\n\nRESOURCES I MENTION IN THE VIDEO\nCleanShot X - https://geni.us/cleanshotx\nMac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\nGoogle Calendar video - https://youtu.be/QQKHhri48Ps\nSave to Notion video - https://youtu.be/diK9dZulkAs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#chrome #productivity #extensions", "duration" => 535, "filename" => "/downloads/Jeff Su/2022-06-28 11 MUST HAVE Extensions for Productivity!/11 MUST HAVE Extensions for Productivity! [IBLoq8faKks].mp4", "id" => "IBLoq8faKks", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IBLoq8faKks", "playlist_index" => 95, "timestamp" => 1656421215, "title" => "11 MUST HAVE Extensions for Productivity!", "upload_date" => "20220628"} 16:44:06.205 [debug] QUERY OK source="sources" db=0.4ms idle=1274.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:06.207 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1275.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:06.208 [debug] QUERY OK source="media_items" db=0.8ms queue=0.3ms idle=1275.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-06-28 13:00:15Z], 1] 16:44:06.216 [debug] QUERY OK source="media_items" db=3.9ms queue=0.7ms idle=1192.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🌌\u00A0Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nYou know that feeling when you come across this perfect app or tool and you think to yourself: “how the heck did I not know about this before?!” \n\nWell in this video, I share 11 MUST HAVE Chrome Extensions for Productivity so you can find that perfect extension that will save you a BUNCH of time and make browsing online an (even) better experience 😉\n\nMy personal favorite is the ability to give any and all chrome extensions shortcuts so you can keep your extension bar super clean 🤯\n\nI also have a video on the best productivity tips for Chrome 👉🏻\u00A0https://youtu.be/KXY-2fIAksY\n\nTIMESTAMPS\n00:00 Link to Text Fragment\n01:02 Set Extension Shortcuts\n01:40 Nimbus Screenshot and Screen Recorder\n03:02 uBlock Origin\n04:22 ColorZilla\n05:06 Picture-in-Picture\n05:26 Papier\n06:20 FlashTabs\n07:15 Button for Google Calendar\n07:35 Clean Master\n08:13 Save to Notion\n08:35 Hidden Bonus Tip\n\nCHROME EXTENSIONS\nLink to Text Fragment - https://chrome.google.com/webstore/detail/link-to-text-fragment/pbcodcjpfjdpcineamnnmbkkmkdpajjg?hl=en\nGive Extensions a Shortcut - chrome://extensions/shortcuts\nNimbus - https://chrome.google.com/webstore/detail/nimbus-screenshot-screen/bpconcjcammlapcogcnnelfmaeghhagj?hl=en\nuBlock Origin - https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm?hl=en\nColorZilla - https://chrome.google.com/webstore/detail/colorzilla/bhlhnicpbhignbdhedgjhgdocnmhomnp?hl=en\nPicture-in-Picture - https://chrome.google.com/webstore/detail/picture-in-picture-extens/hkgfoiooedgoejojocmhlaklaeopbecg?hl=en\nPapier - https://chrome.google.com/webstore/detail/papier/hhjeaokafplhjoogdemakihhdhffacia\nFlashTabs - https://chrome.google.com/webstore/detail/flashtabs/gcgdbnfebnhdbffnohjibaomkiepmfnb?hl=en-GB\nClean Master - https://chrome.google.com/webstore/detail/clean-master-the-best-chr/eagiakjmjnblliacokhcalebgnhellfi?hl=en\nButton for Google Calendar - https://chrome.google.com/webstore/detail/button-for-google-calenda/lfjnmopldodmmdhddmeacgjnjeakjpki?hl=en\nSave to Notion - https://chrome.google.com/webstore/detail/save-to-notion/ldmmifpegigmeammaeckplhnjbbpccmm?hl=en\n\nRESOURCES I MENTION IN THE VIDEO\nCleanShot X - https://geni.us/cleanshotx\nMac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\nGoogle Calendar video - https://youtu.be/QQKHhri48Ps\nSave to Notion video - https://youtu.be/diK9dZulkAs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#chrome #productivity #extensions", "11 MUST HAVE Extensions for Productivity!", "9579ed82-ebb3-42cd-88e6-519e64cfde63", false, "IBLoq8faKks", 1, [], 535, false, "https://www.youtube.com/watch?v=IBLoq8faKks", 95, "/downloads/Jeff Su/2022-06-28 11 MUST HAVE Extensions for Productivity!/11 MUST HAVE Extensions for Productivity! [IBLoq8faKks].mp4", false, false, 99, ~U[2022-06-28 13:00:15Z], ~U[2026-04-23 14:44:06Z], ~U[2026-04-23 14:44:06Z], "🌌\u00A0Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nYou know that feeling when you come across this perfect app or tool and you think to yourself: “how the heck did I not know about this before?!” \n\nWell in this video, I share 11 MUST HAVE Chrome Extensions for Productivity so you can find that perfect extension that will save you a BUNCH of time and make browsing online an (even) better experience 😉\n\nMy personal favorite is the ability to give any and all chrome extensions shortcuts so you can keep your extension bar super clean 🤯\n\nI also have a video on the best productivity tips for Chrome 👉🏻\u00A0https://youtu.be/KXY-2fIAksY\n\nTIMESTAMPS\n00:00 Link to Text Fragment\n01:02 Set Extension Shortcuts\n01:40 Nimbus Screenshot and Screen Recorder\n03:02 uBlock Origin\n04:22 ColorZilla\n05:06 Picture-in-Picture\n05:26 Papier\n06:20 FlashTabs\n07:15 Button for Google Calendar\n07:35 Clean Master\n08:13 Save to Notion\n08:35 Hidden Bonus Tip\n\nCHROME EXTENSIONS\nLink to Text Fragment - https://chrome.google.com/webstore/detail/link-to-text-fragment/pbcodcjpfjdpcineamnnmbkkmkdpajjg?hl=en\nGive Extensions a Shortcut - chrome://extensions/shortcuts\nNimbus - https://chrome.google.com/webstore/detail/nimbus-screenshot-screen/bpconcjcammlapcogcnnelfmaeghhagj?hl=en\nuBlock Origin - https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm?hl=en\nColorZilla - https://chrome.google.com/webstore/detail/colorzilla/bhlhnicpbhignbdhedgjhgdocnmhomnp?hl=en\nPicture-in-Picture - https://chrome.google.com/webstore/detail/picture-in-picture-extens/hkgfoiooedgoejojocmhlaklaeopbecg?hl=en\nPapier - https://chrome.google.com/webstore/detail/papier/hhjeaokafplhjoogdemakihhdhffacia\nFlashTabs - https://chrome.google.com/webstore/detail/flashtabs/gcgdbnfebnhdbffnohjibaomkiepmfnb?hl=en-GB\nClean Master - https://chrome.google.com/webstore/detail/clean-master-the-best-chr/eagiakjmjnblliacokhcalebgnhellfi?hl=en\nButton for Google Calendar - https://chrome.google.com/webstore/detail/button-for-google-calenda/lfjnmopldodmmdhddmeacgjnjeakjpki?hl=en\nSave to Notion - https://chrome.google.com/webstore/detail/save-to-notion/ldmmifpegigmeammaeckplhnjbbpccmm?hl=en\n\nRESOURCES I MENTION IN THE VIDEO\nCleanShot X - https://geni.us/cleanshotx\nMac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\nGoogle Calendar video - https://youtu.be/QQKHhri48Ps\nSave to Notion video - https://youtu.be/diK9dZulkAs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#chrome #productivity #extensions", "11 MUST HAVE Extensions for Productivity!", "IBLoq8faKks", 1, 535, false, "https://www.youtube.com/watch?v=IBLoq8faKks", "/downloads/Jeff Su/2022-06-28 11 MUST HAVE Extensions for Productivity!/11 MUST HAVE Extensions for Productivit (truncated) 16:44:06.217 [debug] QUERY OK source="sources" db=0.4ms idle=196.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:06.217 [debug] QUERY OK source="media_profiles" db=0.3ms idle=11.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:44:06.218 [debug] QUERY OK source="media_items" db=0.4ms queue=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 [95] 16:44:06.218 [info] Kicking off download for media item #95 (IBLoq8faKks) 16:44:06.222 [debug] QUERY OK source="tasks" db=0.3ms idle=5.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [99, 95, ~U[2026-04-23 14:44:06Z], ~U[2026-04-23 14:44:06Z]] 16:44:06.222 [debug] Current batch of media processed. Will check again in 1000ms 16:44:07.223 [debug] Current batch of media processed. Will check again in 1000ms 16:44:07.515 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FKLr3ft8ea0 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/19/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/eb/75/eb7517bd359d3d9e2ae24c4c76494aec94a1ab086639d0af1e7c2e5e6a8eb490.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:44:07.516 [debug] QUERY OK db=0.1ms idle=493.9ms begin [] 16:44:07.518 [debug] QUERY OK source="media_items" db=1.2ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:44:00Z], "/downloads/Jeff Su/2025-07-15 Master Data Analysis with ChatGPT (in just 12 minutes)/Master Data Analysis with ChatGPT (in just 12 minutes) [FKLr3ft8ea0].mp4", "/downloads/Jeff Su/2025-07-15 Master Data Analysis with ChatGPT (in just 12 minutes)/Master Data Analysis with ChatGPT (in just 12 minutes) [FKLr3ft8ea0].info.json", "/downloads/Jeff Su/2025-07-15 Master Data Analysis with ChatGPT (in just 12 minutes)/Master Data Analysis with ChatGPT (in just 12 minutes) [FKLr3ft8ea0].nfo", "/downloads/Jeff Su/2025-07-15 Master Data Analysis with ChatGPT (in just 12 minutes)/Master Data Analysis with ChatGPT (in just 12 minutes) [FKLr3ft8ea0]-thumb.jpg", ~U[2026-04-23 14:44:07Z], 19] 16:44:07.522 [debug] QUERY OK source="media_metadata" db=3.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/19/metadata.json.gz", "/config/metadata/media_items/19/thumbnail.jpg", 19, ~U[2026-04-23 14:44:07Z], ~U[2026-04-23 14:44:07Z]] 16:44:07.524 [debug] QUERY OK db=2.2ms commit [] 16:44:07.530 [debug] QUERY OK source="media_items" db=4.0ms idle=267.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [32901016, ~U[2026-04-23 14:44:07Z], 19] 16:44:07.530 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:44:07.534 [info] {"args":{"id":19},"id":23,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":39141786,"event":"job:stop","queue_time":287387879,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:44:07.545 [info] {"args":{"id":22},"id":26,"meta":{},"system_time":1776955447544814800,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:44:07.545 [debug] QUERY OK source="media_items" db=0.6ms idle=286.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" = ?) [22] 16:44:07.546 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:44:07.550 [debug] QUERY OK source="sources" db=3.2ms queue=0.1ms 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" = ?) [1] 16:44:07.555 [debug] QUERY OK source="media_profiles" db=4.2ms queue=0.4ms idle=19.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] 16:44:07.558 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=20.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 [22] 16:44:07.562 [debug] QUERY OK source="media_metadata" db=0.2ms idle=17.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [22] 16:44:07.564 [debug] QUERY OK source="media_profiles" db=1.4ms idle=17.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:44:07.566 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms 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 [] 16:44:07.567 [debug] QUERY OK source="settings" db=0.9ms 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 [] 16:44:07.567 [debug] Running yt-dlp command for action: get_downloadable_status 16:44:07.569 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:44:07.570 [debug] QUERY OK source="settings" db=0.9ms idle=6.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:07.571 [debug] QUERY OK source="settings" db=0.9ms idle=5.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:07.571 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BVT5EZkb24Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/98/41/98416770279383ef1d24131dfe59f63e4303475ffcb5e888994703713dabf847.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:44:08.224 [debug] Current batch of media processed. Will check again in 1000ms 16:44:09.226 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "✍🏻\u00A0Product Marketing (not to be confused with Product Management) is a relatively new field so in this video I break down what Product Marketers ACTUALLY Do in Tech Companies! \n\nMy Event Management 101 video 👉🏻\u00A0https://youtu.be/b3B24wl3gCQ\n\nTIMESTAMPS\n00:00 What Product Marketing Managers Actually Do\n00:36 Different Product Types PMMs Work On\n01:27 How Product Marketers Spend Their Time\n03:24 Important Qualities for Product Marketing Managers\n05:30 Should YOU be a PMM?\n07:15 My Experiences as a Product Marketing Manager\n\nRESOURCES I MENTION IN THE VIDEO\nEvent Management 101 - https://youtu.be/b3B24wl3gCQ\nHenry Wang’s Interview with Michael Schipper - https://youtu.be/C7dNExgqd5A\nRocketblocks PMM Video - https://youtu.be/KkZP2EMa3k8\nElif Hiz’s PMM video - https://youtu.be/laS_vGPWNIM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#productmarketing #pmm #productmarketingmanager", "duration" => 460, "filename" => "/downloads/Jeff Su/2022-06-21 What Product Marketers ACTUALLY Do in Tech Companies!/What Product Marketers ACTUALLY Do in Tech Companies! [NL-pmvydNe8].mp4", "id" => "NL-pmvydNe8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NL-pmvydNe8", "playlist_index" => 96, "timestamp" => 1655816417, "title" => "What Product Marketers ACTUALLY Do in Tech Companies!", "upload_date" => "20220621"} 16:44:09.227 [debug] QUERY OK source="sources" db=0.3ms idle=1657.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:09.227 [debug] QUERY OK source="sources" db=0.2ms idle=1657.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:09.228 [debug] QUERY OK source="media_items" db=0.5ms idle=1656.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-06-21 13:00:17Z], 1] 16:44:09.230 [debug] QUERY OK source="media_items" db=1.5ms idle=1203.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✍🏻\u00A0Product Marketing (not to be confused with Product Management) is a relatively new field so in this video I break down what Product Marketers ACTUALLY Do in Tech Companies! \n\nMy Event Management 101 video 👉🏻\u00A0https://youtu.be/b3B24wl3gCQ\n\nTIMESTAMPS\n00:00 What Product Marketing Managers Actually Do\n00:36 Different Product Types PMMs Work On\n01:27 How Product Marketers Spend Their Time\n03:24 Important Qualities for Product Marketing Managers\n05:30 Should YOU be a PMM?\n07:15 My Experiences as a Product Marketing Manager\n\nRESOURCES I MENTION IN THE VIDEO\nEvent Management 101 - https://youtu.be/b3B24wl3gCQ\nHenry Wang’s Interview with Michael Schipper - https://youtu.be/C7dNExgqd5A\nRocketblocks PMM Video - https://youtu.be/KkZP2EMa3k8\nElif Hiz’s PMM video - https://youtu.be/laS_vGPWNIM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#productmarketing #pmm #productmarketingmanager", "What Product Marketers ACTUALLY Do in Tech Companies!", "9ad72cff-bbe0-4b75-9d34-60715ddeb2ce", false, "NL-pmvydNe8", 1, [], 460, false, "https://www.youtube.com/watch?v=NL-pmvydNe8", 96, "/downloads/Jeff Su/2022-06-21 What Product Marketers ACTUALLY Do in Tech Companies!/What Product Marketers ACTUALLY Do in Tech Companies! [NL-pmvydNe8].mp4", false, false, 99, ~U[2022-06-21 13:00:17Z], ~U[2026-04-23 14:44:09Z], ~U[2026-04-23 14:44:09Z], "✍🏻\u00A0Product Marketing (not to be confused with Product Management) is a relatively new field so in this video I break down what Product Marketers ACTUALLY Do in Tech Companies! \n\nMy Event Management 101 video 👉🏻\u00A0https://youtu.be/b3B24wl3gCQ\n\nTIMESTAMPS\n00:00 What Product Marketing Managers Actually Do\n00:36 Different Product Types PMMs Work On\n01:27 How Product Marketers Spend Their Time\n03:24 Important Qualities for Product Marketing Managers\n05:30 Should YOU be a PMM?\n07:15 My Experiences as a Product Marketing Manager\n\nRESOURCES I MENTION IN THE VIDEO\nEvent Management 101 - https://youtu.be/b3B24wl3gCQ\nHenry Wang’s Interview with Michael Schipper - https://youtu.be/C7dNExgqd5A\nRocketblocks PMM Video - https://youtu.be/KkZP2EMa3k8\nElif Hiz’s PMM video - https://youtu.be/laS_vGPWNIM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#productmarketing #pmm #productmarketingmanager", "What Product Marketers ACTUALLY Do in Tech Companies!", "NL-pmvydNe8", 1, 460, false, "https://www.youtube.com/watch?v=NL-pmvydNe8", "/downloads/Jeff Su/2022-06-21 What Product Marketers ACTUALLY Do in Tech Companies!/What Product Marketers ACTUALLY Do in Tech Companies! [NL-pmvydNe8].mp4", false, ~U[2022-06-21 13:00:17Z]] 16:44:09.231 [debug] QUERY OK source="sources" db=0.3ms idle=203.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:09.232 [debug] QUERY OK source="media_profiles" db=0.9ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:44:09.233 [debug] QUERY OK source="media_items" db=0.4ms 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 [96] 16:44:09.233 [info] Kicking off download for media item #96 (NL-pmvydNe8) 16:44:09.236 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=4.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [100, 96, ~U[2026-04-23 14:44:09Z], ~U[2026-04-23 14:44:09Z]] 16:44:09.236 [debug] Current batch of media processed. Will check again in 1000ms 16:44:10.236 [debug] Current batch of media processed. Will check again in 1000ms 16:44:10.815 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=mi2vCsP1oKY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/8b/fb/8bfb71f2b325121b2a6a390f0bac07911f80fe2a0cf8818999179392371bca41.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:44:10.816 [debug] Running yt-dlp command for action: download 16:44:10.817 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=787.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:10.817 [debug] QUERY OK source="settings" db=0.2ms idle=558.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:10.818 [debug] QUERY OK source="settings" db=0.2ms idle=558.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:10.818 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=mi2vCsP1oKY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bb/60/bb60e5d798e4a65a41bca2722bc937c7755e7a93107c8ab7a655fe4c9ce91482.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:44:11.238 [debug] Current batch of media processed. Will check again in 1000ms 16:44:12.238 [debug] Current batch of media processed. Will check again in 1000ms 16:44:13.240 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎇\u00A0Get Scribe for free: http://scribe.how/jeffsu\n\nCheck out the Scribe I made in this video 👉🏻\u00A0https://scribehow.com/shared/New_Dropdown_Feature_for_Google_Docs__GtWlKBX1RhGOt5xw6qbAvw\n\nAlthough Google Workspace and Office 365 do a good job keeping us connected and productive at work, they do have their respective limitations\n\nIn this video, I share 7 FREE Productivity Tools for Hybrid & Remote Teams each designed to solve a specific pain point we face in the workplace! \n\nTIMESTAMPS\n00:00 witeboard.com\n00:59 Productivity Tools for Remote Teams\n01:18 Flippity.net\n02:29 There\n03:11 Scribe\n04:36 HandMirror\n04:57 Shepherd\n06:17 Sli.do\n\nTHE TOOLS\nWiteboard - https://witeboard.com/\nFlippity - https://www.flippity.net/ \nThere - https://there.pm/\nScribe - http://scribe.how/jeffsu\nHandMirror - https://handmirror.app/\nShepherd - https://bit.ly/Shepherd-TryForFree\nSli.do - https://www.sli.do/\n\nRESOURCES I MENTION IN THE VIDEO\nMac Productivity video - https://youtu.be/5B2kPVvyjbU\nAdd Timezones to Google Calendar - https://youtu.be/4GqqptRI4Do\nAurelius Tjin’s video on useful websites - https://youtu.be/N8g4eO2gp0s\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#thinkoutsidethebox #productivitytools #hybridteams", "duration" => 463, "filename" => "/downloads/Jeff Su/2022-06-07 7 FREE Productivity Tools You Didn't Know Existed!/7 FREE Productivity Tools You Didn't Know Existed! [UJM83-zb3c4].mp4", "id" => "UJM83-zb3c4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UJM83-zb3c4", "playlist_index" => 97, "timestamp" => 1654606812, "title" => "7 FREE Productivity Tools You Didn't Know Existed!", "upload_date" => "20220607"} 16:44:13.242 [debug] QUERY OK source="sources" db=1.4ms idle=981.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:13.243 [debug] QUERY OK source="sources" db=0.4ms idle=983.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:13.243 [debug] QUERY OK source="media_items" db=0.5ms idle=984.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-06-07 13:00:12Z], 1] 16:44:13.246 [debug] QUERY OK source="media_items" db=1.7ms idle=985.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎇\u00A0Get Scribe for free: http://scribe.how/jeffsu\n\nCheck out the Scribe I made in this video 👉🏻\u00A0https://scribehow.com/shared/New_Dropdown_Feature_for_Google_Docs__GtWlKBX1RhGOt5xw6qbAvw\n\nAlthough Google Workspace and Office 365 do a good job keeping us connected and productive at work, they do have their respective limitations\n\nIn this video, I share 7 FREE Productivity Tools for Hybrid & Remote Teams each designed to solve a specific pain point we face in the workplace! \n\nTIMESTAMPS\n00:00 witeboard.com\n00:59 Productivity Tools for Remote Teams\n01:18 Flippity.net\n02:29 There\n03:11 Scribe\n04:36 HandMirror\n04:57 Shepherd\n06:17 Sli.do\n\nTHE TOOLS\nWiteboard - https://witeboard.com/\nFlippity - https://www.flippity.net/ \nThere - https://there.pm/\nScribe - http://scribe.how/jeffsu\nHandMirror - https://handmirror.app/\nShepherd - https://bit.ly/Shepherd-TryForFree\nSli.do - https://www.sli.do/\n\nRESOURCES I MENTION IN THE VIDEO\nMac Productivity video - https://youtu.be/5B2kPVvyjbU\nAdd Timezones to Google Calendar - https://youtu.be/4GqqptRI4Do\nAurelius Tjin’s video on useful websites - https://youtu.be/N8g4eO2gp0s\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#thinkoutsidethebox #productivitytools #hybridteams", "7 FREE Productivity Tools You Didn't Know Existed!", "743fab08-8927-4038-80e5-502ba2c5a5b4", false, "UJM83-zb3c4", 1, [], 463, false, "https://www.youtube.com/watch?v=UJM83-zb3c4", 97, "/downloads/Jeff Su/2022-06-07 7 FREE Productivity Tools You Didn't Know Existed!/7 FREE Productivity Tools You Didn't Know Existed! [UJM83-zb3c4].mp4", false, false, 99, ~U[2022-06-07 13:00:12Z], ~U[2026-04-23 14:44:13Z], ~U[2026-04-23 14:44:13Z], "🎇\u00A0Get Scribe for free: http://scribe.how/jeffsu\n\nCheck out the Scribe I made in this video 👉🏻\u00A0https://scribehow.com/shared/New_Dropdown_Feature_for_Google_Docs__GtWlKBX1RhGOt5xw6qbAvw\n\nAlthough Google Workspace and Office 365 do a good job keeping us connected and productive at work, they do have their respective limitations\n\nIn this video, I share 7 FREE Productivity Tools for Hybrid & Remote Teams each designed to solve a specific pain point we face in the workplace! \n\nTIMESTAMPS\n00:00 witeboard.com\n00:59 Productivity Tools for Remote Teams\n01:18 Flippity.net\n02:29 There\n03:11 Scribe\n04:36 HandMirror\n04:57 Shepherd\n06:17 Sli.do\n\nTHE TOOLS\nWiteboard - https://witeboard.com/\nFlippity - https://www.flippity.net/ \nThere - https://there.pm/\nScribe - http://scribe.how/jeffsu\nHandMirror - https://handmirror.app/\nShepherd - https://bit.ly/Shepherd-TryForFree\nSli.do - https://www.sli.do/\n\nRESOURCES I MENTION IN THE VIDEO\nMac Productivity video - https://youtu.be/5B2kPVvyjbU\nAdd Timezones to Google Calendar - https://youtu.be/4GqqptRI4Do\nAurelius Tjin’s video on useful websites - https://youtu.be/N8g4eO2gp0s\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#thinkoutsidethebox #productivitytools #hybridteams", "7 FREE Productivity Tools You Didn't Know Existed!", "UJM83-zb3c4", 1, 463, false, "https://www.youtube.com/watch?v=UJM83-zb3c4", "/downloads/Jeff Su/2022-06-07 7 FREE Productivity Tools You Didn't Know Existed!/7 FREE Productivity Tools You Didn't Know Existed! [UJM83-zb3c4].mp4", false, ~U[2022-06-07 13:00:12Z]] 16:44:13.247 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=211.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:13.247 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:44:13.248 [debug] QUERY OK source="media_items" db=0.3ms idle=5.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [97] 16:44:13.248 [info] Kicking off download for media item #97 (UJM83-zb3c4) 16:44:13.252 [debug] QUERY OK source="tasks" db=0.2ms idle=4.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [101, 97, ~U[2026-04-23 14:44:13Z], ~U[2026-04-23 14:44:13Z]] 16:44:13.252 [debug] Current batch of media processed. Will check again in 1000ms 16:44:13.626 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BVT5EZkb24Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/98/41/98416770279383ef1d24131dfe59f63e4303475ffcb5e888994703713dabf847.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:44:13.626 [debug] Running yt-dlp command for action: download 16:44:13.627 [debug] QUERY OK source="settings" db=0.4ms idle=378.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:13.628 [debug] QUERY OK source="settings" db=0.4ms idle=378.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:13.628 [debug] QUERY OK source="settings" db=0.4ms 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 [] 16:44:13.629 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BVT5EZkb24Q --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/96/14/96140befa47bcee0fee9c65dff24bb44cfbb8e27a1371e9766d8fca067f04711.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:44:14.252 [debug] Current batch of media processed. Will check again in 1000ms 16:44:15.254 [debug] Current batch of media processed. Will check again in 1000ms 16:44:16.254 [debug] Current batch of media processed. Will check again in 1000ms 16:44:17.256 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nMessage recruiters on LinkedIn the right way 👉🏻\u00A0https://youtu.be/jnzh5QTKbsw\n\n🌟\u00A0All-Star LinkedIn profiles are 40x more likely to be contacted by recruiters and 18x more likely to show up in hiring managers’ search results. To get to All-Star, there are 9 things you need to get right and in this video we go over 5 most people think take a lot of effort but are surprisingly simple to get right\n\nWithout further ado, here are my Top 5 LinkedIn Profile Tips for Job Seekers - \n\nTIMESTAMPS\n00:00 Benefits of a LinkedIn All-Star Profile\n00:35 Hide Your Updates on LinkedIn\n01:06 High Quality LinkedIn Profile Picture\n03:20 High Quality LinkedIn Banner, Cover Photo\n04:02 Add a Meaningful LinkedIn Headline\n05:13 Include Keywords in LinkedIn About Section\n06:42 Add 5 Skills Correctly\n07:20 Use a Custom LinkedIn URL\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Effective LinkedIn About Section - https://youtu.be/5hNsdH6Y2Mg\nWrite an Amazing Resume - https://youtu.be/Tt08KmFfIYQ\nRemove Background - https://www.remove.bg/upload\nCanva - partner.canva.com/jeffsu\nFree Wordcloud Generator - https://monkeylearn.com/word-cloud\nBenefits of All-Star Profiles - https://www.cleverism.com/all-star-linkedin-users-are-40-times-more-likely-to-get-contacted-heres-how-to-score-that-rating/\nAustin Belcak’s LinkedIn Profile article - https://cultivatedculture.com/linkedin-profile-tips/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#linkedin #jobsearch", "duration" => 490, "filename" => "/downloads/Jeff Su/2022-05-31 5 MUST-KNOW LinkedIn Profile Tips for Job Seekers!/5 MUST-KNOW LinkedIn Profile Tips for Job Seekers! [B4OhuzwLc9o].mp4", "id" => "B4OhuzwLc9o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=B4OhuzwLc9o", "playlist_index" => 98, "timestamp" => 1654002006, "title" => "5 MUST-KNOW LinkedIn Profile Tips for Job Seekers!", "upload_date" => "20220531"} 16:44:17.257 [debug] QUERY OK source="sources" db=0.6ms idle=1997.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:17.258 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1998.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:17.261 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=1215.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-05-31 13:00:06Z], 1] 16:44:17.265 [debug] QUERY OK source="media_items" db=3.4ms idle=1002.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nMessage recruiters on LinkedIn the right way 👉🏻\u00A0https://youtu.be/jnzh5QTKbsw\n\n🌟\u00A0All-Star LinkedIn profiles are 40x more likely to be contacted by recruiters and 18x more likely to show up in hiring managers’ search results. To get to All-Star, there are 9 things you need to get right and in this video we go over 5 most people think take a lot of effort but are surprisingly simple to get right\n\nWithout further ado, here are my Top 5 LinkedIn Profile Tips for Job Seekers - \n\nTIMESTAMPS\n00:00 Benefits of a LinkedIn All-Star Profile\n00:35 Hide Your Updates on LinkedIn\n01:06 High Quality LinkedIn Profile Picture\n03:20 High Quality LinkedIn Banner, Cover Photo\n04:02 Add a Meaningful LinkedIn Headline\n05:13 Include Keywords in LinkedIn About Section\n06:42 Add 5 Skills Correctly\n07:20 Use a Custom LinkedIn URL\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Effective LinkedIn About Section - https://youtu.be/5hNsdH6Y2Mg\nWrite an Amazing Resume - https://youtu.be/Tt08KmFfIYQ\nRemove Background - https://www.remove.bg/upload\nCanva - partner.canva.com/jeffsu\nFree Wordcloud Generator - https://monkeylearn.com/word-cloud\nBenefits of All-Star Profiles - https://www.cleverism.com/all-star-linkedin-users-are-40-times-more-likely-to-get-contacted-heres-how-to-score-that-rating/\nAustin Belcak’s LinkedIn Profile article - https://cultivatedculture.com/linkedin-profile-tips/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#linkedin #jobsearch", "5 MUST-KNOW LinkedIn Profile Tips for Job Seekers!", "12555432-7d5b-4440-822d-84ca23c9feae", false, "B4OhuzwLc9o", 1, [], 490, false, "https://www.youtube.com/watch?v=B4OhuzwLc9o", 98, "/downloads/Jeff Su/2022-05-31 5 MUST-KNOW LinkedIn Profile Tips for Job Seekers!/5 MUST-KNOW LinkedIn Profile Tips for Job Seekers! [B4OhuzwLc9o].mp4", false, false, 99, ~U[2022-05-31 13:00:06Z], ~U[2026-04-23 14:44:17Z], ~U[2026-04-23 14:44:17Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nMessage recruiters on LinkedIn the right way 👉🏻\u00A0https://youtu.be/jnzh5QTKbsw\n\n🌟\u00A0All-Star LinkedIn profiles are 40x more likely to be contacted by recruiters and 18x more likely to show up in hiring managers’ search results. To get to All-Star, there are 9 things you need to get right and in this video we go over 5 most people think take a lot of effort but are surprisingly simple to get right\n\nWithout further ado, here are my Top 5 LinkedIn Profile Tips for Job Seekers - \n\nTIMESTAMPS\n00:00 Benefits of a LinkedIn All-Star Profile\n00:35 Hide Your Updates on LinkedIn\n01:06 High Quality LinkedIn Profile Picture\n03:20 High Quality LinkedIn Banner, Cover Photo\n04:02 Add a Meaningful LinkedIn Headline\n05:13 Include Keywords in LinkedIn About Section\n06:42 Add 5 Skills Correctly\n07:20 Use a Custom LinkedIn URL\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Effective LinkedIn About Section - https://youtu.be/5hNsdH6Y2Mg\nWrite an Amazing Resume - https://youtu.be/Tt08KmFfIYQ\nRemove Background - https://www.remove.bg/upload\nCanva - partner.canva.com/jeffsu\nFree Wordcloud Generator - https://monkeylearn.com/word-cloud\nBenefits of All-Star Profiles - https://www.cleverism.com/all-star-linkedin-users-are-40-times-more-likely-to-get-contacted-heres-how-to-score-that-rating/\nAustin Belcak’s LinkedIn Profile article - https://cultivatedculture.com/linkedin-profile-tips/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#linkedin #jobsearch", "5 MUST-KNOW LinkedIn Profile Tips for Job Seekers!", "B4OhuzwLc9o", 1, 490, false, "https://www.youtube.com/watch?v=B4OhuzwLc9o", "/downloads/Jeff Su/2022-05-31 5 MUST-KNOW LinkedIn Profile Tips for Job Seekers!/5 MUST-KNOW LinkedIn Profile Tips for Job Seekers! [B4OhuzwLc9o].mp4", false, ~U[2022-05-31 13:00:06Z]] 16:44:17.266 [debug] QUERY OK source="sources" db=0.4ms idle=220.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:17.267 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:44:17.267 [debug] QUERY OK source="media_items" db=0.3ms idle=9.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [98] 16:44:17.268 [info] Kicking off download for media item #98 (B4OhuzwLc9o) 16:44:17.271 [debug] QUERY OK source="tasks" db=0.2ms idle=4.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [102, 98, ~U[2026-04-23 14:44:17Z], ~U[2026-04-23 14:44:17Z]] 16:44:17.271 [debug] Current batch of media processed. Will check again in 1000ms 16:44:18.262 [info] {"source":"oban","duration":1035,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:44:18.272 [debug] Current batch of media processed. Will check again in 1000ms 16:44:19.273 [debug] Current batch of media processed. Will check again in 1000ms 16:44:20.275 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We’ve all sat through meetings that were a waste of time, what can we do to help our colleagues avoid a similar fate? \n\nDownload the meeting recap email template 👉🏻\u00A0https://www.jeffsu.org/10-tips-for-running-crazy-effective-meetings/\n\nHow to have productive 1:1’s with your manager 👉🏻\u00A0https://youtu.be/LWz57CpcSnE\n\nAlthough very (very) few of us have proper meeting management training, we can all apply tips to run highly effective meetings that our colleagues actually look forward to joining!\n\nThe 40-20-40 rule first mentioned in the book “How to Fix Meetings” was a game-changer for me because only then did I realize most of our time should be spent in preparation and follow through, instead of the meeting itself. So here are 10 tips that will help you run crazy effective meetings - \n\nTIMESTAMPS\n00:00 How to Run Effective Meetings\n00:20 The 40-20-40 Rule\n00:57 When NOT to Have a Meeting\n01:28 Don’t Over-Invite\n01:53 Objective-Context Combo\n03:05 Pre-Align Before the Meeting\n04:19 Facilitate Inclusively\n05:21 Call People By Their Names\n05:52 Send a Concise Meeting Summary\n06:19 After Action Communication\n06:48 Bribe Your Colleagues!\n\nRESOURCES I MENTION IN THE VIDEO\nMIT Article - https://sloanreview.mit.edu/article/the-surprising-science-behind-successful-remote-meetings/\nHow to Fix Meetings - https://amzn.to/38aUuHY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "duration" => 443, "filename" => "/downloads/Jeff Su/2022-05-24 Run Meetings that Don't Suck (10 Tips)!/Run Meetings that Don't Suck (10 Tips)! [LCiQFwAwJvI].mp4", "id" => "LCiQFwAwJvI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LCiQFwAwJvI", "playlist_index" => 99, "timestamp" => 1653397209, "title" => "Run Meetings that Don't Suck (10 Tips)!", "upload_date" => "20220524"} 16:44:20.276 [debug] QUERY OK source="sources" db=1.1ms idle=1014.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:20.277 [debug] QUERY OK source="sources" db=0.3ms idle=1016.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:20.278 [debug] QUERY OK source="media_items" db=0.5ms idle=1016.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-05-24 13:00:09Z], 1] 16:44:20.281 [debug] QUERY OK source="media_items" db=1.9ms idle=227.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We’ve all sat through meetings that were a waste of time, what can we do to help our colleagues avoid a similar fate? \n\nDownload the meeting recap email template 👉🏻\u00A0https://www.jeffsu.org/10-tips-for-running-crazy-effective-meetings/\n\nHow to have productive 1:1’s with your manager 👉🏻\u00A0https://youtu.be/LWz57CpcSnE\n\nAlthough very (very) few of us have proper meeting management training, we can all apply tips to run highly effective meetings that our colleagues actually look forward to joining!\n\nThe 40-20-40 rule first mentioned in the book “How to Fix Meetings” was a game-changer for me because only then did I realize most of our time should be spent in preparation and follow through, instead of the meeting itself. So here are 10 tips that will help you run crazy effective meetings - \n\nTIMESTAMPS\n00:00 How to Run Effective Meetings\n00:20 The 40-20-40 Rule\n00:57 When NOT to Have a Meeting\n01:28 Don’t Over-Invite\n01:53 Objective-Context Combo\n03:05 Pre-Align Before the Meeting\n04:19 Facilitate Inclusively\n05:21 Call People By Their Names\n05:52 Send a Concise Meeting Summary\n06:19 After Action Communication\n06:48 Bribe Your Colleagues!\n\nRESOURCES I MENTION IN THE VIDEO\nMIT Article - https://sloanreview.mit.edu/article/the-surprising-science-behind-successful-remote-meetings/\nHow to Fix Meetings - https://amzn.to/38aUuHY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "Run Meetings that Don't Suck (10 Tips)!", "994091d6-883b-4daf-9e3a-74fc416a015b", false, "LCiQFwAwJvI", 1, [], 443, false, "https://www.youtube.com/watch?v=LCiQFwAwJvI", 99, "/downloads/Jeff Su/2022-05-24 Run Meetings that Don't Suck (10 Tips)!/Run Meetings that Don't Suck (10 Tips)! [LCiQFwAwJvI].mp4", false, false, 99, ~U[2022-05-24 13:00:09Z], ~U[2026-04-23 14:44:20Z], ~U[2026-04-23 14:44:20Z], "We’ve all sat through meetings that were a waste of time, what can we do to help our colleagues avoid a similar fate? \n\nDownload the meeting recap email template 👉🏻\u00A0https://www.jeffsu.org/10-tips-for-running-crazy-effective-meetings/\n\nHow to have productive 1:1’s with your manager 👉🏻\u00A0https://youtu.be/LWz57CpcSnE\n\nAlthough very (very) few of us have proper meeting management training, we can all apply tips to run highly effective meetings that our colleagues actually look forward to joining!\n\nThe 40-20-40 rule first mentioned in the book “How to Fix Meetings” was a game-changer for me because only then did I realize most of our time should be spent in preparation and follow through, instead of the meeting itself. So here are 10 tips that will help you run crazy effective meetings - \n\nTIMESTAMPS\n00:00 How to Run Effective Meetings\n00:20 The 40-20-40 Rule\n00:57 When NOT to Have a Meeting\n01:28 Don’t Over-Invite\n01:53 Objective-Context Combo\n03:05 Pre-Align Before the Meeting\n04:19 Facilitate Inclusively\n05:21 Call People By Their Names\n05:52 Send a Concise Meeting Summary\n06:19 After Action Communication\n06:48 Bribe Your Colleagues!\n\nRESOURCES I MENTION IN THE VIDEO\nMIT Article - https://sloanreview.mit.edu/article/the-surprising-science-behind-successful-remote-meetings/\nHow to Fix Meetings - https://amzn.to/38aUuHY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "Run Meetings that Don't Suck (10 Tips)!", "LCiQFwAwJvI", 1, 443, false, "https://www.youtube.com/watch?v=LCiQFwAwJvI", "/downloads/Jeff Su/2022-05-24 Run Meetings that Don't Suck (10 Tips)!/Run Meetings that Don't Suck (10 Tips)! [LCiQFwAwJvI].mp4", false, ~U[2022-05-24 13:00:09Z]] 16:44:20.282 [debug] QUERY OK source="sources" db=0.3ms idle=20.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:20.282 [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] 16:44:20.283 [debug] QUERY OK source="media_items" db=0.3ms 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 [99] 16:44:20.283 [info] Kicking off download for media item #99 (LCiQFwAwJvI) 16:44:20.287 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=4.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [103, 99, ~U[2026-04-23 14:44:20Z], ~U[2026-04-23 14:44:20Z]] 16:44:20.287 [debug] Current batch of media processed. Will check again in 1000ms 16:44:21.287 [debug] Current batch of media processed. Will check again in 1000ms 16:44:22.289 [debug] Current batch of media processed. Will check again in 1000ms 16:44:23.289 [debug] Current batch of media processed. Will check again in 1000ms 16:44:24.290 [debug] Current batch of media processed. Will check again in 1000ms 16:44:25.292 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Check out my Data Storytelling tips video next 👉🏻\u00A0https://youtu.be/jizZKNnx9wA\n\nWe all know that 1 colleague at work who speaks confidently during every presentation, but what exactly are they doing? Let’s find out! \n\nWe have all heard common (and perhaps overused) advice such as “know your audience” and “practice effective communication skills” but what exactly do those entail? \n\nTo be able to present confidently in the workplace, you need the audience to be able to relate to what you’re saying. If you master this skill, even new hires can draw senior leaders in to their presentations\n\nTIMESTAMPS\n00:00 How to Present with Confidence\n00:28 Humor through Relatability\n01:30 Keep Your Slides Clean\n02:48 Assume Lowest Common Language\n04:05 Presentation Etiquette Tips & Tricks\n05:05 Rehearse Out Loud\n\nRESOURCES I MENTION IN THE VIDEO\nWhat the best presenters do differently - https://hbr.org/2022/04/what-the-best-presenters-do-differently\nData Storytelling tips - https://youtu.be/jizZKNnx9wA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 My Everyday Carry - https://geni.us/mybag\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentwithconfidence #productivityatwork #careertips", "duration" => 370, "filename" => "/downloads/Jeff Su/2022-05-17 Top 5 Tips to CRUSH Your Next Presentation!/Top 5 Tips to CRUSH Your Next Presentation! [7iyxvfrraoc].mp4", "id" => "7iyxvfrraoc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7iyxvfrraoc", "playlist_index" => 100, "timestamp" => 1652792403, "title" => "Top 5 Tips to CRUSH Your Next Presentation!", "upload_date" => "20220517"} 16:44:25.293 [debug] QUERY OK source="sources" db=0.3ms idle=1031.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:25.294 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1032.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:25.295 [debug] QUERY OK source="media_items" db=0.5ms idle=1033.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-05-17 13:00:03Z], 1] 16:44:25.298 [debug] QUERY OK source="media_items" db=2.2ms idle=1034.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out my Data Storytelling tips video next 👉🏻\u00A0https://youtu.be/jizZKNnx9wA\n\nWe all know that 1 colleague at work who speaks confidently during every presentation, but what exactly are they doing? Let’s find out! \n\nWe have all heard common (and perhaps overused) advice such as “know your audience” and “practice effective communication skills” but what exactly do those entail? \n\nTo be able to present confidently in the workplace, you need the audience to be able to relate to what you’re saying. If you master this skill, even new hires can draw senior leaders in to their presentations\n\nTIMESTAMPS\n00:00 How to Present with Confidence\n00:28 Humor through Relatability\n01:30 Keep Your Slides Clean\n02:48 Assume Lowest Common Language\n04:05 Presentation Etiquette Tips & Tricks\n05:05 Rehearse Out Loud\n\nRESOURCES I MENTION IN THE VIDEO\nWhat the best presenters do differently - https://hbr.org/2022/04/what-the-best-presenters-do-differently\nData Storytelling tips - https://youtu.be/jizZKNnx9wA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 My Everyday Carry - https://geni.us/mybag\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentwithconfidence #productivityatwork #careertips", "Top 5 Tips to CRUSH Your Next Presentation!", "d7dc8583-b88f-4d8c-b219-e84c2561e573", false, "7iyxvfrraoc", 1, [], 370, false, "https://www.youtube.com/watch?v=7iyxvfrraoc", 100, "/downloads/Jeff Su/2022-05-17 Top 5 Tips to CRUSH Your Next Presentation!/Top 5 Tips to CRUSH Your Next Presentation! [7iyxvfrraoc].mp4", false, false, 99, ~U[2022-05-17 13:00:03Z], ~U[2026-04-23 14:44:25Z], ~U[2026-04-23 14:44:25Z], "Check out my Data Storytelling tips video next 👉🏻\u00A0https://youtu.be/jizZKNnx9wA\n\nWe all know that 1 colleague at work who speaks confidently during every presentation, but what exactly are they doing? Let’s find out! \n\nWe have all heard common (and perhaps overused) advice such as “know your audience” and “practice effective communication skills” but what exactly do those entail? \n\nTo be able to present confidently in the workplace, you need the audience to be able to relate to what you’re saying. If you master this skill, even new hires can draw senior leaders in to their presentations\n\nTIMESTAMPS\n00:00 How to Present with Confidence\n00:28 Humor through Relatability\n01:30 Keep Your Slides Clean\n02:48 Assume Lowest Common Language\n04:05 Presentation Etiquette Tips & Tricks\n05:05 Rehearse Out Loud\n\nRESOURCES I MENTION IN THE VIDEO\nWhat the best presenters do differently - https://hbr.org/2022/04/what-the-best-presenters-do-differently\nData Storytelling tips - https://youtu.be/jizZKNnx9wA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 My Everyday Carry - https://geni.us/mybag\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentwithconfidence #productivityatwork #careertips", "Top 5 Tips to CRUSH Your Next Presentation!", "7iyxvfrraoc", 1, 370, false, "https://www.youtube.com/watch?v=7iyxvfrraoc", "/downloads/Jeff Su/2022-05-17 Top 5 Tips to CRUSH Your Next Presentation!/Top 5 Tips to CRUSH Your Next Presentation! [7iyxvfrraoc].mp4", false, ~U[2022-05-17 13:00:03Z]] 16:44:25.299 [debug] QUERY OK source="sources" db=0.3ms idle=237.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:25.299 [debug] QUERY OK source="media_profiles" db=0.2ms queue=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] 16:44:25.300 [debug] QUERY OK source="media_items" db=0.4ms idle=5.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [100] 16:44:25.300 [info] Kicking off download for media item #100 (7iyxvfrraoc) 16:44:25.304 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=5.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [104, 100, ~U[2026-04-23 14:44:25Z], ~U[2026-04-23 14:44:25Z]] 16:44:25.305 [debug] Current batch of media processed. Will check again in 1000ms 16:44:26.305 [debug] Current batch of media processed. Will check again in 1000ms 16:44:27.307 [debug] Current batch of media processed. Will check again in 1000ms 16:44:28.307 [debug] Current batch of media processed. Will check again in 1000ms 16:44:29.309 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n🎩\u00A0Alfred will be your new favorite app for the Mac\n\nCheck out my top productivity tips for the Mac next 👉🏻\u00A0https://youtu.be/5B2kPVvyjbU\n\nThe free features of Alfred is more than enough to supercharge your workflow and change the way you use your Mac. The Alfred app is one of the best mac apps for productivity and is a must have application for any Mac user. In this video I go through a step-by-step Alfred tutorial for new and existing Mac users 🍎\n\nTIMESTAMPS\n00:00 Step-by-step tutorial for Alfred\n00:45 Settings Changes for Alfred\n01:16 4 Main Ways to Use Alfred\n01:47 Default Results Preferences\n02:29 File Search Preferences\n04:41 Keyword Search Settings\n05:06 Add Custom Searches to Alfred\n07:33 Change Appearance for Alfred\n08:14 Paid Alfred Features\n08:21 Download Custom Themes for Alfred\n08:33 Clipboard History\n08:48 Snippets Feature\n09:09 Alfred Workflows Walkthrough\n09:34 Alfred vs. Raycast (my thoughts)\n\nRESOURCES I MENTION IN THE VIDEO\nMac Apps for Productivity - https://youtu.be/5B2kPVvyjbU\nSubscribe to my newsletter - https://www.jeffsu.org/productivity-ping/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🖥 Cleanshot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#alfredapp #mac #productivity", "duration" => 607, "filename" => "/downloads/Jeff Su/2022-05-10 My Entire Alfred Workflow: Supercharge Your Mac (for free)!/My Entire Alfred Workflow: Supercharge Your Mac (for free)! [FXV-zwkRMxo].mp4", "id" => "FXV-zwkRMxo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FXV-zwkRMxo", "playlist_index" => 101, "timestamp" => 1652187608, "title" => "My Entire Alfred Workflow: Supercharge Your Mac (for free)!", "upload_date" => "20220510"} 16:44:29.310 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=240.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:29.311 [debug] QUERY OK source="sources" db=0.6ms idle=49.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:29.312 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=50.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-05-10 13:00:08Z], 1] 16:44:29.315 [debug] QUERY OK source="media_items" db=2.1ms idle=52.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n🎩\u00A0Alfred will be your new favorite app for the Mac\n\nCheck out my top productivity tips for the Mac next 👉🏻\u00A0https://youtu.be/5B2kPVvyjbU\n\nThe free features of Alfred is more than enough to supercharge your workflow and change the way you use your Mac. The Alfred app is one of the best mac apps for productivity and is a must have application for any Mac user. In this video I go through a step-by-step Alfred tutorial for new and existing Mac users 🍎\n\nTIMESTAMPS\n00:00 Step-by-step tutorial for Alfred\n00:45 Settings Changes for Alfred\n01:16 4 Main Ways to Use Alfred\n01:47 Default Results Preferences\n02:29 File Search Preferences\n04:41 Keyword Search Settings\n05:06 Add Custom Searches to Alfred\n07:33 Change Appearance for Alfred\n08:14 Paid Alfred Features\n08:21 Download Custom Themes for Alfred\n08:33 Clipboard History\n08:48 Snippets Feature\n09:09 Alfred Workflows Walkthrough\n09:34 Alfred vs. Raycast (my thoughts)\n\nRESOURCES I MENTION IN THE VIDEO\nMac Apps for Productivity - https://youtu.be/5B2kPVvyjbU\nSubscribe to my newsletter - https://www.jeffsu.org/productivity-ping/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🖥 Cleanshot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#alfredapp #mac #productivity", "My Entire Alfred Workflow: Supercharge Your Mac (for free)!", "8275ddd8-dba1-4ca2-ab2c-1efa2eb4899c", false, "FXV-zwkRMxo", 1, [], 607, false, "https://www.youtube.com/watch?v=FXV-zwkRMxo", 101, "/downloads/Jeff Su/2022-05-10 My Entire Alfred Workflow: Supercharge Your Mac (for free)!/My Entire Alfred Workflow: Supercharge Your Mac (for free)! [FXV-zwkRMxo].mp4", false, false, 99, ~U[2022-05-10 13:00:08Z], ~U[2026-04-23 14:44:29Z], ~U[2026-04-23 14:44:29Z], "Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n🎩\u00A0Alfred will be your new favorite app for the Mac\n\nCheck out my top productivity tips for the Mac next 👉🏻\u00A0https://youtu.be/5B2kPVvyjbU\n\nThe free features of Alfred is more than enough to supercharge your workflow and change the way you use your Mac. The Alfred app is one of the best mac apps for productivity and is a must have application for any Mac user. In this video I go through a step-by-step Alfred tutorial for new and existing Mac users 🍎\n\nTIMESTAMPS\n00:00 Step-by-step tutorial for Alfred\n00:45 Settings Changes for Alfred\n01:16 4 Main Ways to Use Alfred\n01:47 Default Results Preferences\n02:29 File Search Preferences\n04:41 Keyword Search Settings\n05:06 Add Custom Searches to Alfred\n07:33 Change Appearance for Alfred\n08:14 Paid Alfred Features\n08:21 Download Custom Themes for Alfred\n08:33 Clipboard History\n08:48 Snippets Feature\n09:09 Alfred Workflows Walkthrough\n09:34 Alfred vs. Raycast (my thoughts)\n\nRESOURCES I MENTION IN THE VIDEO\nMac Apps for Productivity - https://youtu.be/5B2kPVvyjbU\nSubscribe to my newsletter - https://www.jeffsu.org/productivity-ping/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🖥 Cleanshot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#alfredapp #mac #productivity", "My Entire Alfred Workflow: Supercharge Your Mac (for free)!", "FXV-zwkRMxo", 1, 607, false, "https://www.youtube.com/watch?v=FXV-zwkRMxo", "/downloads/Jeff Su/2022-05-10 My Entire Alfred Workflow: Supercharge Your Mac (for free)!/My Entire Alfred Workflow: Supercharge Your Mac (for free)! [FXV-zwkRMxo].mp4", false, ~U[2022-05-10 13:00:08Z]] 16:44:29.316 [debug] QUERY OK source="sources" db=0.2ms idle=55.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:29.316 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:44:29.317 [debug] QUERY OK source="media_items" db=0.3ms idle=5.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [101] 16:44:29.317 [info] Kicking off download for media item #101 (FXV-zwkRMxo) 16:44:29.320 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=4.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [105, 101, ~U[2026-04-23 14:44:29Z], ~U[2026-04-23 14:44:29Z]] 16:44:29.320 [debug] Current batch of media processed. Will check again in 1000ms 16:44:30.322 [debug] Current batch of media processed. Will check again in 1000ms 16:44:31.322 [debug] Current batch of media processed. Will check again in 1000ms 16:44:32.323 [debug] Current batch of media processed. Will check again in 1000ms 16:44:33.325 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n🌄\u00A0Ready for 9 Mac Apps to change the way you manage media and files on your Mac?\n\nCheck out my Best Mac Apps for Productivity next 👉🏻\u00A0https://youtu.be/-xXc7qeiC8I\n\nComing from a Windows PC, I honestly can’t believe the quality of some of these free media and file management apps for the Mac. Yes these apps have made me more productive on my Macbook, yes these apps have helped me get things done I wouldn’t have thought possible previously, but I think most importantly it just feels SO AWESOME to be using some of these apps (you know what I mean?) \n\nTIMESTAMPS\n00:00 Best Mac Apps for File and Media Management\n00:16 The Unarchiver and Keka for .zip files\n00:44 IINA Media Player to play videos\n02:07 Color System Picker to save colors \n03:53 Bartender to hide menu bar icons\n05:13 Skim PDF Reader\n06:53 fliqlo for flip clock screensaver\n07:11 Downie to download videos for free\n08:04 Google Drive for Desktop for file management\n08:32 Automator to automate tasks on Mac\n\nRESOURCES I MENTION IN THE VIDEO\nThe Unarchiver - https://theunarchiver.com/\nKeka - https://www.keka.io/en/\nSystem Color Picker - https://sindresorhus.com/system-color-picker\nMaccy - https://maccy.app/\nCleanshot X - https://geni.us/cleanshotx\nBartender - https://www.macbartender.com/\nDozer - https://github.com/Mortennn/Dozer\nHiddenBar - https://github.com/dwarvesf/hidden\nSkim PDF Reader - https://skim-app.sourceforge.io/\nFliqlo - https://fliqlo.com/screensaver/\nDownie - https://geni.us/downie\nNeatDownloadManager - https://www.neatdownloadmanager.com/index.php/en/\nGoogle Drive for Desktop - https://www.google.com/drive/download/\nAutomator - https://support.apple.com/guide/automator/welcome/mac\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#mac #apps #filemanagement", "duration" => 648, "filename" => "/downloads/Jeff Su/2022-05-03 9 UNREAL File & Media Management Apps for Mac!/9 UNREAL File & Media Management Apps for Mac! [gcJDDSv7Gq8].mp4", "id" => "gcJDDSv7Gq8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gcJDDSv7Gq8", "playlist_index" => 102, "timestamp" => 1651582831, "title" => "9 UNREAL File & Media Management Apps for Mac!", "upload_date" => "20220503"} 16:44:33.328 [debug] QUERY OK source="sources" db=2.6ms idle=244.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:33.331 [debug] QUERY OK source="sources" db=2.4ms idle=68.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:33.335 [debug] QUERY OK source="media_items" db=3.0ms queue=0.1ms idle=70.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-05-03 13:00:31Z], 1] 16:44:33.340 [debug] QUERY OK source="media_items" db=4.1ms idle=74.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n🌄\u00A0Ready for 9 Mac Apps to change the way you manage media and files on your Mac?\n\nCheck out my Best Mac Apps for Productivity next 👉🏻\u00A0https://youtu.be/-xXc7qeiC8I\n\nComing from a Windows PC, I honestly can’t believe the quality of some of these free media and file management apps for the Mac. Yes these apps have made me more productive on my Macbook, yes these apps have helped me get things done I wouldn’t have thought possible previously, but I think most importantly it just feels SO AWESOME to be using some of these apps (you know what I mean?) \n\nTIMESTAMPS\n00:00 Best Mac Apps for File and Media Management\n00:16 The Unarchiver and Keka for .zip files\n00:44 IINA Media Player to play videos\n02:07 Color System Picker to save colors \n03:53 Bartender to hide menu bar icons\n05:13 Skim PDF Reader\n06:53 fliqlo for flip clock screensaver\n07:11 Downie to download videos for free\n08:04 Google Drive for Desktop for file management\n08:32 Automator to automate tasks on Mac\n\nRESOURCES I MENTION IN THE VIDEO\nThe Unarchiver - https://theunarchiver.com/\nKeka - https://www.keka.io/en/\nSystem Color Picker - https://sindresorhus.com/system-color-picker\nMaccy - https://maccy.app/\nCleanshot X - https://geni.us/cleanshotx\nBartender - https://www.macbartender.com/\nDozer - https://github.com/Mortennn/Dozer\nHiddenBar - https://github.com/dwarvesf/hidden\nSkim PDF Reader - https://skim-app.sourceforge.io/\nFliqlo - https://fliqlo.com/screensaver/\nDownie - https://geni.us/downie\nNeatDownloadManager - https://www.neatdownloadmanager.com/index.php/en/\nGoogle Drive for Desktop - https://www.google.com/drive/download/\nAutomator - https://support.apple.com/guide/automator/welcome/mac\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#mac #apps #filemanagement", "9 UNREAL File & Media Management Apps for Mac!", "fca024d4-140e-4052-a7eb-77c3e4430c5e", false, "gcJDDSv7Gq8", 1, [], 648, false, "https://www.youtube.com/watch?v=gcJDDSv7Gq8", 102, "/downloads/Jeff Su/2022-05-03 9 UNREAL File & Media Management Apps for Mac!/9 UNREAL File & Media Management Apps for Mac! [gcJDDSv7Gq8].mp4", false, false, 99, ~U[2022-05-03 13:00:31Z], ~U[2026-04-23 14:44:33Z], ~U[2026-04-23 14:44:33Z], "Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n🌄\u00A0Ready for 9 Mac Apps to change the way you manage media and files on your Mac?\n\nCheck out my Best Mac Apps for Productivity next 👉🏻\u00A0https://youtu.be/-xXc7qeiC8I\n\nComing from a Windows PC, I honestly can’t believe the quality of some of these free media and file management apps for the Mac. Yes these apps have made me more productive on my Macbook, yes these apps have helped me get things done I wouldn’t have thought possible previously, but I think most importantly it just feels SO AWESOME to be using some of these apps (you know what I mean?) \n\nTIMESTAMPS\n00:00 Best Mac Apps for File and Media Management\n00:16 The Unarchiver and Keka for .zip files\n00:44 IINA Media Player to play videos\n02:07 Color System Picker to save colors \n03:53 Bartender to hide menu bar icons\n05:13 Skim PDF Reader\n06:53 fliqlo for flip clock screensaver\n07:11 Downie to download videos for free\n08:04 Google Drive for Desktop for file management\n08:32 Automator to automate tasks on Mac\n\nRESOURCES I MENTION IN THE VIDEO\nThe Unarchiver - https://theunarchiver.com/\nKeka - https://www.keka.io/en/\nSystem Color Picker - https://sindresorhus.com/system-color-picker\nMaccy - https://maccy.app/\nCleanshot X - https://geni.us/cleanshotx\nBartender - https://www.macbartender.com/\nDozer - https://github.com/Mortennn/Dozer\nHiddenBar - https://github.com/dwarvesf/hidden\nSkim PDF Reader - https://skim-app.sourceforge.io/\nFliqlo - https://fliqlo.com/screensaver/\nDownie - https://geni.us/downie\nNeatDownloadManager - https://www.neatdownloadmanager.com/index.php/en/\nGoogle Drive for Desktop - https://www.google.com/drive/download/\nAutomator - https://support.apple.com/guide/automator/welcome/mac\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#mac #apps #filemanagement", "9 UNREAL File & Media Management Apps for Mac!", "gcJDDSv7Gq8", 1, 648, false, "https://www.youtube.com/watch?v=gcJDDSv7Gq8", "/downloads/Jeff Su/2022-05-03 9 UNREAL File & Media Management Apps for Mac!/9 UNREAL File & Media Management Apps for Mac! [gcJDDSv7Gq8].mp4", false, ~U[2022-05-03 13:00:31Z]] 16:44:33.343 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=80.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:33.345 [debug] QUERY OK source="media_profiles" db=0.6ms queue=1.3ms idle=15.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] 16:44:33.348 [debug] QUERY OK source="media_items" db=1.7ms idle=15.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 [102] 16:44:33.348 [info] Kicking off download for media item #102 (gcJDDSv7Gq8) 16:44:33.354 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=10.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [106, 102, ~U[2026-04-23 14:44:33Z], ~U[2026-04-23 14:44:33Z]] 16:44:33.354 [debug] Current batch of media processed. Will check again in 1000ms 16:44:34.354 [debug] Current batch of media processed. Will check again in 1000ms 16:44:35.355 [debug] Current batch of media processed. Will check again in 1000ms 16:44:35.574 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=mi2vCsP1oKY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bb/60/bb60e5d798e4a65a41bca2722bc937c7755e7a93107c8ab7a655fe4c9ce91482.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:44:35.611 [debug] Running yt-dlp command for action: download_thumbnail 16:44:35.612 [debug] QUERY OK source="settings" db=0.2ms idle=526.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:35.612 [debug] QUERY OK source="settings" db=0.1ms idle=351.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:35.613 [debug] QUERY OK source="settings" db=0.1ms idle=351.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:35.613 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=mi2vCsP1oKY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/21/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/61/35/6135f95679c2d5232ff2405e692a29b75fa3c377986f0248b7fb675978762390.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:44:36.356 [debug] Current batch of media processed. Will check again in 1000ms 16:44:37.358 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🧑🏻\u200D💻\u00A0I use these 10 Mac Apps for productivity daily and they save me HOURS every week\n\n9 UNREAL File and Media Management Apps for the Mac 👉🏻\u00A0https://youtu.be/gcJDDSv7Gq8\n\nThese 10 Best Mac Apps for Productivity include some of the most popular free apps out there: including Dropzone, Alfred, AltTab, Monitor Control, Numi, Cheatsheet, AppCleaner, and Logi Options. For paid apps like Moom and Cheatshot X, I provide alternatives such as Rectangle (for window snapping) and a built-in Mac solution for screenshot purposes\n\nSpecial shoutout to @CreatedbyEllaYT for introducing me to Maccy! It works just as well as Alfred’s paid Clipboard Manager feature!\n\nDropzone 4 - https://aptonic.com/\nAltTab - https://alt-tab-macos.netlify.app/\nMonitor Control (go to Releases page) - https://github.com/MonitorControl/MonitorControl\nMoom - https://manytricks.com/moom/\nRectangle (free alternative) - https://rectangleapp.com/\nNumi - https://numi.app/\nCheatSheet - https://www.mediaatelier.com/CheatSheet/\nAppCleaner - https://freemacsoft.net/appcleaner/\nCleanshot X - https://geni.us/cleanshotx\nAlfred - https://www.alfredapp.com/\nLogi Options - https://www.logitech.com/en-us/software/options.html\nMaccy - https://github.com/p0deje/Maccy\nDownie - https://geni.us/downie\n\nTIMESTAMPS\n00:00 Best Mac Apps for Productivity\n00:40 Dropzone to manage files\n01:40 AltTab to select a specific window\n02:40 Monitor Control to adjust brightness\n03:52 Moom to snap windows to different positions\n04:43 Numi calculator for unit conversion\n05:22 Cheat Sheet to find shortcuts and hotkeys\n05:47 AppCleaner to quickly uninstall Mac apps\n06:30 CleanShot X as an amazing screenshot tool\n08:27 Alfred replaces Spotlight Search\n10:56 Logi Options to map buttons on mouse\n\nRESOURCES I MENTION IN THE VIDEO\nCreated by Ella Mac Apps video - https://youtu.be/bRTK7KBudYg\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#mac #apps #productivity", "duration" => 699, "filename" => "/downloads/Jeff Su/2022-04-26 10 BEST Mac Apps for Productivity!/10 BEST Mac Apps for Productivity! [-xXc7qeiC8I].mp4", "id" => "-xXc7qeiC8I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-xXc7qeiC8I", "playlist_index" => 103, "timestamp" => 1650978000, "title" => "10 BEST Mac Apps for Productivity!", "upload_date" => "20220426"} 16:44:37.360 [debug] QUERY OK source="sources" db=1.1ms idle=269.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:37.362 [debug] QUERY OK source="sources" db=1.6ms idle=99.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:37.363 [debug] QUERY OK source="media_items" db=1.0ms idle=101.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-04-26 13:00:00Z], 1] 16:44:37.367 [debug] QUERY OK source="media_items" db=2.5ms idle=103.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🧑🏻\u200D💻\u00A0I use these 10 Mac Apps for productivity daily and they save me HOURS every week\n\n9 UNREAL File and Media Management Apps for the Mac 👉🏻\u00A0https://youtu.be/gcJDDSv7Gq8\n\nThese 10 Best Mac Apps for Productivity include some of the most popular free apps out there: including Dropzone, Alfred, AltTab, Monitor Control, Numi, Cheatsheet, AppCleaner, and Logi Options. For paid apps like Moom and Cheatshot X, I provide alternatives such as Rectangle (for window snapping) and a built-in Mac solution for screenshot purposes\n\nSpecial shoutout to @CreatedbyEllaYT for introducing me to Maccy! It works just as well as Alfred’s paid Clipboard Manager feature!\n\nDropzone 4 - https://aptonic.com/\nAltTab - https://alt-tab-macos.netlify.app/\nMonitor Control (go to Releases page) - https://github.com/MonitorControl/MonitorControl\nMoom - https://manytricks.com/moom/\nRectangle (free alternative) - https://rectangleapp.com/\nNumi - https://numi.app/\nCheatSheet - https://www.mediaatelier.com/CheatSheet/\nAppCleaner - https://freemacsoft.net/appcleaner/\nCleanshot X - https://geni.us/cleanshotx\nAlfred - https://www.alfredapp.com/\nLogi Options - https://www.logitech.com/en-us/software/options.html\nMaccy - https://github.com/p0deje/Maccy\nDownie - https://geni.us/downie\n\nTIMESTAMPS\n00:00 Best Mac Apps for Productivity\n00:40 Dropzone to manage files\n01:40 AltTab to select a specific window\n02:40 Monitor Control to adjust brightness\n03:52 Moom to snap windows to different positions\n04:43 Numi calculator for unit conversion\n05:22 Cheat Sheet to find shortcuts and hotkeys\n05:47 AppCleaner to quickly uninstall Mac apps\n06:30 CleanShot X as an amazing screenshot tool\n08:27 Alfred replaces Spotlight Search\n10:56 Logi Options to map buttons on mouse\n\nRESOURCES I MENTION IN THE VIDEO\nCreated by Ella Mac Apps video - https://youtu.be/bRTK7KBudYg\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#mac #apps #productivity", "10 BEST Mac Apps for Productivity!", "4a546a25-f250-41a8-a8df-ab3ca7ee38ab", false, "-xXc7qeiC8I", 1, [], 699, false, "https://www.youtube.com/watch?v=-xXc7qeiC8I", 103, "/downloads/Jeff Su/2022-04-26 10 BEST Mac Apps for Productivity!/10 BEST Mac Apps for Productivity! [-xXc7qeiC8I].mp4", false, false, 99, ~U[2022-04-26 13:00:00Z], ~U[2026-04-23 14:44:37Z], ~U[2026-04-23 14:44:37Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🧑🏻\u200D💻\u00A0I use these 10 Mac Apps for productivity daily and they save me HOURS every week\n\n9 UNREAL File and Media Management Apps for the Mac 👉🏻\u00A0https://youtu.be/gcJDDSv7Gq8\n\nThese 10 Best Mac Apps for Productivity include some of the most popular free apps out there: including Dropzone, Alfred, AltTab, Monitor Control, Numi, Cheatsheet, AppCleaner, and Logi Options. For paid apps like Moom and Cheatshot X, I provide alternatives such as Rectangle (for window snapping) and a built-in Mac solution for screenshot purposes\n\nSpecial shoutout to @CreatedbyEllaYT for introducing me to Maccy! It works just as well as Alfred’s paid Clipboard Manager feature!\n\nDropzone 4 - https://aptonic.com/\nAltTab - https://alt-tab-macos.netlify.app/\nMonitor Control (go to Releases page) - https://github.com/MonitorControl/MonitorControl\nMoom - https://manytricks.com/moom/\nRectangle (free alternative) - https://rectangleapp.com/\nNumi - https://numi.app/\nCheatSheet - https://www.mediaatelier.com/CheatSheet/\nAppCleaner - https://freemacsoft.net/appcleaner/\nCleanshot X - https://geni.us/cleanshotx\nAlfred - https://www.alfredapp.com/\nLogi Options - https://www.logitech.com/en-us/software/options.html\nMaccy - https://github.com/p0deje/Maccy\nDownie - https://geni.us/downie\n\nTIMESTAMPS\n00:00 Best Mac Apps for Productivity\n00:40 Dropzone to manage files\n01:40 AltTab to select a specific window\n02:40 Monitor Control to adjust brightness\n03:52 Moom to snap windows to different positions\n04:43 Numi calculator for unit conversion\n05:22 Cheat Sheet to find shortcuts and hotkeys\n05:47 AppCleaner to quickly uninstall Mac apps\n06:30 CleanShot X as an amazing screenshot tool\n08:27 Alfred replaces Spotlight Search\n10:56 Logi Options to map buttons on mouse\n\nRESOURCES I MENTION IN THE VIDEO\nCreated by Ella Mac Apps video - https://youtu.be/bRTK7KBudYg\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#mac #apps #productivity", "10 BEST Mac Apps for Productivity!", "-xXc7qeiC8I", 1, 699, false, "https://www.youtube.com/watch?v=-xXc7qeiC8I", "/downloads/Jeff Su/2022-04-26 10 BEST Mac Apps for Productivity!/10 BEST Mac Apps for Productivity! [-xXc7qeiC8I].mp4", false, ~U[2022-04-26 13:00:00Z]] 16:44:37.368 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=106.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:37.369 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=9.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:44:37.370 [debug] QUERY OK source="media_items" db=0.4ms idle=7.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [103] 16:44:37.370 [info] Kicking off download for media item #103 (-xXc7qeiC8I) 16:44:37.374 [debug] QUERY OK source="tasks" db=0.2ms idle=4.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [107, 103, ~U[2026-04-23 14:44:37Z], ~U[2026-04-23 14:44:37Z]] 16:44:37.374 [debug] Current batch of media processed. Will check again in 1000ms 16:44:38.375 [debug] Current batch of media processed. Will check again in 1000ms 16:44:39.375 [debug] Current batch of media processed. Will check again in 1000ms 16:44:40.388 [debug] Current batch of media processed. Will check again in 1000ms 16:44:40.566 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BVT5EZkb24Q --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/96/14/96140befa47bcee0fee9c65dff24bb44cfbb8e27a1371e9766d8fca067f04711.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:44:40.606 [debug] Running yt-dlp command for action: download_thumbnail 16:44:40.608 [debug] QUERY OK source="settings" db=0.2ms idle=1346.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:40.608 [debug] QUERY OK source="settings" db=0.1ms idle=1347.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:40.608 [debug] QUERY OK source="settings" db=0.1ms idle=1347.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:40.609 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BVT5EZkb24Q --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/22/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/67/4b/674b03ffa448a9d84e8dc24b26ebcc5ad0a92a9ad1540fd2af8dd3d7bb869670.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:44:41.390 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔐\u00A0Bet you didn’t think you’d be watching a lockdown video in 2022! \n\nCheck out the morning routine I go through while being locked down in Shanghai, China. I guess I couldn’t have avoided this forever 😅\n\nTIMESTAMPS\n00:00 Lockdown Life in Shanghai 2022\n00:49 Waking Up\n01:46 Getting Ready\n02:38 Shanghai Lockdown Situation Background\n03:02 Daily Agenda Planner\n03:30 What’s Going on in Shanghai Right Now\n04:08 Morning Stretches\n05:06 Cooking a Delicious Breakfast\n06:17 How Testing Works in Shanghai\n07:44 Self-Testing\n\nRESOURCES I MENTION IN THE VIDEO\nWeekly Agenda Planner - https://youtu.be/M28HPv1l8gY\nJeremy Ethier’s 5-min Routine - https://youtu.be/sOuKeVuej9E\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#lockdownin2022, #shanghai #morningroutine", "duration" => 496, "filename" => "/downloads/Jeff Su/2022-04-12 An Unusual Morning Routine (in LOCKDOWN)/An Unusual Morning Routine (in LOCKDOWN) [wZn3WoZALnU].mp4", "id" => "wZn3WoZALnU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wZn3WoZALnU", "playlist_index" => 104, "timestamp" => 1649768434, "title" => "An Unusual Morning Routine (in LOCKDOWN)", "upload_date" => "20220412"} 16:44:41.390 [debug] QUERY OK source="sources" db=0.3ms 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 (?)) [1] 16:44:41.391 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=782.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:41.392 [debug] QUERY OK source="media_items" db=0.5ms idle=782.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-04-12 13:00:34Z], 1] 16:44:41.394 [debug] QUERY OK source="media_items" db=1.7ms idle=283.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔐\u00A0Bet you didn’t think you’d be watching a lockdown video in 2022! \n\nCheck out the morning routine I go through while being locked down in Shanghai, China. I guess I couldn’t have avoided this forever 😅\n\nTIMESTAMPS\n00:00 Lockdown Life in Shanghai 2022\n00:49 Waking Up\n01:46 Getting Ready\n02:38 Shanghai Lockdown Situation Background\n03:02 Daily Agenda Planner\n03:30 What’s Going on in Shanghai Right Now\n04:08 Morning Stretches\n05:06 Cooking a Delicious Breakfast\n06:17 How Testing Works in Shanghai\n07:44 Self-Testing\n\nRESOURCES I MENTION IN THE VIDEO\nWeekly Agenda Planner - https://youtu.be/M28HPv1l8gY\nJeremy Ethier’s 5-min Routine - https://youtu.be/sOuKeVuej9E\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#lockdownin2022, #shanghai #morningroutine", "An Unusual Morning Routine (in LOCKDOWN)", "0dca26a3-48c1-49ce-9dd8-1de0b14ccd9e", false, "wZn3WoZALnU", 1, [], 496, false, "https://www.youtube.com/watch?v=wZn3WoZALnU", 104, "/downloads/Jeff Su/2022-04-12 An Unusual Morning Routine (in LOCKDOWN)/An Unusual Morning Routine (in LOCKDOWN) [wZn3WoZALnU].mp4", false, false, 99, ~U[2022-04-12 13:00:34Z], ~U[2026-04-23 14:44:41Z], ~U[2026-04-23 14:44:41Z], "🔐\u00A0Bet you didn’t think you’d be watching a lockdown video in 2022! \n\nCheck out the morning routine I go through while being locked down in Shanghai, China. I guess I couldn’t have avoided this forever 😅\n\nTIMESTAMPS\n00:00 Lockdown Life in Shanghai 2022\n00:49 Waking Up\n01:46 Getting Ready\n02:38 Shanghai Lockdown Situation Background\n03:02 Daily Agenda Planner\n03:30 What’s Going on in Shanghai Right Now\n04:08 Morning Stretches\n05:06 Cooking a Delicious Breakfast\n06:17 How Testing Works in Shanghai\n07:44 Self-Testing\n\nRESOURCES I MENTION IN THE VIDEO\nWeekly Agenda Planner - https://youtu.be/M28HPv1l8gY\nJeremy Ethier’s 5-min Routine - https://youtu.be/sOuKeVuej9E\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#lockdownin2022, #shanghai #morningroutine", "An Unusual Morning Routine (in LOCKDOWN)", "wZn3WoZALnU", 1, 496, false, "https://www.youtube.com/watch?v=wZn3WoZALnU", "/downloads/Jeff Su/2022-04-12 An Unusual Morning Routine (in LOCKDOWN)/An Unusual Morning Routine (in LOCKDOWN) [wZn3WoZALnU].mp4", false, ~U[2022-04-12 13:00:34Z]] 16:44:41.395 [debug] QUERY OK source="sources" db=0.2ms idle=134.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:41.396 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=4.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:44:41.396 [debug] QUERY OK source="media_items" db=0.3ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [104] 16:44:41.397 [info] Kicking off download for media item #104 (wZn3WoZALnU) 16:44:41.399 [debug] QUERY OK source="tasks" db=0.2ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [108, 104, ~U[2026-04-23 14:44:41Z], ~U[2026-04-23 14:44:41Z]] 16:44:41.400 [debug] Current batch of media processed. Will check again in 1000ms 16:44:42.400 [debug] Current batch of media processed. Will check again in 1000ms 16:44:42.429 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=mi2vCsP1oKY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/21/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/61/35/6135f95679c2d5232ff2405e692a29b75fa3c377986f0248b7fb675978762390.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:44:42.430 [debug] QUERY OK db=0.0ms queue=0.1ms idle=1033.3ms begin [] 16:44:42.431 [debug] QUERY OK source="media_items" db=0.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:44:35Z], "/downloads/Jeff Su/2025-06-17 Why 90% of AI Presentations Fail (do this instead)/Why 90% of AI Presentations Fail (do this instead) [mi2vCsP1oKY].mp4", "/downloads/Jeff Su/2025-06-17 Why 90% of AI Presentations Fail (do this instead)/Why 90% of AI Presentations Fail (do this instead) [mi2vCsP1oKY].info.json", "/downloads/Jeff Su/2025-06-17 Why 90% of AI Presentations Fail (do this instead)/Why 90% of AI Presentations Fail (do this instead) [mi2vCsP1oKY].nfo", "/downloads/Jeff Su/2025-06-17 Why 90% of AI Presentations Fail (do this instead)/Why 90% of AI Presentations Fail (do this instead) [mi2vCsP1oKY]-thumb.jpg", ~U[2026-04-23 14:44:42Z], 21] 16:44:42.432 [debug] QUERY OK source="media_metadata" db=0.7ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/21/metadata.json.gz", "/config/metadata/media_items/21/thumbnail.jpg", 21, ~U[2026-04-23 14:44:42Z], ~U[2026-04-23 14:44:42Z]] 16:44:42.433 [debug] QUERY OK db=0.2ms commit [] 16:44:42.434 [debug] QUERY OK source="media_items" db=1.3ms idle=1034.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [40580078, ~U[2026-04-23 14:44:42Z], 21] 16:44:42.434 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:44:42.435 [info] {"args":{"id":21},"id":25,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":37520751,"event":"job:stop","queue_time":315912839,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:44:42.442 [info] {"args":{"id":23},"id":27,"meta":{},"system_time":1776955482442206785,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:44:42.442 [debug] QUERY OK source="media_items" db=0.2ms idle=331.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" = ?) [23] 16:44:42.443 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:44:42.443 [debug] QUERY OK source="sources" db=0.1ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:42.444 [debug] QUERY OK source="media_profiles" db=0.2ms idle=8.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] 16:44:42.444 [debug] QUERY OK source="media_items" db=0.2ms idle=8.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [23] 16:44:42.445 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [23] 16:44:42.445 [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] 16:44:42.446 [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 [] 16:44:42.446 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:42.447 [debug] Running yt-dlp command for action: get_downloadable_status 16:44:42.447 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:42.447 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:42.448 [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 [] 16:44:42.448 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_RTqbo5ZZ2k --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0c/9c/0c9c443f07c31c6d31c1ef708813eac0449625c952246392a1d718c39b4511df.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:44:43.401 [debug] Current batch of media processed. Will check again in 1000ms 16:44:44.403 [debug] Current batch of media processed. Will check again in 1000ms 16:44:45.404 [debug] Current batch of media processed. Will check again in 1000ms 16:44:46.406 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=97\n\n⏬\u00A0Weekly Agenda Template - https://www.jeffsu.org/notion-weekly-agenda-template/\n\nIn this video I build on my original “Plan a Productive Day using Notion” video and share my latest practical & aesthetic Weekly Agenda Template on Notion (completely for free of course)! 🌟\n\nOne area Notion truly shines is its ability to help your organize your life. And what better place to start than your week? In this weekly Notion planner, you can see I’ve boiled all the planning and organizing down to the basics to minimize friction and ensure you’re able to consistently stick with this day-to-day, week-by-week\n\nWhether you’re working professional or student, it’s extremely easy to get started with this Notion weekly agenda template. My recommendation is to sit down for 5 minutes in the morning, and write down 1 highlight, 1 thing you’re grateful for, and 1 thing you want to let go (and...let it go!)\n\nThen, under the “Daily To-Do’s” section, use the new and improved template button I created and add 1 or more action items you complete on a daily basis (stretching for example). Then, write a few high-level activities you want to go through during the day and that’s basically it!\n\nPlease let me know what you think of this free Notion template and honestly I’m more excited about how you optimize and customize this template for yourself! \n\nTIMESTAMPS\n00:00 Updated Notion Weekly Agenda Template\n00:38 Change Notion Page Cover Image\n00:59 Change Notion Page Icon\n01:10 Custom Colors for Notion Text\n02:32 Pick Your Color Theme and Font\n03:02 Daily 5 Minute Agenda Workflow\n04:05 Reflect on your Week\n05:13 Daily To-Do Section\n05:53 Workstream Section\n06:41 Sunday Night Action Items\n07:12 Minimize Friction\n\nRESOURCES I MENTION IN THE VIDEO\n7 Awesome Ideas for Canva (for free)! - https://youtu.be/w0Bf4u-u9AQ\nSign up for Canva - https://partner.canva.com/jeffsu\nFlaticons - https://www.flaticon.com/\nColorHunt - https://colorhunt.co/\nCoolors - https://coolors.co/\nHBR Article - https://hbr.org/2022/03/dont-underestimate-the-power-of-self-reflection\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notion #notionhq #weeklyagendaplanner", "duration" => 459, "filename" => "/downloads/Jeff Su/2022-04-05 Notion Weekly Agenda Template 🌟\u00A0📆\u00A0Practical & Aesthetic!/Notion Weekly Agenda Template 🌟\u00A0📆\u00A0Practical & Aesthetic! [M28HPv1l8gY].mp4", "id" => "M28HPv1l8gY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=M28HPv1l8gY", "playlist_index" => 105, "timestamp" => 1649163621, "title" => "Notion Weekly Agenda Template 🌟\u00A0📆\u00A0Practical & Aesthetic!", "upload_date" => "20220405"} 16:44:46.407 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=286.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:46.407 [debug] QUERY OK source="sources" db=0.2ms idle=146.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:46.408 [debug] QUERY OK source="media_items" db=0.6ms idle=147.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-04-05 13:00:21Z], 1] 16:44:46.412 [debug] QUERY OK source="media_items" db=2.2ms idle=148.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=97\n\n⏬\u00A0Weekly Agenda Template - https://www.jeffsu.org/notion-weekly-agenda-template/\n\nIn this video I build on my original “Plan a Productive Day using Notion” video and share my latest practical & aesthetic Weekly Agenda Template on Notion (completely for free of course)! 🌟\n\nOne area Notion truly shines is its ability to help your organize your life. And what better place to start than your week? In this weekly Notion planner, you can see I’ve boiled all the planning and organizing down to the basics to minimize friction and ensure you’re able to consistently stick with this day-to-day, week-by-week\n\nWhether you’re working professional or student, it’s extremely easy to get started with this Notion weekly agenda template. My recommendation is to sit down for 5 minutes in the morning, and write down 1 highlight, 1 thing you’re grateful for, and 1 thing you want to let go (and...let it go!)\n\nThen, under the “Daily To-Do’s” section, use the new and improved template button I created and add 1 or more action items you complete on a daily basis (stretching for example). Then, write a few high-level activities you want to go through during the day and that’s basically it!\n\nPlease let me know what you think of this free Notion template and honestly I’m more excited about how you optimize and customize this template for yourself! \n\nTIMESTAMPS\n00:00 Updated Notion Weekly Agenda Template\n00:38 Change Notion Page Cover Image\n00:59 Change Notion Page Icon\n01:10 Custom Colors for Notion Text\n02:32 Pick Your Color Theme and Font\n03:02 Daily 5 Minute Agenda Workflow\n04:05 Reflect on your Week\n05:13 Daily To-Do Section\n05:53 Workstream Section\n06:41 Sunday Night Action Items\n07:12 Minimize Friction\n\nRESOURCES I MENTION IN THE VIDEO\n7 Awesome Ideas for Canva (for free)! - https://youtu.be/w0Bf4u-u9AQ\nSign up for Canva - https://partner.canva.com/jeffsu\nFlaticons - https://www.flaticon.com/\nColorHunt - https://colorhunt.co/\nCoolors - https://coolors.co/\nHBR Article - https://hbr.org/2022/03/dont-underestimate-the-power-of-self-reflection\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notion #notionhq #weeklyagendaplanner", "Notion Weekly Agenda Template 🌟\u00A0📆\u00A0Practical & Aesthetic!", "9739977d-8b58-4ea5-84b7-28c276c3090a", false, "M28HPv1l8gY", 1, [], 459, false, "https://www.youtube.com/watch?v=M28HPv1l8gY", 105, "/downloads/Jeff Su/2022-04-05 Notion Weekly Agenda Template 🌟\u00A0📆\u00A0Practical & Aesthetic!/Notion Weekly Agenda Template 🌟\u00A0📆\u00A0Practical & Aesthetic! [M28HPv1l8gY].mp4", false, false, 99, ~U[2022-04-05 13:00:21Z], ~U[2026-04-23 14:44:46Z], ~U[2026-04-23 14:44:46Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=97\n\n⏬\u00A0Weekly Agenda Template - https://www.jeffsu.org/notion-weekly-agenda-template/\n\nIn this video I build on my original “Plan a Productive Day using Notion” video and share my latest practical & aesthetic Weekly Agenda Template on Notion (completely for free of course)! 🌟\n\nOne area Notion truly shines is its ability to help your organize your life. And what better place to start than your week? In this weekly Notion planner, you can see I’ve boiled all the planning and organizing down to the basics to minimize friction and ensure you’re able to consistently stick with this day-to-day, week-by-week\n\nWhether you’re working professional or student, it’s extremely easy to get started with this Notion weekly agenda template. My recommendation is to sit down for 5 minutes in the morning, and write down 1 highlight, 1 thing you’re grateful for, and 1 thing you want to let go (and...let it go!)\n\nThen, under the “Daily To-Do’s” section, use the new and improved template button I created and add 1 or more action items you complete on a daily basis (stretching for example). Then, write a few high-level activities you want to go through during the day and that’s basically it!\n\nPlease let me know what you think of this free Notion template and honestly I’m more excited about how you optimize and customize this template for yourself! \n\nTIMESTAMPS\n00:00 Updated Notion Weekly Agenda Template\n00:38 Change Notion Page Cover Image\n00:59 Change Notion Page Icon\n01:10 Custom Colors for Notion Text\n02:32 Pick Your Color Theme and Font\n03:02 Daily 5 Minute Agenda Workflow\n04:05 Reflect on your Week\n05:13 Daily To-Do Section\n05:53 Workstream Section\n06:41 Sunday Night Action Items\n07:12 Minimize Friction\n\nRESOURCES I MENTION IN THE VIDEO\n7 Awesome Ideas for Canva (for free)! - https://youtu.be/w0Bf4u-u9AQ\nSign up for Canva - https://partner.canva.com/jeffsu\nFlaticons - https://www.flaticon.com/\nColorHunt - https://colorhunt.co/\nCoolors - https://coolors.co/\nHBR Article - https://hbr.org/2022/03/dont-underestimate-the-power-of-self-reflection\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notion #notionhq #weeklyagendaplanner", "Notion Weekly Agenda Template 🌟\u00A0📆\u00A0Practical & Aesthetic! (truncated) 16:44:46.413 [debug] QUERY OK source="sources" db=0.4ms idle=151.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:46.415 [debug] QUERY OK source="media_profiles" db=1.6ms queue=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:44:46.417 [debug] QUERY OK source="media_items" db=0.7ms queue=0.3ms idle=7.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [105] 16:44:46.417 [info] Kicking off download for media item #105 (M28HPv1l8gY) 16:44:46.421 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=7.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [109, 105, ~U[2026-04-23 14:44:46Z], ~U[2026-04-23 14:44:46Z]] 16:44:46.421 [debug] Current batch of media processed. Will check again in 1000ms 16:44:46.677 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BVT5EZkb24Q --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/22/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/67/4b/674b03ffa448a9d84e8dc24b26ebcc5ad0a92a9ad1540fd2af8dd3d7bb869670.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:44:46.678 [debug] QUERY OK db=0.1ms idle=263.1ms begin [] 16:44:46.679 [debug] QUERY OK source="media_items" db=1.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:44:40Z], "/downloads/Jeff Su/2025-06-03 My Last Day at Google (after 9 years)/My Last Day at Google (after 9 years) [BVT5EZkb24Q].mp4", "/downloads/Jeff Su/2025-06-03 My Last Day at Google (after 9 years)/My Last Day at Google (after 9 years) [BVT5EZkb24Q].info.json", "/downloads/Jeff Su/2025-06-03 My Last Day at Google (after 9 years)/My Last Day at Google (after 9 years) [BVT5EZkb24Q].nfo", "/downloads/Jeff Su/2025-06-03 My Last Day at Google (after 9 years)/My Last Day at Google (after 9 years) [BVT5EZkb24Q]-thumb.jpg", ~U[2026-04-23 14:44:46Z], 22] 16:44:46.682 [debug] QUERY OK source="media_metadata" db=1.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/22/metadata.json.gz", "/config/metadata/media_items/22/thumbnail.jpg", 22, ~U[2026-04-23 14:44:46Z], ~U[2026-04-23 14:44:46Z]] 16:44:46.682 [debug] QUERY OK db=0.5ms commit [] 16:44:46.684 [debug] QUERY OK source="media_items" db=1.2ms idle=266.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [33562468, ~U[2026-04-23 14:44:46Z], 22] 16:44:46.685 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:44:46.686 [info] {"args":{"id":22},"id":26,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":39140450,"event":"job:stop","queue_time":314541140,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:44:46.693 [info] {"args":{"id":24},"id":28,"meta":{},"system_time":1776955486693064043,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:44:46.693 [debug] QUERY OK source="media_items" db=0.3ms idle=272.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" = ?) [24] 16:44:46.694 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:44:46.696 [debug] QUERY OK source="sources" db=0.4ms queue=1.1ms idle=11.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:46.697 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.5ms idle=11.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:44:46.698 [debug] QUERY OK source="media_items" db=0.4ms idle=12.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [24] 16:44:46.700 [debug] QUERY OK source="media_metadata" db=0.3ms idle=7.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [24] 16:44:46.701 [debug] QUERY OK source="media_profiles" db=0.6ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:44:46.703 [debug] QUERY OK source="settings" db=0.7ms idle=6.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:46.704 [debug] QUERY OK source="settings" db=0.4ms queue=0.3ms idle=5.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:46.705 [debug] Running yt-dlp command for action: get_downloadable_status 16:44:46.706 [debug] QUERY OK source="settings" db=0.2ms idle=7.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:46.707 [debug] QUERY OK source="settings" db=0.2ms idle=6.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:46.707 [debug] QUERY OK source="settings" db=0.2ms idle=5.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:46.708 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Uy6LcpyGj7w --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/58/67/5867857a81e7e7a4ca219b561d2d1705f1351f3959423ea9be14f61abc62d731.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:44:47.422 [debug] Current batch of media processed. Will check again in 1000ms 16:44:48.264 [info] {"source":"oban","duration":961,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:44:48.423 [debug] Current batch of media processed. Will check again in 1000ms 16:44:49.041 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_RTqbo5ZZ2k --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0c/9c/0c9c443f07c31c6d31c1ef708813eac0449625c952246392a1d718c39b4511df.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:44:49.042 [debug] Running yt-dlp command for action: download 16:44:49.043 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=781.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:49.043 [debug] QUERY OK source="settings" db=0.2ms idle=782.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:49.043 [debug] QUERY OK source="settings" db=0.2ms idle=782.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:49.044 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_RTqbo5ZZ2k --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/b6/4a/b64aee487036a3d9913c719076af898b36656fdedead43b48f821b39e78fcdf6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:44:49.424 [debug] Current batch of media processed. Will check again in 1000ms 16:44:50.425 [debug] Current batch of media processed. Will check again in 1000ms 16:44:51.427 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=096\n\n📆\u00A0If you enjoyed my original Google Calendar tips for productivity, you’re going to want to check out this video with 15 MORE Google Calendar Tips for Productivity! \n\nI go over (1) New Google Calendar features and functions that have rolled out recently, (2) Google Calendar extensions designed to make our lives even more efficient, and (3) Google Workspace-specific tips for those of us who use Google Calendar at work or for school\n\nMy favorite tips from this video include selecting 3-day or 2-day views using the mouse; adding labels to secondary timezones (game-changer!); exporting and importing Birthday calendars; the Button for Google browser extension, and the integration of Google Docs within Google Calendar events\n\nEnjoy! 😊\u00A0\n\nTIMESTAMPS\n00:00 3-Day, 2-Day, or 1-Day View\n00:47 Add Labels to Timezones\n01:16 Customize Google Calendar Colors\n01:43 Create Events from Gmail\n02:11 Combine Multiple Calendar Views\n03:02 Transfer Ownerships of Event\n03:42 Add Birthdays to Google Contacts\n03:55 Export and Import Google Calendars\n04:35 Customize All-Day Event Notifications\n05:09 Restore Deleted Calendar Events\n05:19 Button for Google Calendar\n05:54 gCal Plus Browser Extension\n06:31 Publish Google Calendar Events\n07:08 Create Notes from Calendar Events\n07:28 RSVP with Your Location\n07:58 Bonus Tip!\n\nRESOURCES I MENTION IN THE VIDEO\nColorHunt - https://colorhunt.co/\nSmart Chips Feature in Google Docs - https://youtu.be/auYFCjU7pBA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "duration" => 500, "filename" => "/downloads/Jeff Su/2022-03-29 15 MORE Google Calendar Tips for Productivity!/15 MORE Google Calendar Tips for Productivity! [QQKHhri48Ps].mp4", "id" => "QQKHhri48Ps", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QQKHhri48Ps", "playlist_index" => 106, "timestamp" => 1648558850, "title" => "15 MORE Google Calendar Tips for Productivity!", "upload_date" => "20220329"} 16:44:51.429 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=1166.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:51.431 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=1168.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:51.433 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=1171.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-29 13:00:50Z], 1] 16:44:51.444 [debug] QUERY OK source="media_items" db=9.3ms idle=1173.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=096\n\n📆\u00A0If you enjoyed my original Google Calendar tips for productivity, you’re going to want to check out this video with 15 MORE Google Calendar Tips for Productivity! \n\nI go over (1) New Google Calendar features and functions that have rolled out recently, (2) Google Calendar extensions designed to make our lives even more efficient, and (3) Google Workspace-specific tips for those of us who use Google Calendar at work or for school\n\nMy favorite tips from this video include selecting 3-day or 2-day views using the mouse; adding labels to secondary timezones (game-changer!); exporting and importing Birthday calendars; the Button for Google browser extension, and the integration of Google Docs within Google Calendar events\n\nEnjoy! 😊\u00A0\n\nTIMESTAMPS\n00:00 3-Day, 2-Day, or 1-Day View\n00:47 Add Labels to Timezones\n01:16 Customize Google Calendar Colors\n01:43 Create Events from Gmail\n02:11 Combine Multiple Calendar Views\n03:02 Transfer Ownerships of Event\n03:42 Add Birthdays to Google Contacts\n03:55 Export and Import Google Calendars\n04:35 Customize All-Day Event Notifications\n05:09 Restore Deleted Calendar Events\n05:19 Button for Google Calendar\n05:54 gCal Plus Browser Extension\n06:31 Publish Google Calendar Events\n07:08 Create Notes from Calendar Events\n07:28 RSVP with Your Location\n07:58 Bonus Tip!\n\nRESOURCES I MENTION IN THE VIDEO\nColorHunt - https://colorhunt.co/\nSmart Chips Feature in Google Docs - https://youtu.be/auYFCjU7pBA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "15 MORE Google Calendar Tips for Productivity!", "d7c20771-2535-48a1-be12-37b04ffc773e", false, "QQKHhri48Ps", 1, [], 500, false, "https://www.youtube.com/watch?v=QQKHhri48Ps", 106, "/downloads/Jeff Su/2022-03-29 15 MORE Google Calendar Tips for Productivity!/15 MORE Google Calendar Tips for Productivity! [QQKHhri48Ps].mp4", false, false, 99, ~U[2022-03-29 13:00:50Z], ~U[2026-04-23 14:44:51Z], ~U[2026-04-23 14:44:51Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=096\n\n📆\u00A0If you enjoyed my original Google Calendar tips for productivity, you’re going to want to check out this video with 15 MORE Google Calendar Tips for Productivity! \n\nI go over (1) New Google Calendar features and functions that have rolled out recently, (2) Google Calendar extensions designed to make our lives even more efficient, and (3) Google Workspace-specific tips for those of us who use Google Calendar at work or for school\n\nMy favorite tips from this video include selecting 3-day or 2-day views using the mouse; adding labels to secondary timezones (game-changer!); exporting and importing Birthday calendars; the Button for Google browser extension, and the integration of Google Docs within Google Calendar events\n\nEnjoy! 😊\u00A0\n\nTIMESTAMPS\n00:00 3-Day, 2-Day, or 1-Day View\n00:47 Add Labels to Timezones\n01:16 Customize Google Calendar Colors\n01:43 Create Events from Gmail\n02:11 Combine Multiple Calendar Views\n03:02 Transfer Ownerships of Event\n03:42 Add Birthdays to Google Contacts\n03:55 Export and Import Google Calendars\n04:35 Customize All-Day Event Notifications\n05:09 Restore Deleted Calendar Events\n05:19 Button for Google Calendar\n05:54 gCal Plus Browser Extension\n06:31 Publish Google Calendar Events\n07:08 Create Notes from Calendar Events\n07:28 RSVP with Your Location\n07:58 Bonus Tip!\n\nRESOURCES I MENTION IN THE VIDEO\nColorHunt - https://colorhunt.co/\nSmart Chips Feature in Google Docs - https://youtu.be/auYFCjU7pBA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "15 MORE Google Calendar Tips for Productivity!", "QQKHhri48Ps", 1, 500, false, "https://www.youtube.com/watch?v=QQKHhri48Ps", "/downloads/Jeff Su/2022-03-29 15 MORE Google Calendar Tips for Productivity!/15 MORE Google Calendar Tips for Productivity! [QQKHhri48Ps].mp4", false, ~U[2022-03-29 13:00:50Z]] 16:44:51.447 [debug] QUERY OK source="sources" db=2.4ms queue=0.1ms idle=314.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:51.450 [debug] QUERY OK source="media_profiles" db=2.0ms queue=0.1ms idle=18.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] 16:44:51.452 [debug] QUERY OK source="media_items" db=1.5ms idle=18.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 [106] 16:44:51.452 [info] Kicking off download for media item #106 (QQKHhri48Ps) 16:44:51.456 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=8.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [110, 106, ~U[2026-04-23 14:44:51Z], ~U[2026-04-23 14:44:51Z]] 16:44:51.456 [debug] Current batch of media processed. Will check again in 1000ms 16:44:52.456 [debug] Current batch of media processed. Will check again in 1000ms 16:44:52.940 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Uy6LcpyGj7w --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/58/67/5867857a81e7e7a4ca219b561d2d1705f1351f3959423ea9be14f61abc62d731.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:44:52.942 [debug] Running yt-dlp command for action: download 16:44:52.943 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=1490.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:52.945 [debug] QUERY OK source="settings" db=1.1ms idle=1489.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:52.946 [debug] QUERY OK source="settings" db=1.0ms queue=0.1ms idle=1489.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:44:52.946 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Uy6LcpyGj7w --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/19/bf/19bf08ccc1f6a518db8d783cd3e9d781739a2f61a98076fe497094861093e350.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:44:53.457 [debug] Current batch of media processed. Will check again in 1000ms 16:44:54.459 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Download my template here: https://www.jeffsu.org/shared-spreadsheet-template/\n\nIt’s hard to get by at work without using some sort of project management shared spreadsheet with colleagues (be it Microsoft Excel or Google Sheets). In this video I go through 10 Best Practices for Shared Spreadsheets and I share concrete examples so you can follow along!\n\nI first go through tips and tricks you can adopt within tabs (for example hyperlinking to specific tab URLs for call-to-action) and then go through how best to structure the overall spreadsheet (e.g. having empty tabs to visually separate different sections of the spreadsheet)\n\nSo whether you use Google Sheets or Microsoft Excel at work or for school, these tips (such as using data validation and conditional formatting) will all be applicable and will also hopefully increase your productivity!\n\nTIMESTAMPS\n00:00 Shared Spreadsheet for Project Management\n00:34 Add Explanation to Every Tab\n01:22 Make Deadlines Obvious\n01:46 Hyperlink to Specific Tabs\n02:30 Use Descriptions below Header Rows\n03:07 Data Validation is Your BEST FRIEND\n04:40 Use Formulas Whenever Possible\n05:51 Import Raw Data Properly\n06:50 Key Info Tabs\n07:25 Raw Data Tabs\n07:43 Share Spreadsheet with Teammates\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Sheets Formula Video - https://youtu.be/98dnBA5WYLY\nHow To Take Notes at Work - https://youtu.be/T0qhJdHLJTc\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlesheets #excel #bestpractices", "duration" => 497, "filename" => "/downloads/Jeff Su/2022-03-22 10 Best Practices for Project Management Spreadsheets!/10 Best Practices for Project Management Spreadsheets! [fTIupIVKbEM].mp4", "id" => "fTIupIVKbEM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=fTIupIVKbEM", "playlist_index" => 107, "timestamp" => 1647954018, "title" => "10 Best Practices for Project Management Spreadsheets!", "upload_date" => "20220322"} 16:44:54.460 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1198.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:44:54.461 [debug] QUERY OK source="sources" db=0.3ms idle=324.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:44:54.461 [debug] QUERY OK source="media_items" db=0.6ms idle=200.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-22 13:00:18Z], 1] 16:44:54.465 [debug] QUERY OK source="media_items" db=2.0ms idle=201.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Download my template here: https://www.jeffsu.org/shared-spreadsheet-template/\n\nIt’s hard to get by at work without using some sort of project management shared spreadsheet with colleagues (be it Microsoft Excel or Google Sheets). In this video I go through 10 Best Practices for Shared Spreadsheets and I share concrete examples so you can follow along!\n\nI first go through tips and tricks you can adopt within tabs (for example hyperlinking to specific tab URLs for call-to-action) and then go through how best to structure the overall spreadsheet (e.g. having empty tabs to visually separate different sections of the spreadsheet)\n\nSo whether you use Google Sheets or Microsoft Excel at work or for school, these tips (such as using data validation and conditional formatting) will all be applicable and will also hopefully increase your productivity!\n\nTIMESTAMPS\n00:00 Shared Spreadsheet for Project Management\n00:34 Add Explanation to Every Tab\n01:22 Make Deadlines Obvious\n01:46 Hyperlink to Specific Tabs\n02:30 Use Descriptions below Header Rows\n03:07 Data Validation is Your BEST FRIEND\n04:40 Use Formulas Whenever Possible\n05:51 Import Raw Data Properly\n06:50 Key Info Tabs\n07:25 Raw Data Tabs\n07:43 Share Spreadsheet with Teammates\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Sheets Formula Video - https://youtu.be/98dnBA5WYLY\nHow To Take Notes at Work - https://youtu.be/T0qhJdHLJTc\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlesheets #excel #bestpractices", "10 Best Practices for Project Management Spreadsheets!", "eb02f3e8-dc7f-4508-82b8-9c4a16431dbb", false, "fTIupIVKbEM", 1, [], 497, false, "https://www.youtube.com/watch?v=fTIupIVKbEM", 107, "/downloads/Jeff Su/2022-03-22 10 Best Practices for Project Management Spreadsheets!/10 Best Practices for Project Management Spreadsheets! [fTIupIVKbEM].mp4", false, false, 99, ~U[2022-03-22 13:00:18Z], ~U[2026-04-23 14:44:54Z], ~U[2026-04-23 14:44:54Z], "Download my template here: https://www.jeffsu.org/shared-spreadsheet-template/\n\nIt’s hard to get by at work without using some sort of project management shared spreadsheet with colleagues (be it Microsoft Excel or Google Sheets). In this video I go through 10 Best Practices for Shared Spreadsheets and I share concrete examples so you can follow along!\n\nI first go through tips and tricks you can adopt within tabs (for example hyperlinking to specific tab URLs for call-to-action) and then go through how best to structure the overall spreadsheet (e.g. having empty tabs to visually separate different sections of the spreadsheet)\n\nSo whether you use Google Sheets or Microsoft Excel at work or for school, these tips (such as using data validation and conditional formatting) will all be applicable and will also hopefully increase your productivity!\n\nTIMESTAMPS\n00:00 Shared Spreadsheet for Project Management\n00:34 Add Explanation to Every Tab\n01:22 Make Deadlines Obvious\n01:46 Hyperlink to Specific Tabs\n02:30 Use Descriptions below Header Rows\n03:07 Data Validation is Your BEST FRIEND\n04:40 Use Formulas Whenever Possible\n05:51 Import Raw Data Properly\n06:50 Key Info Tabs\n07:25 Raw Data Tabs\n07:43 Share Spreadsheet with Teammates\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Sheets Formula Video - https://youtu.be/98dnBA5WYLY\nHow To Take Notes at Work - https://youtu.be/T0qhJdHLJTc\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlesheets #excel #bestpractices", "10 Best Practices for Project Management Spreadsheets!", "fTIupIVKbEM", 1, 497, false, "https://www.youtube.com/watch?v=fTIupIVKbEM", "/downloads/Jeff Su/2022-03-22 10 Best Practices for Project Management Spreadsheets!/10 Best Practices for Project Management Spreadsheets! [fTIupIVKbEM].mp4", false, ~U[2022-03-22 13:00:18Z]] 16:44:54.465 [debug] QUERY OK source="sources" db=0.4ms idle=204.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:44:54.467 [debug] QUERY OK source="media_profiles" db=0.5ms queue=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] 16:44:54.468 [debug] QUERY OK source="media_items" db=0.8ms queue=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 [107] 16:44:54.468 [info] Kicking off download for media item #107 (fTIupIVKbEM) 16:44:54.472 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=6.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [111, 107, ~U[2026-04-23 14:44:54Z], ~U[2026-04-23 14:44:54Z]] 16:44:54.475 [debug] Current batch of media processed. Will check again in 1000ms 16:44:55.476 [debug] Current batch of media processed. Will check again in 1000ms 16:44:56.476 [debug] Current batch of media processed. Will check again in 1000ms 16:44:57.477 [debug] Current batch of media processed. Will check again in 1000ms 16:44:58.478 [debug] Current batch of media processed. Will check again in 1000ms 16:44:59.479 [debug] Current batch of media processed. Will check again in 1000ms 16:45:00.214 [info] {"source":"oban","duration":260,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:45:00.480 [debug] Current batch of media processed. Will check again in 1000ms 16:45:01.482 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🥊\u00A0Some new hires have a secret ability that help them excel in the workplace; and according to Zara Zhang, that ability is to Make Things Happen\n\nThe sooner new hires and fresh grads are able to grasp this ability to “make things happen,” the faster their career growth\n\nThere are 5 goals young professionals (especially new grads) should aim to achieve in their corporate jobs to get ahead in the workplace: Know Who Does What, Know How to Ask for Help, Know When to Escalate, Know How to Host a Meeting that Doesn’t Suck, and Know Your Boss\n\nProfessionals who master these 5 areas are usually high performers who get recognized at work without having to “play workplace politics” \n\nTIMESTAMPS\n00:00 How to Succeed in the Corporate World\n00:48 5 Things to Accelerate Your Career\n00:55 Know Who Does What\n02:40 Know How to Ask for Help\n03:32 Know When to Escalate\n04:37 Know How to Host a Productive Meeting\n05:53 Know Your Boss\n\nRESOURCES I MENTION IN THE VIDEO\nZara’s original article - https://zarazhang.com/2021/11/20/how-to-make-things-happen-tips-for-recent-graduates-at-work/\nBest Questions to ask during Coffee Chats - https://youtu.be/4b2iagdHw8M\nInformational Interview Mistakes - https://youtu.be/V_L2aWCdO4A\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#makethingshappen #workplacetips #career", "duration" => 424, "filename" => "/downloads/Jeff Su/2022-03-15 5 Things You MUST Do After Starting a New Job!/5 Things You MUST Do After Starting a New Job! [j9YeEQR8nKQ].mp4", "id" => "j9YeEQR8nKQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=j9YeEQR8nKQ", "playlist_index" => 108, "timestamp" => 1647349231, "title" => "5 Things You MUST Do After Starting a New Job!", "upload_date" => "20220315"} 16:45:01.483 [debug] QUERY OK source="sources" db=0.3ms idle=1221.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:01.483 [debug] QUERY OK source="sources" db=0.3ms idle=1222.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:01.484 [debug] QUERY OK source="media_items" db=0.6ms idle=1222.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-15 13:00:31Z], 1] 16:45:01.500 [debug] QUERY OK source="media_items" db=14.3ms idle=334.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🥊\u00A0Some new hires have a secret ability that help them excel in the workplace; and according to Zara Zhang, that ability is to Make Things Happen\n\nThe sooner new hires and fresh grads are able to grasp this ability to “make things happen,” the faster their career growth\n\nThere are 5 goals young professionals (especially new grads) should aim to achieve in their corporate jobs to get ahead in the workplace: Know Who Does What, Know How to Ask for Help, Know When to Escalate, Know How to Host a Meeting that Doesn’t Suck, and Know Your Boss\n\nProfessionals who master these 5 areas are usually high performers who get recognized at work without having to “play workplace politics” \n\nTIMESTAMPS\n00:00 How to Succeed in the Corporate World\n00:48 5 Things to Accelerate Your Career\n00:55 Know Who Does What\n02:40 Know How to Ask for Help\n03:32 Know When to Escalate\n04:37 Know How to Host a Productive Meeting\n05:53 Know Your Boss\n\nRESOURCES I MENTION IN THE VIDEO\nZara’s original article - https://zarazhang.com/2021/11/20/how-to-make-things-happen-tips-for-recent-graduates-at-work/\nBest Questions to ask during Coffee Chats - https://youtu.be/4b2iagdHw8M\nInformational Interview Mistakes - https://youtu.be/V_L2aWCdO4A\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#makethingshappen #workplacetips #career", "5 Things You MUST Do After Starting a New Job!", "87644f86-9117-46b0-947f-618daa9b37c1", false, "j9YeEQR8nKQ", 1, [], 424, false, "https://www.youtube.com/watch?v=j9YeEQR8nKQ", 108, "/downloads/Jeff Su/2022-03-15 5 Things You MUST Do After Starting a New Job!/5 Things You MUST Do After Starting a New Job! [j9YeEQR8nKQ].mp4", false, false, 99, ~U[2022-03-15 13:00:31Z], ~U[2026-04-23 14:45:01Z], ~U[2026-04-23 14:45:01Z], "🥊\u00A0Some new hires have a secret ability that help them excel in the workplace; and according to Zara Zhang, that ability is to Make Things Happen\n\nThe sooner new hires and fresh grads are able to grasp this ability to “make things happen,” the faster their career growth\n\nThere are 5 goals young professionals (especially new grads) should aim to achieve in their corporate jobs to get ahead in the workplace: Know Who Does What, Know How to Ask for Help, Know When to Escalate, Know How to Host a Meeting that Doesn’t Suck, and Know Your Boss\n\nProfessionals who master these 5 areas are usually high performers who get recognized at work without having to “play workplace politics” \n\nTIMESTAMPS\n00:00 How to Succeed in the Corporate World\n00:48 5 Things to Accelerate Your Career\n00:55 Know Who Does What\n02:40 Know How to Ask for Help\n03:32 Know When to Escalate\n04:37 Know How to Host a Productive Meeting\n05:53 Know Your Boss\n\nRESOURCES I MENTION IN THE VIDEO\nZara’s original article - https://zarazhang.com/2021/11/20/how-to-make-things-happen-tips-for-recent-graduates-at-work/\nBest Questions to ask during Coffee Chats - https://youtu.be/4b2iagdHw8M\nInformational Interview Mistakes - https://youtu.be/V_L2aWCdO4A\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#makethingshappen #workplacetips #career", "5 Things You MUST Do After Starting a New Job!", "j9YeEQR8nKQ", 1, 424, false, "https://www.youtube.com/watch?v=j9YeEQR8nKQ", "/downloads/Jeff Su/2022-03-15 5 Things You MUST Do After Starting a New Job!/5 Things You MUST Do After Starting a New Job! [j9YeEQR8nKQ].mp4", false, ~U[2022-03-15 13:00:31Z]] 16:45:01.500 [debug] QUERY OK source="sources" db=0.3ms idle=239.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:45:01.502 [debug] QUERY OK source="media_profiles" db=1.1ms idle=17.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] 16:45:01.503 [debug] QUERY OK source="media_items" db=0.4ms idle=18.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 [108] 16:45:01.503 [info] Kicking off download for media item #108 (j9YeEQR8nKQ) 16:45:01.506 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=5.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [112, 108, ~U[2026-04-23 14:45:01Z], ~U[2026-04-23 14:45:01Z]] 16:45:01.506 [debug] Current batch of media processed. Will check again in 1000ms 16:45:02.507 [debug] Current batch of media processed. Will check again in 1000ms 16:45:03.508 [debug] Current batch of media processed. Will check again in 1000ms 16:45:04.516 [debug] Current batch of media processed. Will check again in 1000ms 16:45:05.517 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=093\n\n🗂\u00A0There are 2 main reasons why the Google Drive for Desktop app is a game-changer for Google Drive users: (1) You unlock new features like file streaming, and (2) You speed up your workflow\n\nIn this video I go through how to use Google Drive for Mac (applicable for PC as well), a step-by-step tutorial on how to download and install the app, features you can start using immediately, and some potential drawbacks you might encounter when you use Google Drive for Desktop!\n\nGoogle Drive for Desktop has gone through many names (it was previously known Backup and Sync) but the core functionality has stayed largely the same. So let’s see what this amazing tool can offer us 🛠\n\nTIMESTAMPS\n00:00 Stream Files from Drive for Desktop\n00:41 Download Google Drive for Desktop\n01:16 Settings & Preferences\n02:56 Feature #1: Stream Video\n03:41 Feature #2: File Management\n04:41 Feature #3: Offline Access\n04:55 Potential Drawbacks\n\nRESOURCES I MENTION IN THE VIDEO\nDownload Drive for Desktop (PC or Mac) - https://www.google.com/drive/download/\nClean Google Drive Cache (Mac) - https://remarkablemark.medium.com/how-to-clear-google-drive-cache-abf9efc6089e\nManage Google Storage - https://youtu.be/rs0fLVEM8Ow\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googledrivefordesktop #googledriveformac #productivityatwork", "duration" => 408, "filename" => "/downloads/Jeff Su/2022-03-08 How to use Google Drive for Mac (Tutorial & Features)!/How to use Google Drive for Mac (Tutorial & Features)! [p5EbFW-0lWQ].mp4", "id" => "p5EbFW-0lWQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=p5EbFW-0lWQ", "playlist_index" => 109, "timestamp" => 1646744433, "title" => "How to use Google Drive for Mac (Tutorial & Features)!", "upload_date" => "20220308"} 16:45:05.518 [debug] QUERY OK source="sources" db=0.3ms idle=358.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:05.518 [debug] QUERY OK source="sources" db=0.3ms idle=257.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:05.519 [debug] QUERY OK source="media_items" db=0.9ms idle=257.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-08 13:00:33Z], 1] 16:45:05.523 [debug] QUERY OK source="media_items" db=2.0ms idle=259.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=093\n\n🗂\u00A0There are 2 main reasons why the Google Drive for Desktop app is a game-changer for Google Drive users: (1) You unlock new features like file streaming, and (2) You speed up your workflow\n\nIn this video I go through how to use Google Drive for Mac (applicable for PC as well), a step-by-step tutorial on how to download and install the app, features you can start using immediately, and some potential drawbacks you might encounter when you use Google Drive for Desktop!\n\nGoogle Drive for Desktop has gone through many names (it was previously known Backup and Sync) but the core functionality has stayed largely the same. So let’s see what this amazing tool can offer us 🛠\n\nTIMESTAMPS\n00:00 Stream Files from Drive for Desktop\n00:41 Download Google Drive for Desktop\n01:16 Settings & Preferences\n02:56 Feature #1: Stream Video\n03:41 Feature #2: File Management\n04:41 Feature #3: Offline Access\n04:55 Potential Drawbacks\n\nRESOURCES I MENTION IN THE VIDEO\nDownload Drive for Desktop (PC or Mac) - https://www.google.com/drive/download/\nClean Google Drive Cache (Mac) - https://remarkablemark.medium.com/how-to-clear-google-drive-cache-abf9efc6089e\nManage Google Storage - https://youtu.be/rs0fLVEM8Ow\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googledrivefordesktop #googledriveformac #productivityatwork", "How to use Google Drive for Mac (Tutorial & Features)!", "aa60fe08-5f04-491e-bd6d-dbd073fee89a", false, "p5EbFW-0lWQ", 1, [], 408, false, "https://www.youtube.com/watch?v=p5EbFW-0lWQ", 109, "/downloads/Jeff Su/2022-03-08 How to use Google Drive for Mac (Tutorial & Features)!/How to use Google Drive for Mac (Tutorial & Features)! [p5EbFW-0lWQ].mp4", false, false, 99, ~U[2022-03-08 13:00:33Z], ~U[2026-04-23 14:45:05Z], ~U[2026-04-23 14:45:05Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=093\n\n🗂\u00A0There are 2 main reasons why the Google Drive for Desktop app is a game-changer for Google Drive users: (1) You unlock new features like file streaming, and (2) You speed up your workflow\n\nIn this video I go through how to use Google Drive for Mac (applicable for PC as well), a step-by-step tutorial on how to download and install the app, features you can start using immediately, and some potential drawbacks you might encounter when you use Google Drive for Desktop!\n\nGoogle Drive for Desktop has gone through many names (it was previously known Backup and Sync) but the core functionality has stayed largely the same. So let’s see what this amazing tool can offer us 🛠\n\nTIMESTAMPS\n00:00 Stream Files from Drive for Desktop\n00:41 Download Google Drive for Desktop\n01:16 Settings & Preferences\n02:56 Feature #1: Stream Video\n03:41 Feature #2: File Management\n04:41 Feature #3: Offline Access\n04:55 Potential Drawbacks\n\nRESOURCES I MENTION IN THE VIDEO\nDownload Drive for Desktop (PC or Mac) - https://www.google.com/drive/download/\nClean Google Drive Cache (Mac) - https://remarkablemark.medium.com/how-to-clear-google-drive-cache-abf9efc6089e\nManage Google Storage - https://youtu.be/rs0fLVEM8Ow\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googledrivefordesktop #googledriveformac #productivityatwork", "How to use Google Drive for Mac (Tutorial & Features)!", "p5EbFW-0lWQ", 1, 408, false, "https://www.youtube.com/watch?v=p5EbFW-0lWQ", "/downloads/Jeff Su/2022-03-08 How to use Google Drive for Mac (Tutorial & Features)!/How to use Google Drive for Mac (Tutorial & Features)! [p5EbFW-0lWQ].mp4", false, ~U[2022-03-08 13:00:33Z]] 16:45:05.523 [debug] QUERY OK source="sources" db=0.3ms idle=262.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:45:05.524 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:05.525 [debug] QUERY OK source="media_items" db=0.3ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [109] 16:45:05.525 [info] Kicking off download for media item #109 (p5EbFW-0lWQ) 16:45:05.527 [debug] QUERY OK source="tasks" db=0.2ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [113, 109, ~U[2026-04-23 14:45:05Z], ~U[2026-04-23 14:45:05Z]] 16:45:05.528 [debug] Current batch of media processed. Will check again in 1000ms 16:45:06.529 [debug] Current batch of media processed. Will check again in 1000ms 16:45:07.529 [debug] Current batch of media processed. Will check again in 1000ms 16:45:08.530 [debug] Current batch of media processed. Will check again in 1000ms 16:45:09.531 [debug] Current batch of media processed. Will check again in 1000ms 16:45:10.533 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=092\n\n🧑🏻\u200D💻\u00A0Both Google Meet and Google Chat got huge upgrades over the past year so in this video I’ll share 9+ AMAZING Google Meet (and Chat) Tips you should know!\n\nGoogle Meet is one of the most popular video conferencing tools out there and and whether you use Google Meet in the workplace or for school, these tips and tricks will all be applicable.\n\nFor example you can simply type in “meet.new” in the address bar to start a new Google Meet session and share the meeting link with anyone (they don’t even need a Google account)! \n\nYou might already know you can present your Google Doc or Google Slides directly into Google Meet but did you know you can present your Phone screen as well?\n\nAnd if you’re someone who likes to have a “centralized digital workspace,” you can actually enable Google Meet and Google Chat directly within Gmail! \n\nTIMESTAMPS\n00:00 Present a Tab in Google Meet\n00:42 meet.new Shortcut\n01:24 Create Custom Background for Google Meet\n01:57 Present Directly from Docs or Slides\n02:33 Present Phone Screen in Google Meet\n03:09 Enable Captions in Google Meet\n03:44 Free Whiteboarding Feature\n04:22 End Call for Yourself Only\n04:36 Enable Google Meet and Chat in Gmail\n05:06 Schedule Meeting from Gmail Inbox\n05:27 Use standalone Google Chat App\n05:37 Custom Status in Google Chat\n05:50 Forward Message to Inbox\n06:11 Google Chat Settings\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero - https://youtu.be/9ql1CQfxWxQ\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlemeet #googlechat #productivityatwork", "duration" => 402, "filename" => "/downloads/Jeff Su/2022-03-01 9+ AMAZING Google Meet Tips You Should Know/9+ AMAZING Google Meet Tips You Should Know [1lRsu_bHjJ0].mp4", "id" => "1lRsu_bHjJ0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1lRsu_bHjJ0", "playlist_index" => 110, "timestamp" => 1646139600, "title" => "9+ AMAZING Google Meet Tips You Should Know", "upload_date" => "20220301"} 16:45:10.534 [debug] QUERY OK source="sources" db=0.3ms idle=1263.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:10.534 [debug] QUERY OK source="sources" db=0.2ms idle=1264.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:10.535 [debug] QUERY OK source="media_items" db=0.6ms idle=1265.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-01 13:00:00Z], 1] 16:45:10.539 [debug] QUERY OK source="media_items" db=2.4ms idle=1266.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=092\n\n🧑🏻\u200D💻\u00A0Both Google Meet and Google Chat got huge upgrades over the past year so in this video I’ll share 9+ AMAZING Google Meet (and Chat) Tips you should know!\n\nGoogle Meet is one of the most popular video conferencing tools out there and and whether you use Google Meet in the workplace or for school, these tips and tricks will all be applicable.\n\nFor example you can simply type in “meet.new” in the address bar to start a new Google Meet session and share the meeting link with anyone (they don’t even need a Google account)! \n\nYou might already know you can present your Google Doc or Google Slides directly into Google Meet but did you know you can present your Phone screen as well?\n\nAnd if you’re someone who likes to have a “centralized digital workspace,” you can actually enable Google Meet and Google Chat directly within Gmail! \n\nTIMESTAMPS\n00:00 Present a Tab in Google Meet\n00:42 meet.new Shortcut\n01:24 Create Custom Background for Google Meet\n01:57 Present Directly from Docs or Slides\n02:33 Present Phone Screen in Google Meet\n03:09 Enable Captions in Google Meet\n03:44 Free Whiteboarding Feature\n04:22 End Call for Yourself Only\n04:36 Enable Google Meet and Chat in Gmail\n05:06 Schedule Meeting from Gmail Inbox\n05:27 Use standalone Google Chat App\n05:37 Custom Status in Google Chat\n05:50 Forward Message to Inbox\n06:11 Google Chat Settings\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero - https://youtu.be/9ql1CQfxWxQ\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlemeet #googlechat #productivityatwork", "9+ AMAZING Google Meet Tips You Should Know", "e95332c5-2860-4ab8-b596-b42b5f035ee2", false, "1lRsu_bHjJ0", 1, [], 402, false, "https://www.youtube.com/watch?v=1lRsu_bHjJ0", 110, "/downloads/Jeff Su/2022-03-01 9+ AMAZING Google Meet Tips You Should Know/9+ AMAZING Google Meet Tips You Should Know [1lRsu_bHjJ0].mp4", false, false, 99, ~U[2022-03-01 13:00:00Z], ~U[2026-04-23 14:45:10Z], ~U[2026-04-23 14:45:10Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=092\n\n🧑🏻\u200D💻\u00A0Both Google Meet and Google Chat got huge upgrades over the past year so in this video I’ll share 9+ AMAZING Google Meet (and Chat) Tips you should know!\n\nGoogle Meet is one of the most popular video conferencing tools out there and and whether you use Google Meet in the workplace or for school, these tips and tricks will all be applicable.\n\nFor example you can simply type in “meet.new” in the address bar to start a new Google Meet session and share the meeting link with anyone (they don’t even need a Google account)! \n\nYou might already know you can present your Google Doc or Google Slides directly into Google Meet but did you know you can present your Phone screen as well?\n\nAnd if you’re someone who likes to have a “centralized digital workspace,” you can actually enable Google Meet and Google Chat directly within Gmail! \n\nTIMESTAMPS\n00:00 Present a Tab in Google Meet\n00:42 meet.new Shortcut\n01:24 Create Custom Background for Google Meet\n01:57 Present Directly from Docs or Slides\n02:33 Present Phone Screen in Google Meet\n03:09 Enable Captions in Google Meet\n03:44 Free Whiteboarding Feature\n04:22 End Call for Yourself Only\n04:36 Enable Google Meet and Chat in Gmail\n05:06 Schedule Meeting from Gmail Inbox\n05:27 Use standalone Google Chat App\n05:37 Custom Status in Google Chat\n05:50 Forward Message to Inbox\n06:11 Google Chat Settings\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero - https://youtu.be/9ql1CQfxWxQ\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlemeet #googlechat #productivityatwork", "9+ AMAZING Google Meet Tips You Should Know", "1lRsu_bHjJ0", 1, 402, false, "https://www.youtube.com/watch?v=1lRsu_bHjJ0", "/downloads/Jeff Su/2022-03-01 9+ AMAZING Google Meet Tips You Should Know/9+ AMAZING Google Meet Tips You Should Know [1lRsu_bHjJ0].mp4", false, ~U[2022-03-01 13:00:00Z]] 16:45:10.540 [debug] QUERY OK source="sources" db=0.3ms queue=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" = ?) [1] 16:45:10.540 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:10.542 [debug] QUERY OK source="media_items" db=1.0ms 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 [110] 16:45:10.542 [info] Kicking off download for media item #110 (1lRsu_bHjJ0) 16:45:10.545 [debug] QUERY OK source="tasks" db=0.2ms idle=4.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [114, 110, ~U[2026-04-23 14:45:10Z], ~U[2026-04-23 14:45:10Z]] 16:45:10.545 [debug] Current batch of media processed. Will check again in 1000ms 16:45:11.545 [debug] Current batch of media processed. Will check again in 1000ms 16:45:12.546 [debug] Current batch of media processed. Will check again in 1000ms 16:45:13.206 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_RTqbo5ZZ2k --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/b6/4a/b64aee487036a3d9913c719076af898b36656fdedead43b48f821b39e78fcdf6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:45:13.254 [debug] Running yt-dlp command for action: download_thumbnail 16:45:13.255 [debug] QUERY OK source="settings" db=0.2ms idle=984.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:13.255 [debug] QUERY OK source="settings" db=0.2ms idle=985.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:13.255 [debug] QUERY OK source="settings" db=0.1ms idle=985.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:13.256 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_RTqbo5ZZ2k --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/23/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/91/cf/91cf038c5fd46f2642e612116ad7280c66dcfcc24d8fa9af47c2cb0bed260378.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:45:13.547 [debug] Current batch of media processed. Will check again in 1000ms 16:45:14.548 [debug] Current batch of media processed. Will check again in 1000ms 16:45:15.408 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Uy6LcpyGj7w --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/19/bf/19bf08ccc1f6a518db8d783cd3e9d781739a2f61a98076fe497094861093e350.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:45:15.444 [debug] Running yt-dlp command for action: download_thumbnail 16:45:15.445 [debug] QUERY OK source="settings" db=0.2ms idle=1174.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:15.445 [debug] QUERY OK source="settings" db=0.2ms idle=1175.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:15.445 [debug] QUERY OK source="settings" db=0.1ms idle=1175.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:15.446 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Uy6LcpyGj7w --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/24/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/10/07/1007201a54fb81320644bc543ef25fd8162eb45835969f55ed48dcde1ebbf7ee.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:45:15.550 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n✍🏻\u00A0Sign up for Scribe: https://scribe.how/jeffsu\n\nAdopt the settings changes I go through in this Top 20 MacBook Tips for Productivity video to permanently increase your efficiency with your Mac!\n\nThen, practice the MacBook tips and tricks I go through (hint: option key is super super useful) to get things done in a fraction of the time ⏰\n\nWe’ll go through basic Mac settings changes (like showing path and status bars in finder) all the way to advanced tips like how to present your iPhone screen during your next video conference meeting\n\nTIMESTAMPS\n00:00 Open with Default App\n00:39 Show Path Bar & Status Bar\n00:55 Finder Preferences: General\n01:10 Finder Preferences: Tags & Sidebar\n01:26 Finder Preferences: Advanced \n01:45 Moving Files between Folders\n01:59 Enable Battery Percentage on Mac\n02:25 MacBook Dock Productivity Tips\n02:47 MacBook Option Key Productivity Tips\n03:54 Add Library Folder to Sidebar on Mac\n04:20 Present iPhone Screen on Mac\n04:48 Default Screen Recorder on Mac\n05:03 Scribe Sponsorship\n05:49 Change Image Size on Mac\n06:14 Create PDF from Images\n06:31 Export Images to PDF\n06:59 Export from Keynote, Pages, Numbers\n07:10 Force Quit Applications on Mac\n07:47 Check MacBook Warranty & Support\n08:07 Function + Delete on Mac\n08:22 Accented Alphabet Characters\n08:28 Quick Access Emojis\n08:33 Secret Apple Logo Shortcut\n\nRESOURCES I MENTION IN THE VIDEO\nSubscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\nMost Useful Keyboard Shortcuts - https://youtu.be/gCnSozvvMMM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#MacBook #tips #productivity", "duration" => 536, "filename" => "/downloads/Jeff Su/2022-02-22 Top 20 MacBook Tips for Productivity!/Top 20 MacBook Tips for Productivity! [5B2kPVvyjbU].mp4", "id" => "5B2kPVvyjbU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5B2kPVvyjbU", "playlist_index" => 111, "timestamp" => 1645534803, "title" => "Top 20 MacBook Tips for Productivity!", "upload_date" => "20220222"} 16:45:15.551 [debug] QUERY OK source="sources" db=0.3ms idle=1280.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:15.551 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:15.552 [debug] QUERY OK source="media_items" db=0.6ms idle=106.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-02-22 13:00:03Z], 1] 16:45:15.555 [debug] QUERY OK source="media_items" db=1.8ms idle=107.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n✍🏻\u00A0Sign up for Scribe: https://scribe.how/jeffsu\n\nAdopt the settings changes I go through in this Top 20 MacBook Tips for Productivity video to permanently increase your efficiency with your Mac!\n\nThen, practice the MacBook tips and tricks I go through (hint: option key is super super useful) to get things done in a fraction of the time ⏰\n\nWe’ll go through basic Mac settings changes (like showing path and status bars in finder) all the way to advanced tips like how to present your iPhone screen during your next video conference meeting\n\nTIMESTAMPS\n00:00 Open with Default App\n00:39 Show Path Bar & Status Bar\n00:55 Finder Preferences: General\n01:10 Finder Preferences: Tags & Sidebar\n01:26 Finder Preferences: Advanced \n01:45 Moving Files between Folders\n01:59 Enable Battery Percentage on Mac\n02:25 MacBook Dock Productivity Tips\n02:47 MacBook Option Key Productivity Tips\n03:54 Add Library Folder to Sidebar on Mac\n04:20 Present iPhone Screen on Mac\n04:48 Default Screen Recorder on Mac\n05:03 Scribe Sponsorship\n05:49 Change Image Size on Mac\n06:14 Create PDF from Images\n06:31 Export Images to PDF\n06:59 Export from Keynote, Pages, Numbers\n07:10 Force Quit Applications on Mac\n07:47 Check MacBook Warranty & Support\n08:07 Function + Delete on Mac\n08:22 Accented Alphabet Characters\n08:28 Quick Access Emojis\n08:33 Secret Apple Logo Shortcut\n\nRESOURCES I MENTION IN THE VIDEO\nSubscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\nMost Useful Keyboard Shortcuts - https://youtu.be/gCnSozvvMMM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#MacBook #tips #productivity", "Top 20 MacBook Tips for Productivity!", "46399409-5704-435c-a003-33e1a6b529c3", false, "5B2kPVvyjbU", 1, [], 536, false, "https://www.youtube.com/watch?v=5B2kPVvyjbU", 111, "/downloads/Jeff Su/2022-02-22 Top 20 MacBook Tips for Productivity!/Top 20 MacBook Tips for Productivity! [5B2kPVvyjbU].mp4", false, false, 99, ~U[2022-02-22 13:00:03Z], ~U[2026-04-23 14:45:15Z], ~U[2026-04-23 14:45:15Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n✍🏻\u00A0Sign up for Scribe: https://scribe.how/jeffsu\n\nAdopt the settings changes I go through in this Top 20 MacBook Tips for Productivity video to permanently increase your efficiency with your Mac!\n\nThen, practice the MacBook tips and tricks I go through (hint: option key is super super useful) to get things done in a fraction of the time ⏰\n\nWe’ll go through basic Mac settings changes (like showing path and status bars in finder) all the way to advanced tips like how to present your iPhone screen during your next video conference meeting\n\nTIMESTAMPS\n00:00 Open with Default App\n00:39 Show Path Bar & Status Bar\n00:55 Finder Preferences: General\n01:10 Finder Preferences: Tags & Sidebar\n01:26 Finder Preferences: Advanced \n01:45 Moving Files between Folders\n01:59 Enable Battery Percentage on Mac\n02:25 MacBook Dock Productivity Tips\n02:47 MacBook Option Key Productivity Tips\n03:54 Add Library Folder to Sidebar on Mac\n04:20 Present iPhone Screen on Mac\n04:48 Default Screen Recorder on Mac\n05:03 Scribe Sponsorship\n05:49 Change Image Size on Mac\n06:14 Create PDF from Images\n06:31 Export Images to PDF\n06:59 Export from Keynote, Pages, Numbers\n07:10 Force Quit Applications on Mac\n07:47 Check MacBook Warranty & Support\n08:07 Function + Delete on Mac\n08:22 Accented Alphabet Characters\n08:28 Quick Access Emojis\n08:33 Secret Apple Logo Shortcut\n\nRESOURCES I MENTION IN THE VIDEO\nSubscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\nMost Useful Keyboard Shortcuts - https://youtu.be/gCnSozvvMMM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#MacBook #tips #productivity", "Top 20 MacBook Tips for Productivity!", "5B2kPVvyjbU", 1, 536, false, "https://www.youtube.com/watch?v=5B2kPVvyjbU", "/downloads/Jeff Su/2022-02-22 Top 20 MacBook Tips for Productivity!/Top 20 MacBook Tips for Productivity! [5B2kPVvyjbU].mp4", false, ~U[2022-02-22 13:00:03Z]] 16:45:15.557 [debug] QUERY OK source="sources" db=0.9ms idle=110.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:15.557 [debug] QUERY OK source="media_profiles" db=0.4ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:15.558 [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 [111] 16:45:15.558 [info] Kicking off download for media item #111 (5B2kPVvyjbU) 16:45:15.561 [debug] QUERY OK source="tasks" db=0.2ms idle=4.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [115, 111, ~U[2026-04-23 14:45:15Z], ~U[2026-04-23 14:45:15Z]] 16:45:15.561 [debug] Current batch of media processed. Will check again in 1000ms 16:45:16.562 [debug] Current batch of media processed. Will check again in 1000ms 16:45:17.563 [debug] Current batch of media processed. Will check again in 1000ms 16:45:18.266 [info] {"source":"oban","duration":994,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:45:18.564 [debug] Current batch of media processed. Will check again in 1000ms 16:45:19.500 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_RTqbo5ZZ2k --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/23/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/91/cf/91cf038c5fd46f2642e612116ad7280c66dcfcc24d8fa9af47c2cb0bed260378.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:45:19.502 [debug] QUERY OK db=1.5ms queue=0.1ms idle=307.5ms begin [] 16:45:19.505 [debug] QUERY OK source="media_items" db=2.7ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:45:13Z], "/downloads/Jeff Su/2025-05-20 How I Organize My Life | Notion Tour 2026/How I Organize My Life | Notion Tour 2026 [_RTqbo5ZZ2k].mp4", "/downloads/Jeff Su/2025-05-20 How I Organize My Life | Notion Tour 2026/How I Organize My Life | Notion Tour 2026 [_RTqbo5ZZ2k].info.json", "/downloads/Jeff Su/2025-05-20 How I Organize My Life | Notion Tour 2026/How I Organize My Life | Notion Tour 2026 [_RTqbo5ZZ2k].nfo", "/downloads/Jeff Su/2025-05-20 How I Organize My Life | Notion Tour 2026/How I Organize My Life | Notion Tour 2026 [_RTqbo5ZZ2k]-thumb.jpg", ~U[2026-04-23 14:45:19Z], 23] 16:45:19.508 [debug] QUERY OK source="media_metadata" db=2.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/23/metadata.json.gz", "/config/metadata/media_items/23/thumbnail.jpg", 23, ~U[2026-04-23 14:45:19Z], ~U[2026-04-23 14:45:19Z]] 16:45:19.509 [debug] QUERY OK db=0.7ms commit [] 16:45:19.511 [debug] QUERY OK source="media_items" db=1.4ms idle=239.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [33665150, ~U[2026-04-23 14:45:19Z], 23] 16:45:19.511 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:45:19.512 [info] {"args":{"id":23},"id":27,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":37069483,"event":"job:stop","queue_time":344440890,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:45:19.519 [info] {"args":{"id":25},"id":29,"meta":{},"system_time":1776955519519069116,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:45:19.519 [debug] QUERY OK source="media_items" db=0.2ms idle=249.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" = ?) [25] 16:45:19.520 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:45:19.521 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:19.522 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.3ms idle=10.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:19.523 [debug] QUERY OK source="media_items" db=0.4ms 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 [25] 16:45:19.526 [debug] QUERY OK source="media_metadata" db=0.2ms idle=6.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [25] 16:45:19.526 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:45:19.527 [debug] QUERY OK source="settings" db=0.1ms idle=5.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:19.527 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=4.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:19.528 [debug] Running yt-dlp command for action: get_downloadable_status 16:45:19.529 [debug] QUERY OK source="settings" db=0.1ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:19.529 [debug] QUERY OK source="settings" db=0.1ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:19.529 [debug] QUERY OK source="settings" db=0.1ms 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 [] 16:45:19.530 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FypvQrwvENk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/28/5b/285b44fe7773d50989a26dc2589919e8aab9decfd4570ced1b08dcf5036fdb34.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:45:19.566 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=090\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n💻\u00A0Whether you like it or not, the Hybrid Workplace is here to stay\n\nThat means when it comes time to interview, you’ll need to be ready to answer questions that are focused around a specific set of remote work skills—in addition to\u00A0the usual interview questions\u00A0you might get for a traditional in-office job and questions specific to the role or industry\n\nSo, in this video I’m going over the Top 7 Hybrid Job Interview Questions to Prepare For this year and beyond!\n\nTIMESTAMPS\n00:00 The Future of Work is Hybrid\n00:53 Do You Have Experience Working From Home?\n01:47 How Do you Stay Organized?\n02:36 What Types of Distributed Team Tools Have You Used?\n03:26 How Do You Communicate and Coordinate with Coworkers?\n04:23 How Do You Deal with Uncertainty?\n05:05 Tell Me About a Time You were Creative\n06:14 How do you Maintain Well-Being?\n\nRESOURCES I MENTION IN THE VIDEO\nCARL Interview Method - https://youtu.be/gZ2354BH0a0\nMy Weekly Agenda template - https://youtu.be/sZB8OZoSIyU\nInbox Zero Tutorial - https://youtu.be/9ql1CQfxWxQ\nGoogle Calendar Tips for Productivity - https://youtu.be/4GqqptRI4Do\nThink Outside the Box Playlist - https://www.youtube.com/watch?v=5c9SapE_YNU&list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\nCommon Interview Questions and Answers - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#hybridwork", "duration" => 422, "filename" => "/downloads/Jeff Su/2022-02-15 7 Job Interview Questions to Prepare For!/7 Job Interview Questions to Prepare For! [VbugqgTtF-Q].mp4", "id" => "VbugqgTtF-Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VbugqgTtF-Q", "playlist_index" => 112, "timestamp" => 1644930011, "title" => "7 Job Interview Questions to Prepare For!", "upload_date" => "20220215"} 16:45:19.567 [debug] QUERY OK source="sources" db=1.0ms idle=39.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:19.568 [debug] QUERY OK source="sources" db=0.3ms idle=40.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:19.577 [debug] QUERY OK source="media_items" db=8.8ms idle=39.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-02-15 13:00:11Z], 1] 16:45:19.583 [debug] QUERY OK source="media_items" db=3.9ms idle=48.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=090\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n💻\u00A0Whether you like it or not, the Hybrid Workplace is here to stay\n\nThat means when it comes time to interview, you’ll need to be ready to answer questions that are focused around a specific set of remote work skills—in addition to\u00A0the usual interview questions\u00A0you might get for a traditional in-office job and questions specific to the role or industry\n\nSo, in this video I’m going over the Top 7 Hybrid Job Interview Questions to Prepare For this year and beyond!\n\nTIMESTAMPS\n00:00 The Future of Work is Hybrid\n00:53 Do You Have Experience Working From Home?\n01:47 How Do you Stay Organized?\n02:36 What Types of Distributed Team Tools Have You Used?\n03:26 How Do You Communicate and Coordinate with Coworkers?\n04:23 How Do You Deal with Uncertainty?\n05:05 Tell Me About a Time You were Creative\n06:14 How do you Maintain Well-Being?\n\nRESOURCES I MENTION IN THE VIDEO\nCARL Interview Method - https://youtu.be/gZ2354BH0a0\nMy Weekly Agenda template - https://youtu.be/sZB8OZoSIyU\nInbox Zero Tutorial - https://youtu.be/9ql1CQfxWxQ\nGoogle Calendar Tips for Productivity - https://youtu.be/4GqqptRI4Do\nThink Outside the Box Playlist - https://www.youtube.com/watch?v=5c9SapE_YNU&list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\nCommon Interview Questions and Answers - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#hybridwork", "7 Job Interview Questions to Prepare For!", "71bd43a0-2788-496a-af9a-1f844dc5e1e3", false, "VbugqgTtF-Q", 1, [], 422, false, "https://www.youtube.com/watch?v=VbugqgTtF-Q", 112, "/downloads/Jeff Su/2022-02-15 7 Job Interview Questions to Prepare For!/7 Job Interview Questions to Prepare For! [VbugqgTtF-Q].mp4", false, false, 99, ~U[2022-02-15 13:00:11Z], ~U[2026-04-23 14:45:19Z], ~U[2026-04-23 14:45:19Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=090\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n💻\u00A0Whether you like it or not, the Hybrid Workplace is here to stay\n\nThat means when it comes time to interview, you’ll need to be ready to answer questions that are focused around a specific set of remote work skills—in addition to\u00A0the usual interview questions\u00A0you might get for a traditional in-office job and questions specific to the role or industry\n\nSo, in this video I’m going over the Top 7 Hybrid Job Interview Questions to Prepare For this year and beyond!\n\nTIMESTAMPS\n00:00 The Future of Work is Hybrid\n00:53 Do You Have Experience Working From Home?\n01:47 How Do you Stay Organized?\n02:36 What Types of Distributed Team Tools Have You Used?\n03:26 How Do You Communicate and Coordinate with Coworkers?\n04:23 How Do You Deal with Uncertainty?\n05:05 Tell Me About a Time You were Creative\n06:14 How do you Maintain Well-Being?\n\nRESOURCES I MENTION IN THE VIDEO\nCARL Interview Method - https://youtu.be/gZ2354BH0a0\nMy Weekly Agenda template - https://youtu.be/sZB8OZoSIyU\nInbox Zero Tutorial - https://youtu.be/9ql1CQfxWxQ\nGoogle Calendar Tips for Productivity - https://youtu.be/4GqqptRI4Do\nThink Outside the Box Playlist - https://www.youtube.com/watch?v=5c9SapE_YNU&list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\nCommon Interview Questions and Answers - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#hybridwork", "7 Job Interview Questions to Prepare For!", "VbugqgTtF-Q", 1, 422, false, "https://www.youtube.com/watch?v=VbugqgTtF-Q", "/downloads/Jeff Su/2022-02-15 7 Job Interview Questions to Prepare For!/7 Job Interview Questions to Prepare For! [VbugqgTtF-Q].mp4", false, ~U[2022-02-15 13:00:11Z]] 16:45:19.585 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=53.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:45:19.586 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.6ms idle=17.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:19.589 [debug] QUERY OK source="media_items" db=0.7ms queue=0.4ms idle=19.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 [112] 16:45:19.589 [info] Kicking off download for media item #112 (VbugqgTtF-Q) 16:45:19.594 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=9.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [116, 112, ~U[2026-04-23 14:45:19Z], ~U[2026-04-23 14:45:19Z]] 16:45:19.595 [debug] Current batch of media processed. Will check again in 1000ms 16:45:20.596 [debug] Current batch of media processed. Will check again in 1000ms 16:45:21.557 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Uy6LcpyGj7w --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/24/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/10/07/1007201a54fb81320644bc543ef25fd8162eb45835969f55ed48dcde1ebbf7ee.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:45:21.558 [debug] QUERY OK db=0.2ms idle=361.1ms begin [] 16:45:21.559 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:45:15Z], "/downloads/Jeff Su/2025-05-06 Master 85% of Google Gemini in 12 Minutes/Master 85% of Google Gemini in 12 Minutes [Uy6LcpyGj7w].mp4", "/downloads/Jeff Su/2025-05-06 Master 85% of Google Gemini in 12 Minutes/Master 85% of Google Gemini in 12 Minutes [Uy6LcpyGj7w].info.json", "/downloads/Jeff Su/2025-05-06 Master 85% of Google Gemini in 12 Minutes/Master 85% of Google Gemini in 12 Minutes [Uy6LcpyGj7w].nfo", "/downloads/Jeff Su/2025-05-06 Master 85% of Google Gemini in 12 Minutes/Master 85% of Google Gemini in 12 Minutes [Uy6LcpyGj7w]-thumb.jpg", ~U[2026-04-23 14:45:21Z], 24] 16:45:21.560 [debug] QUERY OK source="media_metadata" db=0.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/24/metadata.json.gz", "/config/metadata/media_items/24/thumbnail.jpg", 24, ~U[2026-04-23 14:45:21Z], ~U[2026-04-23 14:45:21Z]] 16:45:21.596 [debug] Current batch of media processed. Will check again in 1000ms 16:45:21.874 [debug] QUERY OK db=313.3ms commit [] 16:45:22.410 [debug] QUERY OK source="media_items" db=535.2ms idle=604.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [33722539, ~U[2026-04-23 14:45:21Z], 24] 16:45:22.411 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:45:22.412 [info] {"args":{"id":24},"id":28,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":35718947,"event":"job:stop","queue_time":345691863,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:45:22.419 [info] {"args":{"id":26},"id":30,"meta":{},"system_time":1776955522419838076,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:45:22.420 [debug] QUERY OK source="media_items" db=0.2ms idle=545.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" = ?) [26] 16:45:22.420 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:45:22.421 [debug] QUERY OK source="sources" db=0.3ms idle=221.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:45:22.421 [debug] QUERY OK source="media_profiles" db=0.2ms idle=11.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] 16:45:22.422 [debug] QUERY OK source="media_items" db=0.2ms idle=9.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [26] 16:45:22.423 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.3ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [26] 16:45:22.423 [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] 16:45:22.424 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:22.424 [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 [] 16:45:22.424 [debug] Running yt-dlp command for action: get_downloadable_status 16:45:22.425 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:22.425 [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 [] 16:45:22.427 [debug] QUERY OK source="settings" db=0.9ms 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 [] 16:45:22.427 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FwOTs4UxQS4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6a/aa/6aaa58f0b066a100f32e88765b3594e3d2217877ef083007d095a7bd2ee2f2ab.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:45:22.597 [debug] Current batch of media processed. Will check again in 1000ms 16:45:23.599 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=089\n\n📄\u00A0If you type the “@” symbol within Google Docs, you’ll now be able to access the HIDDEN menu! This is THE BEST Productivity Feature in Google Docs and in this video we’ll break down some use cases of this secret menu!\n\nThis new Google Docs feature is called Smart Chips and it’s part of the Smart Canvas update that was announced by Google during their Google I/O event. \n\nBasically, Google is bringing their different products across their Google Workspace offering together - Google Docs, Slides, Sheets, Calendar, Gmail, Keep, Tasks, etc. - and creating something that’s greater than the sum of its parts.\n\nWith this Smart Canvas update, Google Docs got access to these Smart Chips and as you will see in this video, one of the biggest benefits of using Smart Chips within Google Docs is that the Smart Chips are dynamic; if the title of a smart chip updates, that change will be made everywhere else (as opposed to a static hyperlink)\n\nTIMESTAMPS\n00:00 Google Doc’s Secret Feature\n00:27 Google’s Smart Canvas Update\n00:37 What is Google Docs Smart Chips\n01:09 Use Smart Chips in Repository Documents\n03:00 Use Smart Chips for Note-Taking\n04:01 How Smart Chips will Save You Time\n04:32 Automatically Create Table of Contents\n\nRESOURCES I MENTION IN THE VIDEO\nStand Out in the Workplace - https://youtu.be/7-xgf536_oc\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#google #docs #productivityatwork", "duration" => 332, "filename" => "/downloads/Jeff Su/2022-02-08 The BEST Productivity Feature in Google Docs!/The BEST Productivity Feature in Google Docs! [auYFCjU7pBA].mp4", "id" => "auYFCjU7pBA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=auYFCjU7pBA", "playlist_index" => 113, "timestamp" => 1644325201, "title" => "The BEST Productivity Feature in Google Docs!", "upload_date" => "20220208"} 16:45:23.600 [debug] QUERY OK source="sources" db=0.2ms idle=1175.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:23.600 [debug] QUERY OK source="sources" db=0.2ms idle=1174.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:23.601 [debug] QUERY OK source="media_items" db=0.6ms idle=1175.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-02-08 13:00:01Z], 1] 16:45:23.605 [debug] QUERY OK source="media_items" db=1.9ms idle=1175.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=089\n\n📄\u00A0If you type the “@” symbol within Google Docs, you’ll now be able to access the HIDDEN menu! This is THE BEST Productivity Feature in Google Docs and in this video we’ll break down some use cases of this secret menu!\n\nThis new Google Docs feature is called Smart Chips and it’s part of the Smart Canvas update that was announced by Google during their Google I/O event. \n\nBasically, Google is bringing their different products across their Google Workspace offering together - Google Docs, Slides, Sheets, Calendar, Gmail, Keep, Tasks, etc. - and creating something that’s greater than the sum of its parts.\n\nWith this Smart Canvas update, Google Docs got access to these Smart Chips and as you will see in this video, one of the biggest benefits of using Smart Chips within Google Docs is that the Smart Chips are dynamic; if the title of a smart chip updates, that change will be made everywhere else (as opposed to a static hyperlink)\n\nTIMESTAMPS\n00:00 Google Doc’s Secret Feature\n00:27 Google’s Smart Canvas Update\n00:37 What is Google Docs Smart Chips\n01:09 Use Smart Chips in Repository Documents\n03:00 Use Smart Chips for Note-Taking\n04:01 How Smart Chips will Save You Time\n04:32 Automatically Create Table of Contents\n\nRESOURCES I MENTION IN THE VIDEO\nStand Out in the Workplace - https://youtu.be/7-xgf536_oc\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#google #docs #productivityatwork", "The BEST Productivity Feature in Google Docs!", "56fa0cec-1292-4ecd-980d-8c8258452098", false, "auYFCjU7pBA", 1, [], 332, false, "https://www.youtube.com/watch?v=auYFCjU7pBA", 113, "/downloads/Jeff Su/2022-02-08 The BEST Productivity Feature in Google Docs!/The BEST Productivity Feature in Google Docs! [auYFCjU7pBA].mp4", false, false, 99, ~U[2022-02-08 13:00:01Z], ~U[2026-04-23 14:45:23Z], ~U[2026-04-23 14:45:23Z], "🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=089\n\n📄\u00A0If you type the “@” symbol within Google Docs, you’ll now be able to access the HIDDEN menu! This is THE BEST Productivity Feature in Google Docs and in this video we’ll break down some use cases of this secret menu!\n\nThis new Google Docs feature is called Smart Chips and it’s part of the Smart Canvas update that was announced by Google during their Google I/O event. \n\nBasically, Google is bringing their different products across their Google Workspace offering together - Google Docs, Slides, Sheets, Calendar, Gmail, Keep, Tasks, etc. - and creating something that’s greater than the sum of its parts.\n\nWith this Smart Canvas update, Google Docs got access to these Smart Chips and as you will see in this video, one of the biggest benefits of using Smart Chips within Google Docs is that the Smart Chips are dynamic; if the title of a smart chip updates, that change will be made everywhere else (as opposed to a static hyperlink)\n\nTIMESTAMPS\n00:00 Google Doc’s Secret Feature\n00:27 Google’s Smart Canvas Update\n00:37 What is Google Docs Smart Chips\n01:09 Use Smart Chips in Repository Documents\n03:00 Use Smart Chips for Note-Taking\n04:01 How Smart Chips will Save You Time\n04:32 Automatically Create Table of Contents\n\nRESOURCES I MENTION IN THE VIDEO\nStand Out in the Workplace - https://youtu.be/7-xgf536_oc\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#google #docs #productivityatwork", "The BEST Productivity Feature in Google Docs!", "auYFCjU7pBA", 1, 332, false, "https://www.youtube.com/watch?v=auYFCjU7pBA", "/downloads/Jeff Su/2022-02-08 The BEST Productivity Feature in Google Docs!/The BEST Productivity Feature in Google Docs! [auYFCjU7pBA].mp4", false, ~U[2022-02-08 13:00:01Z]] 16:45:23.605 [debug] QUERY OK source="sources" db=0.3ms idle=403.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:45:23.606 [debug] QUERY OK source="media_profiles" db=0.7ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:23.608 [debug] QUERY OK source="media_items" db=0.9ms idle=6.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [113] 16:45:23.608 [info] Kicking off download for media item #113 (auYFCjU7pBA) 16:45:23.612 [debug] QUERY OK source="tasks" db=0.3ms idle=6.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [117, 113, ~U[2026-04-23 14:45:23Z], ~U[2026-04-23 14:45:23Z]] 16:45:23.612 [debug] Current batch of media processed. Will check again in 1000ms 16:45:24.612 [debug] Current batch of media processed. Will check again in 1000ms 16:45:25.613 [debug] Current batch of media processed. Will check again in 1000ms 16:45:26.344 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FypvQrwvENk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/28/5b/285b44fe7773d50989a26dc2589919e8aab9decfd4570ced1b08dcf5036fdb34.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:45:26.344 [debug] Running yt-dlp command for action: download 16:45:26.345 [debug] QUERY OK source="settings" db=0.3ms idle=1074.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:26.345 [debug] QUERY OK source="settings" db=0.2ms idle=1075.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:26.345 [debug] QUERY OK source="settings" db=0.2ms idle=1075.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:26.346 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FypvQrwvENk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bf/d2/bfd26b8cde515185bbdd2cf64739096fc4367fec8887d1fb3a2aedb43724f161.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:45:26.614 [debug] Current batch of media processed. Will check again in 1000ms 16:45:27.616 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=020\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🙋🏻\u00A0My top 5 go-to questions to ask the interviewers are as follows: \n\n1️⃣\u00A0I see you’re been at [ROLE] for the past [NUMBER OF] years, has your experience been what you expected?\n\n2️⃣\u00A0If you think back to a recent hire that impressed you, what characteristics did they have?\n\n3️⃣\u00A0What teams will I be working most closely with?\n\n4️⃣\u00A0How will my success be measured?\n\n5️⃣\u00A0Do you have any hesitations about hiring me?\n\nDid you know experienced interviewers usually leave 5-10 minutes at the end of the interview for you to ask questions ON PURPOSE?\n\nIn short, questions you ask the interviewer convey your (1) Enthusiasm for the role, (2) Critical thinking skills, and (3) Level of preparation. Not to mention it helps YOU screen your future employer!\n\nIn order to impress the interviewer(s), the answers to your questions can’t be easily found online and should be specific to the interviewer themselves. Furthermore, you also want to avoid coming off as robotic or overly-rehearsed since the interviewer might think you just memorized a bunch of questions and are asking for the sake of asking questions. \n\nTIMESTAMPS\n00:00 Ask the Interviewer Thoughtful Questions\n00:52 Ask about the interviewer\n01:55 Tell me about a recent hire\n02:24 Which teams will I be working with?\n02:56 How will my success be measured?\n03:24 Do you have any hesitations about hiring me?\n04:37 Key Takeaways\n\nRESOURCES I MENTION IN THE VIDEO\nCommon interview questions and answers playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#jobsearch #interview #offer", "duration" => 298, "filename" => "/downloads/Jeff Su/2022-02-01 5 Questions You MUST Ask During a Job Interview!/5 Questions You MUST Ask During a Job Interview! [P0sew9TBPJ0].mp4", "id" => "P0sew9TBPJ0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=P0sew9TBPJ0", "playlist_index" => 114, "timestamp" => 1643720409, "title" => "5 Questions You MUST Ask During a Job Interview!", "upload_date" => "20220201"} 16:45:27.618 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=1271.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:27.619 [debug] QUERY OK source="sources" db=0.9ms idle=1273.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:27.621 [debug] QUERY OK source="media_items" db=1.1ms idle=1274.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-02-01 13:00:09Z], 1] 16:45:27.625 [debug] QUERY OK source="media_items" db=2.4ms idle=409.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=020\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🙋🏻\u00A0My top 5 go-to questions to ask the interviewers are as follows: \n\n1️⃣\u00A0I see you’re been at [ROLE] for the past [NUMBER OF] years, has your experience been what you expected?\n\n2️⃣\u00A0If you think back to a recent hire that impressed you, what characteristics did they have?\n\n3️⃣\u00A0What teams will I be working most closely with?\n\n4️⃣\u00A0How will my success be measured?\n\n5️⃣\u00A0Do you have any hesitations about hiring me?\n\nDid you know experienced interviewers usually leave 5-10 minutes at the end of the interview for you to ask questions ON PURPOSE?\n\nIn short, questions you ask the interviewer convey your (1) Enthusiasm for the role, (2) Critical thinking skills, and (3) Level of preparation. Not to mention it helps YOU screen your future employer!\n\nIn order to impress the interviewer(s), the answers to your questions can’t be easily found online and should be specific to the interviewer themselves. Furthermore, you also want to avoid coming off as robotic or overly-rehearsed since the interviewer might think you just memorized a bunch of questions and are asking for the sake of asking questions. \n\nTIMESTAMPS\n00:00 Ask the Interviewer Thoughtful Questions\n00:52 Ask about the interviewer\n01:55 Tell me about a recent hire\n02:24 Which teams will I be working with?\n02:56 How will my success be measured?\n03:24 Do you have any hesitations about hiring me?\n04:37 Key Takeaways\n\nRESOURCES I MENTION IN THE VIDEO\nCommon interview questions and answers playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#jobsearch #interview #offer", "5 Questions You MUST Ask During a Job Interview!", "831290cb-c307-40b3-9d72-e64bf47e4cde", false, "P0sew9TBPJ0", 1, [], 298, false, "https://www.youtube.com/watch?v=P0sew9TBPJ0", 114, "/downloads/Jeff Su/2022-02-01 5 Questions You MUST Ask During a Job Interview!/5 Questions You MUST Ask During a Job Interview! [P0sew9TBPJ0].mp4", false, false, 99, ~U[2022-02-01 13:00:09Z], ~U[2026-04-23 14:45:27Z], ~U[2026-04-23 14:45:27Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=020\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🙋🏻\u00A0My top 5 go-to questions to ask the interviewers are as follows: \n\n1️⃣\u00A0I see you’re been at [ROLE] for the past [NUMBER OF] years, has your experience been what you expected?\n\n2️⃣\u00A0If you think back to a recent hire that impressed you, what characteristics did they have?\n\n3️⃣\u00A0What teams will I be working most closely with?\n\n4️⃣\u00A0How will my success be measured?\n\n5️⃣\u00A0Do you have any hesitations about hiring me?\n\nDid you know experienced interviewers usually leave 5-10 minutes at the end of the interview for you to ask questions ON PURPOSE?\n\nIn short, questions you ask the interviewer convey your (1) Enthusiasm for the role, (2) Critical thinking skills, and (3) Level of preparation. Not to mention it helps YOU screen your future employer!\n\nIn order to impress the interviewer(s), the answers to your questions can’t be easily found online and should be specific to the interviewer themselves. Furthermore, you also want to avoid coming off as robotic or overly-rehearsed since the interviewer might think you just memorized a bunch of questions and are asking for the sake of asking questions. \n\nTIMESTAMPS\n00:00 Ask the Interviewer Thoughtful Questions\n00:52 Ask about the interviewer\n01:55 Tell me about a recent hire\n02:24 Which teams will I be working with?\n02:56 How will my success be measured?\n03:24 Do you have any hesitations about hiring me?\n04:37 Key Takeaways\n\nRESOURCES I MENTION IN THE VIDEO\nCommon interview questions and answers playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#jobsearch #interview #offer", "5 Questions You MUST Ask During a Job Interview!", "P0sew9TBPJ0", 1, 298, false, "https://www.youtube.com/watch?v=P0sew9TBPJ0", "/downloads/Jeff Su/2022-02-01 5 Questions You MUST Ask During a Job Interview!/5 Questions You MUST Ask During a Job Interview! [P0sew9TBPJ0].mp4", false, ~U[2022-02-01 13:00:09Z]] 16:45:27.627 [debug] QUERY OK source="sources" db=1.5ms queue=0.2ms idle=355.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:27.628 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=9.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:27.629 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=9.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [114] 16:45:27.629 [info] Kicking off download for media item #114 (P0sew9TBPJ0) 16:45:27.634 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=6.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [118, 114, ~U[2026-04-23 14:45:27Z], ~U[2026-04-23 14:45:27Z]] 16:45:27.634 [debug] Current batch of media processed. Will check again in 1000ms 16:45:28.502 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FwOTs4UxQS4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6a/aa/6aaa58f0b066a100f32e88765b3594e3d2217877ef083007d095a7bd2ee2f2ab.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:45:28.503 [debug] Running yt-dlp command for action: download 16:45:28.503 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=873.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:28.503 [debug] QUERY OK source="settings" db=0.1ms idle=870.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:28.504 [debug] QUERY OK source="settings" db=0.1ms idle=870.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:28.504 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FwOTs4UxQS4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a4/28/a428c633a7681cd219ac9ebe2b121bac3a1c53d3c5f3a53602e4e1f42b57a212.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:45:28.635 [debug] Current batch of media processed. Will check again in 1000ms 16:45:29.636 [debug] Current batch of media processed. Will check again in 1000ms 16:45:30.637 [debug] Current batch of media processed. Will check again in 1000ms 16:45:31.639 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=087\n\n🔎\u00A0We all know how to use Google. Or do we?\n\nIn this video I go over the Top 14 Google Search Tips for Productivity including (but not limited to) search operators and hidden features!\n\nI like to use the related: search operator to find similar websites to the one I’m researching on, and I use the site: operator to search within a site for a specific piece of information\n\nWe can actually combine the site: and intitle: operators into something like site:bodybuilding.com and intitle:diet to really narrow down our search results within a specific website!\n\nIf you want information for a specific year, you can type in intitle:[year] [search term] or just use the Date Range feature to select a date...range.\n\nSearch operators I use almost every single day include “Exact Match,” “+keyword,” the Wildcard * Search Operator, and the “OR” Search Operator.\n\nHappy Googling!\n\nTIMESTAMPS\n00:00 Google and Netflix Similarities\n00:26 related: Search Operator\n00:43 site: Search Operator\n01:14 top-level domain country code\n01:50 intitle:infographic examples\n02:32 filetype:[extension] Search Operator\n03:31 intitle:[specific year] example\n04:04 Google Search date range Feature\n04:20 Find Images with Transparent Background\n04:45 Minus Search Operator\n05:05 -site:[website.com]\n05:38 Google Search Exact Match\n05:48 Wildcard Asterisk Search Operator\n05:57 Plus Google Search Operator\n06:19 OR Google Search Operator\n\nRESOURCES I MENTION IN THE VIDEO\nFind High Definition Icons for Free - https://youtu.be/5c9SapE_YNU\nWikipedia article - https://en.wikipedia.org/wiki/Country_code_top-level_domain#:~:text=A country code top-level,top-level domains are ccTLDs.\nFiletype Extensions - https://support.google.com/webmasters/answer/35287?hl=en\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#google #search #productivity", "duration" => 411, "filename" => "/downloads/Jeff Su/2022-01-25 14 Google Tips that will Save You Hundreds of Hours!/14 Google Tips that will Save You Hundreds of Hours! [DIuo_QL4sAQ].mp4", "id" => "DIuo_QL4sAQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DIuo_QL4sAQ", "playlist_index" => 115, "timestamp" => 1643115607, "title" => "14 Google Tips that will Save You Hundreds of Hours!", "upload_date" => "20220125"} 16:45:31.641 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=1369.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:31.641 [debug] QUERY OK source="sources" db=0.2ms idle=1371.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:31.642 [debug] QUERY OK source="media_items" db=0.8ms idle=1371.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-01-25 13:00:07Z], 1] 16:45:31.646 [debug] QUERY OK source="media_items" db=2.4ms idle=420.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=087\n\n🔎\u00A0We all know how to use Google. Or do we?\n\nIn this video I go over the Top 14 Google Search Tips for Productivity including (but not limited to) search operators and hidden features!\n\nI like to use the related: search operator to find similar websites to the one I’m researching on, and I use the site: operator to search within a site for a specific piece of information\n\nWe can actually combine the site: and intitle: operators into something like site:bodybuilding.com and intitle:diet to really narrow down our search results within a specific website!\n\nIf you want information for a specific year, you can type in intitle:[year] [search term] or just use the Date Range feature to select a date...range.\n\nSearch operators I use almost every single day include “Exact Match,” “+keyword,” the Wildcard * Search Operator, and the “OR” Search Operator.\n\nHappy Googling!\n\nTIMESTAMPS\n00:00 Google and Netflix Similarities\n00:26 related: Search Operator\n00:43 site: Search Operator\n01:14 top-level domain country code\n01:50 intitle:infographic examples\n02:32 filetype:[extension] Search Operator\n03:31 intitle:[specific year] example\n04:04 Google Search date range Feature\n04:20 Find Images with Transparent Background\n04:45 Minus Search Operator\n05:05 -site:[website.com]\n05:38 Google Search Exact Match\n05:48 Wildcard Asterisk Search Operator\n05:57 Plus Google Search Operator\n06:19 OR Google Search Operator\n\nRESOURCES I MENTION IN THE VIDEO\nFind High Definition Icons for Free - https://youtu.be/5c9SapE_YNU\nWikipedia article - https://en.wikipedia.org/wiki/Country_code_top-level_domain#:~:text=A country code top-level,top-level domains are ccTLDs.\nFiletype Extensions - https://support.google.com/webmasters/answer/35287?hl=en\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#google #search #productivity", "14 Google Tips that will Save You Hundreds of Hours!", "6768a473-e3cf-4731-87ce-4bc75f0214e2", false, "DIuo_QL4sAQ", 1, [], 411, false, "https://www.youtube.com/watch?v=DIuo_QL4sAQ", 115, "/downloads/Jeff Su/2022-01-25 14 Google Tips that will Save You Hundreds of Hours!/14 Google Tips that will Save You Hundreds of Hours! [DIuo_QL4sAQ].mp4", false, false, 99, ~U[2022-01-25 13:00:07Z], ~U[2026-04-23 14:45:31Z], ~U[2026-04-23 14:45:31Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=087\n\n🔎\u00A0We all know how to use Google. Or do we?\n\nIn this video I go over the Top 14 Google Search Tips for Productivity including (but not limited to) search operators and hidden features!\n\nI like to use the related: search operator to find similar websites to the one I’m researching on, and I use the site: operator to search within a site for a specific piece of information\n\nWe can actually combine the site: and intitle: operators into something like site:bodybuilding.com and intitle:diet to really narrow down our search results within a specific website!\n\nIf you want information for a specific year, you can type in intitle:[year] [search term] or just use the Date Range feature to select a date...range.\n\nSearch operators I use almost every single day include “Exact Match,” “+keyword,” the Wildcard * Search Operator, and the “OR” Search Operator.\n\nHappy Googling!\n\nTIMESTAMPS\n00:00 Google and Netflix Similarities\n00:26 related: Search Operator\n00:43 site: Search Operator\n01:14 top-level domain country code\n01:50 intitle:infographic examples\n02:32 filetype:[extension] Search Operator\n03:31 intitle:[specific year] example\n04:04 Google Search date range Feature\n04:20 Find Images with Transparent Background\n04:45 Minus Search Operator\n05:05 -site:[website.com]\n05:38 Google Search Exact Match\n05:48 Wildcard Asterisk Search Operator\n05:57 Plus Google Search Operator\n06:19 OR Google Search Operator\n\nRESOURCES I MENTION IN THE VIDEO\nFind High Definition Icons for Free - https://youtu.be/5c9SapE_YNU\nWikipedia article - https://en.wikipedia.org/wiki/Country_code_top-level_domain#:~:text=A country code top-level,top-level domains are ccTLDs.\nFiletype Extensions - https://support.google.com/webmasters/answer/35287?hl=en\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#google #search #productivity", "14 Google Tips that will Save You Hundreds of Hours!", "DIuo_QL4sAQ", 1, 411, false, "https://www.youtube.com/watch?v=DIuo_QL4sAQ", "/downloads/Jeff Su/2022-01-25 14 Google Tips that will Save You Hundreds of Hours!/14 Google Tips that will Save You Hundreds of Hours! [DIuo_QL4sAQ].mp4", false, ~U[2022-01-25 13:00:07Z]] 16:45:31.648 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=376.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:45:31.648 [debug] QUERY OK source="media_profiles" db=0.3ms idle=7.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:31.649 [debug] QUERY OK source="media_items" db=0.6ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [115] 16:45:31.649 [info] Kicking off download for media item #115 (DIuo_QL4sAQ) 16:45:31.652 [debug] QUERY OK source="tasks" db=0.2ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [119, 115, ~U[2026-04-23 14:45:31Z], ~U[2026-04-23 14:45:31Z]] 16:45:31.653 [debug] Current batch of media processed. Will check again in 1000ms 16:45:32.653 [debug] Current batch of media processed. Will check again in 1000ms 16:45:33.654 [debug] Current batch of media processed. Will check again in 1000ms 16:45:34.655 [debug] Current batch of media processed. Will check again in 1000ms 16:45:35.657 [debug] Current batch of media processed. Will check again in 1000ms 16:45:36.658 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=02\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤝\u00A0I started networking to land a summer internship at the start of my junior year (3rd year). I wish I had started 2 years earlier 😅\u00A0(when I was a fresher / 1st year)\n\nNetworking is honestly an essential life skill that will stay with us throughout our entire life so here I share 5 extremely effective networking tips for students who have 0 working experience 💯\n\nToo often we think networking only takes place during career fairs or job fairs, but networking actually takes on many forms. Networking is basically relationship building so even having a good relationship with your college professors (who actually have a HUGE network by default if you think about it) is a type of networking\n\nIn my opinion the easiest networking tip by FAR is to leverage your alumni database. Everyone has received help at some point in their career and most people are looking for a chance to pay it back!\n\nTIMESTAMPS\n00:00 Why Networking is Important for Students\n00:27 Leverage Your Alumni Database\n01:47 Leverage Your College Professors\n02:54 Attend Networking Events\n04:12 Write Effective Cold Emails\n05:15 Continue Branching Out\n06:03 Prepare Your LinkedIn Profile\n\nRESOURCES I MENTION IN THE VIDEO\nMy Cold Email template - https://www.jeffsu.org/cold-email-template\nBest Questions to ask During Coffee Chats and Informational Interviews - https://www.youtube.com/watch?v=4b2iagdHw8M\nMeetup - https://www.meetup.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#networking101 #business #jobsearch", "duration" => 384, "filename" => "/downloads/Jeff Su/2022-01-18 How to Network with ZERO Working Experience!/How to Network with ZERO Working Experience! [AA4lVbiRlGw].mp4", "id" => "AA4lVbiRlGw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=AA4lVbiRlGw", "playlist_index" => 116, "timestamp" => 1642510809, "title" => "How to Network with ZERO Working Experience!", "upload_date" => "20220118"} 16:45:36.660 [debug] QUERY OK source="sources" db=1.2ms idle=1388.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:36.660 [debug] QUERY OK source="sources" db=0.2ms idle=1390.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:36.661 [debug] QUERY OK source="media_items" db=0.5ms idle=1390.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-01-18 13:00:09Z], 1] 16:45:36.665 [debug] QUERY OK source="media_items" db=2.3ms queue=0.1ms idle=1391.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=02\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤝\u00A0I started networking to land a summer internship at the start of my junior year (3rd year). I wish I had started 2 years earlier 😅\u00A0(when I was a fresher / 1st year)\n\nNetworking is honestly an essential life skill that will stay with us throughout our entire life so here I share 5 extremely effective networking tips for students who have 0 working experience 💯\n\nToo often we think networking only takes place during career fairs or job fairs, but networking actually takes on many forms. Networking is basically relationship building so even having a good relationship with your college professors (who actually have a HUGE network by default if you think about it) is a type of networking\n\nIn my opinion the easiest networking tip by FAR is to leverage your alumni database. Everyone has received help at some point in their career and most people are looking for a chance to pay it back!\n\nTIMESTAMPS\n00:00 Why Networking is Important for Students\n00:27 Leverage Your Alumni Database\n01:47 Leverage Your College Professors\n02:54 Attend Networking Events\n04:12 Write Effective Cold Emails\n05:15 Continue Branching Out\n06:03 Prepare Your LinkedIn Profile\n\nRESOURCES I MENTION IN THE VIDEO\nMy Cold Email template - https://www.jeffsu.org/cold-email-template\nBest Questions to ask During Coffee Chats and Informational Interviews - https://www.youtube.com/watch?v=4b2iagdHw8M\nMeetup - https://www.meetup.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#networking101 #business #jobsearch", "How to Network with ZERO Working Experience!", "78962879-c3ef-4e61-9177-c3836ff19a6f", false, "AA4lVbiRlGw", 1, [], 384, false, "https://www.youtube.com/watch?v=AA4lVbiRlGw", 116, "/downloads/Jeff Su/2022-01-18 How to Network with ZERO Working Experience!/How to Network with ZERO Working Experience! [AA4lVbiRlGw].mp4", false, false, 99, ~U[2022-01-18 13:00:09Z], ~U[2026-04-23 14:45:36Z], ~U[2026-04-23 14:45:36Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=02\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤝\u00A0I started networking to land a summer internship at the start of my junior year (3rd year). I wish I had started 2 years earlier 😅\u00A0(when I was a fresher / 1st year)\n\nNetworking is honestly an essential life skill that will stay with us throughout our entire life so here I share 5 extremely effective networking tips for students who have 0 working experience 💯\n\nToo often we think networking only takes place during career fairs or job fairs, but networking actually takes on many forms. Networking is basically relationship building so even having a good relationship with your college professors (who actually have a HUGE network by default if you think about it) is a type of networking\n\nIn my opinion the easiest networking tip by FAR is to leverage your alumni database. Everyone has received help at some point in their career and most people are looking for a chance to pay it back!\n\nTIMESTAMPS\n00:00 Why Networking is Important for Students\n00:27 Leverage Your Alumni Database\n01:47 Leverage Your College Professors\n02:54 Attend Networking Events\n04:12 Write Effective Cold Emails\n05:15 Continue Branching Out\n06:03 Prepare Your LinkedIn Profile\n\nRESOURCES I MENTION IN THE VIDEO\nMy Cold Email template - https://www.jeffsu.org/cold-email-template\nBest Questions to ask During Coffee Chats and Informational Interviews - https://www.youtube.com/watch?v=4b2iagdHw8M\nMeetup - https://www.meetup.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#networking101 #business #jobsearch", "How to Network with ZERO Working Experience!", "AA4lVbiRlGw", 1, 384, false, "https://www.youtube.com/watch?v=AA4lVbiRlGw", "/downloads/Jeff Su/2022-01-18 How to Network with ZERO Working Experience!/How to Network with ZERO Working Experience! [AA4lVbiRlGw].mp4", false, ~U[2022-01-18 13:00:09Z]] 16:45:36.665 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=433.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:45:36.666 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:36.666 [debug] QUERY OK source="media_items" db=0.3ms idle=5.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [116] 16:45:36.667 [info] Kicking off download for media item #116 (AA4lVbiRlGw) 16:45:36.670 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [120, 116, ~U[2026-04-23 14:45:36Z], ~U[2026-04-23 14:45:36Z]] 16:45:36.670 [debug] Current batch of media processed. Will check again in 1000ms 16:45:37.670 [debug] Current batch of media processed. Will check again in 1000ms 16:45:38.671 [debug] Current batch of media processed. Will check again in 1000ms 16:45:39.672 [debug] Current batch of media processed. Will check again in 1000ms 16:45:40.674 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🥱\u00A0Attention spans during presentations MAX OUT at 10 minutes, so how do you stop the audience from tuning out 20 seconds into yours?\n\nIn this video I’ll show you 3 FREE Tools to Create ENGAGING Presentations that will hook your audience in right at the start, keep them engaged throughout, and leave them wanting more at the end. \n\nAt the beginning of my presentations, I like to poll the audience using Mentimeter. I try my best to ask some funny “punny” questions to lighten the mood and get in some quick laughs right at the beginning\n\nDuring the presentation, I usually leave a Sli.do QR code on my slides so the audience can leave their questions within the Q&A queue. This way, they won’t interrupt me during the presentation nor will they forget the questions they wanted to ask\n\nAt the end, I like to use Kahoot to quiz the audience to see whether or not they’ve been paying attention. Kahoot has been around for a while now and has evolved quite a bit over the past few years but I still use it for its game / quiz / competition features 🎮\n\nTIMESTAMPS\n00:00 Why Your Presentations are BORING\n00:38 How to Create Engaging Presentations\n00:59 Tool #1 - Mentimeter\n03:04 Tool #2 - Sli.do\n05:10 Tool #3 - Kahoot\n\nRESOURCES I MENTION IN THE VIDEO\nMentimeter - https://www.mentimeter.com/\nSli.do - https://www.sli.do/\nKahoot - https://kahoot.com/\n7 Data Storytelling Tips to Improve Your Presentations - https://youtu.be/jizZKNnx9wA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentation #attention #productivityatwork", "duration" => 424, "filename" => "/downloads/Jeff Su/2022-01-11 3 FREE Tools to Create ENGAGING Presentations!/3 FREE Tools to Create ENGAGING Presentations! [Fq1Yb4kepLo].mp4", "id" => "Fq1Yb4kepLo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Fq1Yb4kepLo", "playlist_index" => 117, "timestamp" => 1641906010, "title" => "3 FREE Tools to Create ENGAGING Presentations!", "upload_date" => "20220111"} 16:45:40.675 [debug] QUERY OK source="sources" db=0.3ms idle=434.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:40.675 [debug] QUERY OK source="sources" db=0.2ms idle=405.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:40.676 [debug] QUERY OK source="media_items" db=0.6ms idle=405.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-01-11 13:00:10Z], 1] 16:45:40.679 [debug] QUERY OK source="media_items" db=2.0ms idle=406.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🥱\u00A0Attention spans during presentations MAX OUT at 10 minutes, so how do you stop the audience from tuning out 20 seconds into yours?\n\nIn this video I’ll show you 3 FREE Tools to Create ENGAGING Presentations that will hook your audience in right at the start, keep them engaged throughout, and leave them wanting more at the end. \n\nAt the beginning of my presentations, I like to poll the audience using Mentimeter. I try my best to ask some funny “punny” questions to lighten the mood and get in some quick laughs right at the beginning\n\nDuring the presentation, I usually leave a Sli.do QR code on my slides so the audience can leave their questions within the Q&A queue. This way, they won’t interrupt me during the presentation nor will they forget the questions they wanted to ask\n\nAt the end, I like to use Kahoot to quiz the audience to see whether or not they’ve been paying attention. Kahoot has been around for a while now and has evolved quite a bit over the past few years but I still use it for its game / quiz / competition features 🎮\n\nTIMESTAMPS\n00:00 Why Your Presentations are BORING\n00:38 How to Create Engaging Presentations\n00:59 Tool #1 - Mentimeter\n03:04 Tool #2 - Sli.do\n05:10 Tool #3 - Kahoot\n\nRESOURCES I MENTION IN THE VIDEO\nMentimeter - https://www.mentimeter.com/\nSli.do - https://www.sli.do/\nKahoot - https://kahoot.com/\n7 Data Storytelling Tips to Improve Your Presentations - https://youtu.be/jizZKNnx9wA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentation #attention #productivityatwork", "3 FREE Tools to Create ENGAGING Presentations!", "a7e9fdd1-8530-4cd2-8a5e-67de245e1e0f", false, "Fq1Yb4kepLo", 1, [], 424, false, "https://www.youtube.com/watch?v=Fq1Yb4kepLo", 117, "/downloads/Jeff Su/2022-01-11 3 FREE Tools to Create ENGAGING Presentations!/3 FREE Tools to Create ENGAGING Presentations! [Fq1Yb4kepLo].mp4", false, false, 99, ~U[2022-01-11 13:00:10Z], ~U[2026-04-23 14:45:40Z], ~U[2026-04-23 14:45:40Z], "🥱\u00A0Attention spans during presentations MAX OUT at 10 minutes, so how do you stop the audience from tuning out 20 seconds into yours?\n\nIn this video I’ll show you 3 FREE Tools to Create ENGAGING Presentations that will hook your audience in right at the start, keep them engaged throughout, and leave them wanting more at the end. \n\nAt the beginning of my presentations, I like to poll the audience using Mentimeter. I try my best to ask some funny “punny” questions to lighten the mood and get in some quick laughs right at the beginning\n\nDuring the presentation, I usually leave a Sli.do QR code on my slides so the audience can leave their questions within the Q&A queue. This way, they won’t interrupt me during the presentation nor will they forget the questions they wanted to ask\n\nAt the end, I like to use Kahoot to quiz the audience to see whether or not they’ve been paying attention. Kahoot has been around for a while now and has evolved quite a bit over the past few years but I still use it for its game / quiz / competition features 🎮\n\nTIMESTAMPS\n00:00 Why Your Presentations are BORING\n00:38 How to Create Engaging Presentations\n00:59 Tool #1 - Mentimeter\n03:04 Tool #2 - Sli.do\n05:10 Tool #3 - Kahoot\n\nRESOURCES I MENTION IN THE VIDEO\nMentimeter - https://www.mentimeter.com/\nSli.do - https://www.sli.do/\nKahoot - https://kahoot.com/\n7 Data Storytelling Tips to Improve Your Presentations - https://youtu.be/jizZKNnx9wA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentation #attention #productivityatwork", "3 FREE Tools to Create ENGAGING Presentations!", "Fq1Yb4kepLo", 1, 424, false, "https://www.youtube.com/watch?v=Fq1Yb4kepLo", "/downloads/Jeff Su/2022-01-11 3 FREE Tools to Create ENGAGING Presentations!/3 FREE Tools to Create ENGAGING Presentations! [Fq1Yb4kepLo].mp4", false, ~U[2022-01-11 13:00:10Z]] 16:45:40.681 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=410.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:45:40.682 [debug] QUERY OK source="media_profiles" db=0.9ms 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] 16:45:40.683 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=7.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [117] 16:45:40.683 [info] Kicking off download for media item #117 (Fq1Yb4kepLo) 16:45:40.687 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=6.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [121, 117, ~U[2026-04-23 14:45:40Z], ~U[2026-04-23 14:45:40Z]] 16:45:40.688 [debug] Current batch of media processed. Will check again in 1000ms 16:45:41.688 [debug] Current batch of media processed. Will check again in 1000ms 16:45:42.689 [debug] Current batch of media processed. Will check again in 1000ms 16:45:43.690 [debug] Current batch of media processed. Will check again in 1000ms 16:45:44.692 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=08\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤕\u00A0”Tell me about your biggest weakness” isn’t actually designed to tease out a weakness of yours. Your answer to this tricky interview question is supposed to (1) Highlight how self-aware you are, (2) Show you are able to share a workplace-relevant weakness, and (3) Prove that you are taking concrete steps to improve yourself!\n\nBecause of those reasons, the best way to answer the “what is your greatest weakness” interview question is to highlight a skill expected of someone more senior than you, since you’re not “supposed” to have that skill anyways!\n\nIf you’re interviewing for a more junior role and you get asked “What is your biggest weakness,” a safe answer might be something like “strategic thinking” since that’s a skill generally expected of a people manager (i.e. someone more senior)\n\nI also include a sample answer I used to get into management consulting and product marketing in this video so you can reference it the next time you are preparing for interviews\n\nGood luck! 😁\n\nTIMESTAMPS\n00:00 What is Your Biggest Weakness?\n00:30 Avoid Dealbreaker Weaknesses\n01:20 Mention a Skill found in someone senior\n02:35 Give a Concrete Example \n03:05 Use CARL instead of STAR Method\n03:23 Sample Answer for Greatest Weakness Question\n04:41 Why This Method Works\n\nRESOURCES I MENTION IN THE VIDEO\nHow to Ace Behavioral Interviews - https://youtu.be/gZ2354BH0a0\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#biggestweakness #greatestweakness #interviews", "duration" => 304, "filename" => "/downloads/Jeff Su/2022-01-04 What is Your Biggest Weakness? (Ace this Interview Question!)/What is Your Biggest Weakness? (Ace this Interview Question!) [6ehslpTtlEo].mp4", "id" => "6ehslpTtlEo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6ehslpTtlEo", "playlist_index" => 118, "timestamp" => 1641301203, "title" => "What is Your Biggest Weakness? (Ace this Interview Question!)", "upload_date" => "20220104"} 16:45:44.693 [debug] QUERY OK source="sources" db=0.3ms queue=0.2ms idle=444.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:44.694 [debug] QUERY OK source="sources" db=0.2ms idle=423.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:44.694 [debug] QUERY OK source="media_items" db=0.6ms idle=424.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-01-04 13:00:03Z], 1] 16:45:44.703 [debug] QUERY OK source="media_items" db=7.7ms idle=425.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=08\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤕\u00A0”Tell me about your biggest weakness” isn’t actually designed to tease out a weakness of yours. Your answer to this tricky interview question is supposed to (1) Highlight how self-aware you are, (2) Show you are able to share a workplace-relevant weakness, and (3) Prove that you are taking concrete steps to improve yourself!\n\nBecause of those reasons, the best way to answer the “what is your greatest weakness” interview question is to highlight a skill expected of someone more senior than you, since you’re not “supposed” to have that skill anyways!\n\nIf you’re interviewing for a more junior role and you get asked “What is your biggest weakness,” a safe answer might be something like “strategic thinking” since that’s a skill generally expected of a people manager (i.e. someone more senior)\n\nI also include a sample answer I used to get into management consulting and product marketing in this video so you can reference it the next time you are preparing for interviews\n\nGood luck! 😁\n\nTIMESTAMPS\n00:00 What is Your Biggest Weakness?\n00:30 Avoid Dealbreaker Weaknesses\n01:20 Mention a Skill found in someone senior\n02:35 Give a Concrete Example \n03:05 Use CARL instead of STAR Method\n03:23 Sample Answer for Greatest Weakness Question\n04:41 Why This Method Works\n\nRESOURCES I MENTION IN THE VIDEO\nHow to Ace Behavioral Interviews - https://youtu.be/gZ2354BH0a0\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#biggestweakness #greatestweakness #interviews", "What is Your Biggest Weakness? (Ace this Interview Question!)", "3374c22c-12a9-40ad-a9ea-bead92dc9ae9", false, "6ehslpTtlEo", 1, [], 304, false, "https://www.youtube.com/watch?v=6ehslpTtlEo", 118, "/downloads/Jeff Su/2022-01-04 What is Your Biggest Weakness? (Ace this Interview Question!)/What is Your Biggest Weakness? (Ace this Interview Question!) [6ehslpTtlEo].mp4", false, false, 99, ~U[2022-01-04 13:00:03Z], ~U[2026-04-23 14:45:44Z], ~U[2026-04-23 14:45:44Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=08\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤕\u00A0”Tell me about your biggest weakness” isn’t actually designed to tease out a weakness of yours. Your answer to this tricky interview question is supposed to (1) Highlight how self-aware you are, (2) Show you are able to share a workplace-relevant weakness, and (3) Prove that you are taking concrete steps to improve yourself!\n\nBecause of those reasons, the best way to answer the “what is your greatest weakness” interview question is to highlight a skill expected of someone more senior than you, since you’re not “supposed” to have that skill anyways!\n\nIf you’re interviewing for a more junior role and you get asked “What is your biggest weakness,” a safe answer might be something like “strategic thinking” since that’s a skill generally expected of a people manager (i.e. someone more senior)\n\nI also include a sample answer I used to get into management consulting and product marketing in this video so you can reference it the next time you are preparing for interviews\n\nGood luck! 😁\n\nTIMESTAMPS\n00:00 What is Your Biggest Weakness?\n00:30 Avoid Dealbreaker Weaknesses\n01:20 Mention a Skill found in someone senior\n02:35 Give a Concrete Example \n03:05 Use CARL instead of STAR Method\n03:23 Sample Answer for Greatest Weakness Question\n04:41 Why This Method Works\n\nRESOURCES I MENTION IN THE VIDEO\nHow to Ace Behavioral Interviews - https://youtu.be/gZ2354BH0a0\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#biggestweakness #greatestweakness #interviews", "What is Your Biggest Weakness? (Ace this Interview Question!)", "6ehslpTtlEo", 1, 304, false, "https://www.youtube.com/watch?v=6ehslpTtlEo", "/downloads/Jeff Su/2022-01-04 What is Your Biggest Weakness? (Ace this Interview Question!)/What is Your Biggest Weakness? (Ace this Interview Question!) [6ehslpTtlEo].mp4", false, ~U[2022-01-04 13:00:03Z]] 16:45:44.704 [debug] QUERY OK source="sources" db=0.3ms idle=434.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:45:44.705 [debug] QUERY OK source="media_profiles" db=0.2ms idle=11.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:44.705 [debug] QUERY OK source="media_items" db=0.3ms idle=11.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [118] 16:45:44.705 [info] Kicking off download for media item #118 (6ehslpTtlEo) 16:45:44.708 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=3.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [122, 118, ~U[2026-04-23 14:45:44Z], ~U[2026-04-23 14:45:44Z]] 16:45:44.708 [debug] Current batch of media processed. Will check again in 1000ms 16:45:45.709 [debug] Current batch of media processed. Will check again in 1000ms 16:45:46.710 [debug] Current batch of media processed. Will check again in 1000ms 16:45:47.711 [debug] Current batch of media processed. Will check again in 1000ms 16:45:48.268 [info] {"source":"oban","duration":917,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:45:48.713 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🤔\u00A0What’s better than sharing too many personal details with strangers on the internet?\n\nOversharing AND saving our oceans at the same time 😁\n\n🌊\u00A0Save our oceans! Learn more below 👇🏻\nOcean Conservancy: https://oceanconservancy.org/\nThe Ocean Cleanup: https://theoceancleanup.com\nMrBeast’s #teamseas video: https://www.youtube.com/watch?v=cV2gBU6hKfY=\nMark Rober’s #teamseas video: https://www.youtube.com/watch?v=pXDx6DjNLDU\n\nTIMESTAMPS\n00:00 Answering Your Assumptions\n00:18 Donating to #teamseas\n00:51 Age & Appearance\n01:28 Childhood\n03:16 Personality\n06:23 Relationships & Sexual Orientation\n10:03 Miscellaneous\n11:26 What is #teamseas?\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#teamseas", "duration" => 737, "filename" => "/downloads/Jeff Su/2021-12-28 Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas)/Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas) [kPbaFI-_dN4].mp4", "id" => "kPbaFI-_dN4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=kPbaFI-_dN4", "playlist_index" => 119, "timestamp" => 1640696433, "title" => "Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas)", "upload_date" => "20211228"} 16:45:48.714 [debug] QUERY OK source="sources" db=0.3ms idle=457.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:48.714 [debug] QUERY OK source="sources" db=0.2ms idle=445.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:48.715 [debug] QUERY OK source="media_items" db=0.5ms idle=444.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-12-28 13:00:33Z], 1] 16:45:48.718 [debug] QUERY OK source="media_items" db=1.7ms idle=445.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🤔\u00A0What’s better than sharing too many personal details with strangers on the internet?\n\nOversharing AND saving our oceans at the same time 😁\n\n🌊\u00A0Save our oceans! Learn more below 👇🏻\nOcean Conservancy: https://oceanconservancy.org/\nThe Ocean Cleanup: https://theoceancleanup.com\nMrBeast’s #teamseas video: https://www.youtube.com/watch?v=cV2gBU6hKfY=\nMark Rober’s #teamseas video: https://www.youtube.com/watch?v=pXDx6DjNLDU\n\nTIMESTAMPS\n00:00 Answering Your Assumptions\n00:18 Donating to #teamseas\n00:51 Age & Appearance\n01:28 Childhood\n03:16 Personality\n06:23 Relationships & Sexual Orientation\n10:03 Miscellaneous\n11:26 What is #teamseas?\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#teamseas", "Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas)", "d763dac0-5726-4d2d-8ab1-14e0e89e3f76", false, "kPbaFI-_dN4", 1, [], 737, false, "https://www.youtube.com/watch?v=kPbaFI-_dN4", 119, "/downloads/Jeff Su/2021-12-28 Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas)/Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas) [kPbaFI-_dN4].mp4", false, false, 99, ~U[2021-12-28 13:00:33Z], ~U[2026-04-23 14:45:48Z], ~U[2026-04-23 14:45:48Z], "🤔\u00A0What’s better than sharing too many personal details with strangers on the internet?\n\nOversharing AND saving our oceans at the same time 😁\n\n🌊\u00A0Save our oceans! Learn more below 👇🏻\nOcean Conservancy: https://oceanconservancy.org/\nThe Ocean Cleanup: https://theoceancleanup.com\nMrBeast’s #teamseas video: https://www.youtube.com/watch?v=cV2gBU6hKfY=\nMark Rober’s #teamseas video: https://www.youtube.com/watch?v=pXDx6DjNLDU\n\nTIMESTAMPS\n00:00 Answering Your Assumptions\n00:18 Donating to #teamseas\n00:51 Age & Appearance\n01:28 Childhood\n03:16 Personality\n06:23 Relationships & Sexual Orientation\n10:03 Miscellaneous\n11:26 What is #teamseas?\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#teamseas", "Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas)", "kPbaFI-_dN4", 1, 737, false, "https://www.youtube.com/watch?v=kPbaFI-_dN4", "/downloads/Jeff Su/2021-12-28 Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas)/Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas) [kPbaFI-_dN4].mp4", false, ~U[2021-12-28 13:00:33Z]] 16:45:48.720 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=448.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:45:48.720 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:48.721 [debug] QUERY OK source="media_items" db=0.3ms 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 [119] 16:45:48.721 [info] Kicking off download for media item #119 (kPbaFI-_dN4) 16:45:48.724 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=4.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [123, 119, ~U[2026-04-23 14:45:48Z], ~U[2026-04-23 14:45:48Z]] 16:45:48.724 [debug] Current batch of media processed. Will check again in 1000ms 16:45:49.726 [debug] Current batch of media processed. Will check again in 1000ms 16:45:50.681 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FwOTs4UxQS4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a4/28/a428c633a7681cd219ac9ebe2b121bac3a1c53d3c5f3a53602e4e1f42b57a212.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:45:50.723 [debug] Running yt-dlp command for action: download_thumbnail 16:45:50.724 [debug] QUERY OK source="settings" db=0.3ms idle=462.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:50.725 [debug] QUERY OK source="settings" db=0.3ms idle=455.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:50.725 [debug] QUERY OK source="settings" db=0.1ms idle=455.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:50.726 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FwOTs4UxQS4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/26/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a7/77/a777b4cc44b40909e2301038a2fca203d225139497b101798be3a04dcc747946.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:45:50.727 [debug] Current batch of media processed. Will check again in 1000ms 16:45:51.728 [debug] Current batch of media processed. Will check again in 1000ms 16:45:52.649 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FypvQrwvENk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bf/d2/bfd26b8cde515185bbdd2cf64739096fc4367fec8887d1fb3a2aedb43724f161.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:45:52.686 [debug] Running yt-dlp command for action: download_thumbnail 16:45:52.687 [debug] QUERY OK source="settings" db=0.2ms idle=421.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:52.688 [debug] QUERY OK source="settings" db=0.1ms idle=418.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:52.688 [debug] QUERY OK source="settings" db=0.1ms idle=418.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:52.688 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FypvQrwvENk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/25/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/df/bd/dfbd0bf2623822d56a72479ff52c6c369907f87dfb30e301f5a65304ff206b4b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:45:52.730 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🧑🏻\u200D🎨\u00A0Sign up for Canva here: https://partner.canva.com/jeffsu\n\nDownload designs from this video: https://partner.canva.com/P0BYgX\n\nIn this video, I share my Top 15 Canva Tips for Productivity! Whether you're a beginner or intermediate Canva user, you should be able to pick up a new trick or two!\n\nWe all love Canva because it's a fairly simple and intuitive tool, but that doesn't mean we shouldn't utilize some Canva tips, tricks, and hacks to increase our efficiency and productivity with this awesome platform!\n\nIn this easy Canva tutorial, I show you step-by-step how to achieve some seemingly crazy effects (for example the Thanos disintegration or dust particle effect) with simple features and functions that come with the free version of Canva.\n\nOf course, since Canva is changing so much, I'll also share the most up to date (i.e. new) features that they've pushed out recently!\n\nTIMESTAMPS\n00:00 Show Photo Color in Canva\n00:45 Top 15 Canva Tips for Productivity\n01:02 Blur Design Background\n01:26 Add White Outline to Image\n02:06 Thanos Dust Particle Effect\n02:42 Duplicate Element in Canva\n03:06 Group Elements in Canva\n03:47 Select Layers in Canva\n04:06 Useful Keyboard Shortcuts in Canva\n04:24 Smart Mockups in Canva\n05:02 Import PDFs into Canva\n05:35 Create Business Cards in Canva\n06:50 Canva’s Font Pairing Guide\n06:59 Canva’s Color Wheel Tool\n07:21 Remove Background with Canva\n07:33 Download with Transparent Background\n07:50 Canva’s Eyedropper Color Tool\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Outstanding Resume - https://youtu.be/Tt08KmFfIYQ\nCanva’s Font Pairing Guide: https://www.canva.com/learn/the-ultimate-guide-to-font-pairing/\nCanva Color Wheel Tool: https://www.canva.com/colors/color-wheel/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#canvalove #design #productivity", "duration" => 505, "filename" => "/downloads/Jeff Su/2021-12-21 Top 15 Canva Tips for Productivity!/Top 15 Canva Tips for Productivity! [2XqSMu9KVY0].mp4", "id" => "2XqSMu9KVY0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2XqSMu9KVY0", "playlist_index" => 120, "timestamp" => 1640093400, "title" => "Top 15 Canva Tips for Productivity!", "upload_date" => "20211221"} 16:45:52.731 [debug] QUERY OK source="sources" db=0.2ms idle=460.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:45:52.731 [debug] QUERY OK source="sources" db=0.1ms idle=461.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:52.732 [debug] QUERY OK source="media_items" db=0.5ms idle=44.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-12-21 13:30:00Z], 1] 16:45:52.735 [debug] QUERY OK source="media_items" db=1.8ms idle=44.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🧑🏻\u200D🎨\u00A0Sign up for Canva here: https://partner.canva.com/jeffsu\n\nDownload designs from this video: https://partner.canva.com/P0BYgX\n\nIn this video, I share my Top 15 Canva Tips for Productivity! Whether you're a beginner or intermediate Canva user, you should be able to pick up a new trick or two!\n\nWe all love Canva because it's a fairly simple and intuitive tool, but that doesn't mean we shouldn't utilize some Canva tips, tricks, and hacks to increase our efficiency and productivity with this awesome platform!\n\nIn this easy Canva tutorial, I show you step-by-step how to achieve some seemingly crazy effects (for example the Thanos disintegration or dust particle effect) with simple features and functions that come with the free version of Canva.\n\nOf course, since Canva is changing so much, I'll also share the most up to date (i.e. new) features that they've pushed out recently!\n\nTIMESTAMPS\n00:00 Show Photo Color in Canva\n00:45 Top 15 Canva Tips for Productivity\n01:02 Blur Design Background\n01:26 Add White Outline to Image\n02:06 Thanos Dust Particle Effect\n02:42 Duplicate Element in Canva\n03:06 Group Elements in Canva\n03:47 Select Layers in Canva\n04:06 Useful Keyboard Shortcuts in Canva\n04:24 Smart Mockups in Canva\n05:02 Import PDFs into Canva\n05:35 Create Business Cards in Canva\n06:50 Canva’s Font Pairing Guide\n06:59 Canva’s Color Wheel Tool\n07:21 Remove Background with Canva\n07:33 Download with Transparent Background\n07:50 Canva’s Eyedropper Color Tool\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Outstanding Resume - https://youtu.be/Tt08KmFfIYQ\nCanva’s Font Pairing Guide: https://www.canva.com/learn/the-ultimate-guide-to-font-pairing/\nCanva Color Wheel Tool: https://www.canva.com/colors/color-wheel/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#canvalove #design #productivity", "Top 15 Canva Tips for Productivity!", "51438235-4ecd-4535-8be0-a139dd8064b7", false, "2XqSMu9KVY0", 1, [], 505, false, "https://www.youtube.com/watch?v=2XqSMu9KVY0", 120, "/downloads/Jeff Su/2021-12-21 Top 15 Canva Tips for Productivity!/Top 15 Canva Tips for Productivity! [2XqSMu9KVY0].mp4", false, false, 99, ~U[2021-12-21 13:30:00Z], ~U[2026-04-23 14:45:52Z], ~U[2026-04-23 14:45:52Z], "🧑🏻\u200D🎨\u00A0Sign up for Canva here: https://partner.canva.com/jeffsu\n\nDownload designs from this video: https://partner.canva.com/P0BYgX\n\nIn this video, I share my Top 15 Canva Tips for Productivity! Whether you're a beginner or intermediate Canva user, you should be able to pick up a new trick or two!\n\nWe all love Canva because it's a fairly simple and intuitive tool, but that doesn't mean we shouldn't utilize some Canva tips, tricks, and hacks to increase our efficiency and productivity with this awesome platform!\n\nIn this easy Canva tutorial, I show you step-by-step how to achieve some seemingly crazy effects (for example the Thanos disintegration or dust particle effect) with simple features and functions that come with the free version of Canva.\n\nOf course, since Canva is changing so much, I'll also share the most up to date (i.e. new) features that they've pushed out recently!\n\nTIMESTAMPS\n00:00 Show Photo Color in Canva\n00:45 Top 15 Canva Tips for Productivity\n01:02 Blur Design Background\n01:26 Add White Outline to Image\n02:06 Thanos Dust Particle Effect\n02:42 Duplicate Element in Canva\n03:06 Group Elements in Canva\n03:47 Select Layers in Canva\n04:06 Useful Keyboard Shortcuts in Canva\n04:24 Smart Mockups in Canva\n05:02 Import PDFs into Canva\n05:35 Create Business Cards in Canva\n06:50 Canva’s Font Pairing Guide\n06:59 Canva’s Color Wheel Tool\n07:21 Remove Background with Canva\n07:33 Download with Transparent Background\n07:50 Canva’s Eyedropper Color Tool\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Outstanding Resume - https://youtu.be/Tt08KmFfIYQ\nCanva’s Font Pairing Guide: https://www.canva.com/learn/the-ultimate-guide-to-font-pairing/\nCanva Color Wheel Tool: https://www.canva.com/colors/color-wheel/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#canvalove #design #productivity", "Top 15 Canva Tips for Productivity!", "2XqSMu9KVY0", 1, 505, false, "https://www.youtube.com/watch?v=2XqSMu9KVY0", "/downloads/Jeff Su/2021-12-21 Top 15 Canva Tips for Productivity!/Top 15 Canva Tips for Productivity! [2XqSMu9KVY0].mp4", false, ~U[2021-12-21 13:30:00Z]] 16:45:52.735 [debug] QUERY OK source="sources" db=0.3ms idle=47.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:45:52.736 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:52.737 [debug] QUERY OK source="media_items" db=0.5ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [120] 16:45:52.737 [info] Kicking off download for media item #120 (2XqSMu9KVY0) 16:45:52.741 [debug] QUERY OK source="tasks" db=0.2ms idle=4.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [124, 120, ~U[2026-04-23 14:45:52Z], ~U[2026-04-23 14:45:52Z]] 16:45:52.741 [debug] Current batch of media processed. Will check again in 1000ms 16:45:53.741 [debug] Current batch of media processed. Will check again in 1000ms 16:45:54.742 [debug] Current batch of media processed. Will check again in 1000ms 16:45:55.743 [debug] Current batch of media processed. Will check again in 1000ms 16:45:56.744 [debug] Current batch of media processed. Will check again in 1000ms 16:45:56.765 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FwOTs4UxQS4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/26/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a7/77/a777b4cc44b40909e2301038a2fca203d225139497b101798be3a04dcc747946.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:45:56.766 [debug] QUERY OK db=0.0ms idle=495.9ms begin [] 16:45:56.767 [debug] QUERY OK source="media_items" db=0.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:45:50Z], "/downloads/Jeff Su/2025-04-08 AI Agents, Clearly Explained/AI Agents, Clearly Explained [FwOTs4UxQS4].mp4", "/downloads/Jeff Su/2025-04-08 AI Agents, Clearly Explained/AI Agents, Clearly Explained [FwOTs4UxQS4].info.json", "/downloads/Jeff Su/2025-04-08 AI Agents, Clearly Explained/AI Agents, Clearly Explained [FwOTs4UxQS4].nfo", "/downloads/Jeff Su/2025-04-08 AI Agents, Clearly Explained/AI Agents, Clearly Explained [FwOTs4UxQS4]-thumb.jpg", ~U[2026-04-23 14:45:56Z], 26] 16:45:56.768 [debug] QUERY OK source="media_metadata" db=0.6ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/26/metadata.json.gz", "/config/metadata/media_items/26/thumbnail.jpg", 26, ~U[2026-04-23 14:45:56Z], ~U[2026-04-23 14:45:56Z]] 16:45:56.768 [debug] QUERY OK db=0.3ms commit [] 16:45:56.769 [debug] QUERY OK source="media_items" db=1.2ms idle=498.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [29507830, ~U[2026-04-23 14:45:56Z], 26] 16:45:56.770 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:45:56.770 [info] {"args":{"id":26},"id":30,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":34350342,"event":"job:stop","queue_time":373418851,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:45:56.778 [info] {"args":{"id":27},"id":31,"meta":{},"system_time":1776955556778170200,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:45:56.778 [debug] QUERY OK source="media_items" db=0.2ms idle=504.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" = ?) [27] 16:45:56.779 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:45:56.779 [debug] QUERY OK source="sources" db=0.3ms idle=10.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:45:56.780 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.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] 16:45:56.780 [debug] QUERY OK source="media_items" db=0.3ms 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 [27] 16:45:56.781 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.4ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [27] 16:45:56.782 [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] 16:45:56.782 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:56.782 [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 [] 16:45:56.783 [debug] Running yt-dlp command for action: get_downloadable_status 16:45:56.783 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:56.784 [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 [] 16:45:56.784 [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 [] 16:45:56.784 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Oo_GGWV9Hys --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/cd/39/cd3926683b9c21225fc2d2710a6122fdf05b51f9e22b4eb6ce67cfd442d914a5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:45:57.746 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=81\n\n🌟\u00A0Google Developer's Website: https://developers.google.com/apps-script/samples/automations/mail-merge\n\nIf you needed to send the same email to multiple people at once, how would you do it? In this video, I show you the best (and easiest) way to send personalized emails in gmail FOR FREE!\n\nWhen I was in the sales team, I used to need to send mass communication emails to all my clients (I had over 200 of them to manage a quarter). Generic mass emails missed a personal touch so I decided to send customized and personalized emails by using a free Mail Merge script in Google Sheets. \n\nThis mail merge script created by Martin Hawksey connects a Google Sheet spreadsheet to your Gmail account and allows you to send customized emails in bulk! \n\nSo feel free to follow along for this quick and dirty mail merge tutorial involving Gmail and Google Sheets 😁\n\nTIMESTAMPS\n00:00 Mail Merge with Gmail and Google Sheets\n00:20 Why Send Personalized Bulk Emails?\n00:56 Copy Google's Mail Merge Template\n01:37 Example 1 - Account Management\n04:14 Example 2 - School Event\n05:05 Example 3 - For Professionals at Work\n05:50 Mail Merge Pro Tips\n\nRESOURCES I MENTION IN THE VIDEO\nDevelopers support page: https://developers.google.com/workspace/solutions/mail-merge\nQuota page: https://developers.google.com/apps-script/guides/services/quotas#current_quotas\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=81\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #sheets #mailmerge #thinkoutsidethebox", "duration" => 410, "filename" => "/downloads/Jeff Su/2021-12-14 Send Personalized BULK Emails in Gmail (for FREE)!/Send Personalized BULK Emails in Gmail (for FREE)! [LJV-Uuj3RwU].mp4", "id" => "LJV-Uuj3RwU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LJV-Uuj3RwU", "playlist_index" => 121, "timestamp" => 1639490408, "title" => "Send Personalized BULK Emails in Gmail (for FREE)!", "upload_date" => "20211214"} 16:45:57.747 [debug] QUERY OK source="sources" db=0.3ms idle=963.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:45:57.748 [debug] QUERY OK source="sources" db=0.6ms 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" = ?) [1] 16:45:57.749 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=964.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-12-14 14:00:08Z], 1] 16:45:57.752 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=965.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=81\n\n🌟\u00A0Google Developer's Website: https://developers.google.com/apps-script/samples/automations/mail-merge\n\nIf you needed to send the same email to multiple people at once, how would you do it? In this video, I show you the best (and easiest) way to send personalized emails in gmail FOR FREE!\n\nWhen I was in the sales team, I used to need to send mass communication emails to all my clients (I had over 200 of them to manage a quarter). Generic mass emails missed a personal touch so I decided to send customized and personalized emails by using a free Mail Merge script in Google Sheets. \n\nThis mail merge script created by Martin Hawksey connects a Google Sheet spreadsheet to your Gmail account and allows you to send customized emails in bulk! \n\nSo feel free to follow along for this quick and dirty mail merge tutorial involving Gmail and Google Sheets 😁\n\nTIMESTAMPS\n00:00 Mail Merge with Gmail and Google Sheets\n00:20 Why Send Personalized Bulk Emails?\n00:56 Copy Google's Mail Merge Template\n01:37 Example 1 - Account Management\n04:14 Example 2 - School Event\n05:05 Example 3 - For Professionals at Work\n05:50 Mail Merge Pro Tips\n\nRESOURCES I MENTION IN THE VIDEO\nDevelopers support page: https://developers.google.com/workspace/solutions/mail-merge\nQuota page: https://developers.google.com/apps-script/guides/services/quotas#current_quotas\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=81\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #sheets #mailmerge #thinkoutsidethebox", "Send Personalized BULK Emails in Gmail (for FREE)!", "7630137e-55b7-4fb5-8f22-a3eb0c30033a", false, "LJV-Uuj3RwU", 1, [], 410, false, "https://www.youtube.com/watch?v=LJV-Uuj3RwU", 121, "/downloads/Jeff Su/2021-12-14 Send Personalized BULK Emails in Gmail (for FREE)!/Send Personalized BULK Emails in Gmail (for FREE)! [LJV-Uuj3RwU].mp4", false, false, 99, ~U[2021-12-14 14:00:08Z], ~U[2026-04-23 14:45:57Z], ~U[2026-04-23 14:45:57Z], "Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=81\n\n🌟\u00A0Google Developer's Website: https://developers.google.com/apps-script/samples/automations/mail-merge\n\nIf you needed to send the same email to multiple people at once, how would you do it? In this video, I show you the best (and easiest) way to send personalized emails in gmail FOR FREE!\n\nWhen I was in the sales team, I used to need to send mass communication emails to all my clients (I had over 200 of them to manage a quarter). Generic mass emails missed a personal touch so I decided to send customized and personalized emails by using a free Mail Merge script in Google Sheets. \n\nThis mail merge script created by Martin Hawksey connects a Google Sheet spreadsheet to your Gmail account and allows you to send customized emails in bulk! \n\nSo feel free to follow along for this quick and dirty mail merge tutorial involving Gmail and Google Sheets 😁\n\nTIMESTAMPS\n00:00 Mail Merge with Gmail and Google Sheets\n00:20 Why Send Personalized Bulk Emails?\n00:56 Copy Google's Mail Merge Template\n01:37 Example 1 - Account Management\n04:14 Example 2 - School Event\n05:05 Example 3 - For Professionals at Work\n05:50 Mail Merge Pro Tips\n\nRESOURCES I MENTION IN THE VIDEO\nDevelopers support page: https://developers.google.com/workspace/solutions/mail-merge\nQuota page: https://developers.google.com/apps-script/guides/services/quotas#current_quotas\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=81\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #sheets #mailmerge #thinkoutsidethebox", "Send Personalized BULK Emails in Gmail (for FREE)!", "LJV-Uuj3RwU", 1, 410, false, "https://www.youtube.com/watch?v=LJV-Uuj3RwU", "/downloads/Jeff Su/2021-12-14 Send Personalized BULK Emails in Gmail (for FREE)!/Send Personalized BULK Emails in Gmail (for FREE)! [LJV-Uuj3RwU].mp4", false, ~U[2021-12-14 14:00:08Z]] 16:45:57.754 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=476.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:45:57.755 [debug] QUERY OK source="media_profiles" db=0.5ms idle=7.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:57.756 [debug] QUERY OK source="media_items" db=0.4ms idle=7.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [121] 16:45:57.756 [info] Kicking off download for media item #121 (LJV-Uuj3RwU) 16:45:57.764 [debug] QUERY OK source="tasks" db=0.5ms queue=0.1ms idle=9.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [125, 121, ~U[2026-04-23 14:45:57Z], ~U[2026-04-23 14:45:57Z]] 16:45:57.765 [debug] Current batch of media processed. Will check again in 1000ms 16:45:58.766 [debug] Current batch of media processed. Will check again in 1000ms 16:45:59.767 [debug] Current batch of media processed. Will check again in 1000ms 16:45:59.814 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FypvQrwvENk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/25/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/df/bd/dfbd0bf2623822d56a72479ff52c6c369907f87dfb30e301f5a65304ff206b4b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:45:59.815 [debug] QUERY OK db=0.4ms idle=544.7ms begin [] 16:45:59.816 [debug] QUERY OK source="media_items" db=1.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:45:52Z], "/downloads/Jeff Su/2025-04-22 A Day in My Life at Google (8 years in)/A Day in My Life at Google (8 years in) [FypvQrwvENk].mp4", "/downloads/Jeff Su/2025-04-22 A Day in My Life at Google (8 years in)/A Day in My Life at Google (8 years in) [FypvQrwvENk].info.json", "/downloads/Jeff Su/2025-04-22 A Day in My Life at Google (8 years in)/A Day in My Life at Google (8 years in) [FypvQrwvENk].nfo", "/downloads/Jeff Su/2025-04-22 A Day in My Life at Google (8 years in)/A Day in My Life at Google (8 years in) [FypvQrwvENk]-thumb.jpg", ~U[2026-04-23 14:45:59Z], 25] 16:45:59.817 [debug] QUERY OK source="media_metadata" db=0.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/25/metadata.json.gz", "/config/metadata/media_items/25/thumbnail.jpg", 25, ~U[2026-04-23 14:45:59Z], ~U[2026-04-23 14:45:59Z]] 16:45:59.818 [debug] QUERY OK db=0.3ms commit [] 16:45:59.820 [debug] QUERY OK source="media_items" db=1.9ms idle=548.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [43572074, ~U[2026-04-23 14:45:59Z], 25] 16:45:59.821 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:45:59.821 [info] {"args":{"id":25},"id":29,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":40301972,"event":"job:stop","queue_time":374517885,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:45:59.829 [info] {"args":{"id":28},"id":32,"meta":{},"system_time":1776955559829132746,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:45:59.830 [debug] QUERY OK source="media_items" db=0.6ms idle=548.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" = ?) [28] 16:45:59.830 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:45:59.831 [debug] QUERY OK source="sources" db=0.3ms queue=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" = ?) [1] 16:45:59.832 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=11.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:59.833 [debug] QUERY OK source="media_items" db=0.9ms idle=11.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [28] 16:45:59.836 [debug] QUERY OK source="media_metadata" db=0.2ms idle=6.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [28] 16:45:59.837 [debug] QUERY OK source="media_profiles" db=0.8ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:45:59.838 [debug] QUERY OK source="settings" db=0.7ms idle=6.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:59.839 [debug] QUERY OK source="settings" db=0.5ms idle=6.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:59.841 [debug] Running yt-dlp command for action: get_downloadable_status 16:45:59.842 [debug] QUERY OK source="settings" db=0.3ms idle=8.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:59.843 [debug] QUERY OK source="settings" db=0.4ms idle=6.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:59.843 [debug] QUERY OK source="settings" db=0.1ms idle=6.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:45:59.843 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ONa85JLNahw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/3a/62/3a627fc28ab0ac9bef6340ac2fb11b0121855aa7cc51cf4636f3d94690eaa2cd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:46:00.215 [info] {"source":"oban","duration":431,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:46:00.768 [debug] Current batch of media processed. Will check again in 1000ms 16:46:01.770 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Download my Project Recap template ➡️\u00A0https://www.jeffsu.org/google-docs/\n\n✍🏻\u00A0When was the last time you came across a Project Recap at work you actually wanted to read? \n\nWouldn't you like to write one that your colleagues actually want to read? 🤓\n\nFirst and foremost, you really do help others when you share your (honest) learnings and takeaways after a project or campaign is completed. You also keep yourself (and your team) accountable by stating whether you hit the targets you initially set out to achieve. Finally, you increase your presence in a very authentic way by sharing the recap with relevant individuals in the workplace\n\nAs you can see in my campaign summary email, formatting plays a huge role in readability. You can literally have the best recap ever but it's irrelevant if no-one reads past the first line (or even clicks into the email for that matter!)\n\nWithin the recap, you want to include \"Context,\" \"Business Impact,\" \"Takeaways & Learnings,\" and the \"Thank You\" sections to keep everything nice and organized\n\nHopefully this video helps professionals become...well, more professional and productive in the workplace 😁\n\nTIMESTAMPS\n00:00 How NOT to Write a Project Recap\n00:34 Benefits of Writing Project Recaps\n01:38 Download my Project Recap Template\n01:50 Project Recap Formatting Tips\n02:46 Project Recap Content Tips\n03:50 Context Section\n04:06 Business Impact Section\n05:01 Takeaways and Learnings Section\n06:29 Thank You Section\n\nRESOURCES I MENTION IN THE VIDEO\nIntro to Event Management Video - https://youtu.be/b3B24wl3gCQ\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#projectrecap #visibility #email", "duration" => 456, "filename" => "/downloads/Jeff Su/2021-12-07 Write a Project Recap People Actually Want to Read/Write a Project Recap People Actually Want to Read [SfXntQxI98w].mp4", "id" => "SfXntQxI98w", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=SfXntQxI98w", "playlist_index" => 122, "timestamp" => 1638883809, "title" => "Write a Project Recap People Actually Want to Read", "upload_date" => "20211207"} 16:46:01.771 [debug] QUERY OK source="sources" db=1.0ms idle=500.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:01.772 [debug] QUERY OK source="sources" db=0.2ms idle=502.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:01.773 [debug] QUERY OK source="media_items" db=0.5ms idle=502.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-12-07 13:30:09Z], 1] 16:46:01.776 [debug] QUERY OK source="media_items" db=1.8ms idle=503.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Download my Project Recap template ➡️\u00A0https://www.jeffsu.org/google-docs/\n\n✍🏻\u00A0When was the last time you came across a Project Recap at work you actually wanted to read? \n\nWouldn't you like to write one that your colleagues actually want to read? 🤓\n\nFirst and foremost, you really do help others when you share your (honest) learnings and takeaways after a project or campaign is completed. You also keep yourself (and your team) accountable by stating whether you hit the targets you initially set out to achieve. Finally, you increase your presence in a very authentic way by sharing the recap with relevant individuals in the workplace\n\nAs you can see in my campaign summary email, formatting plays a huge role in readability. You can literally have the best recap ever but it's irrelevant if no-one reads past the first line (or even clicks into the email for that matter!)\n\nWithin the recap, you want to include \"Context,\" \"Business Impact,\" \"Takeaways & Learnings,\" and the \"Thank You\" sections to keep everything nice and organized\n\nHopefully this video helps professionals become...well, more professional and productive in the workplace 😁\n\nTIMESTAMPS\n00:00 How NOT to Write a Project Recap\n00:34 Benefits of Writing Project Recaps\n01:38 Download my Project Recap Template\n01:50 Project Recap Formatting Tips\n02:46 Project Recap Content Tips\n03:50 Context Section\n04:06 Business Impact Section\n05:01 Takeaways and Learnings Section\n06:29 Thank You Section\n\nRESOURCES I MENTION IN THE VIDEO\nIntro to Event Management Video - https://youtu.be/b3B24wl3gCQ\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#projectrecap #visibility #email", "Write a Project Recap People Actually Want to Read", "9749fb6d-1a61-4300-bfec-90cfa221b6ad", false, "SfXntQxI98w", 1, [], 456, false, "https://www.youtube.com/watch?v=SfXntQxI98w", 122, "/downloads/Jeff Su/2021-12-07 Write a Project Recap People Actually Want to Read/Write a Project Recap People Actually Want to Read [SfXntQxI98w].mp4", false, false, 99, ~U[2021-12-07 13:30:09Z], ~U[2026-04-23 14:46:01Z], ~U[2026-04-23 14:46:01Z], "Download my Project Recap template ➡️\u00A0https://www.jeffsu.org/google-docs/\n\n✍🏻\u00A0When was the last time you came across a Project Recap at work you actually wanted to read? \n\nWouldn't you like to write one that your colleagues actually want to read? 🤓\n\nFirst and foremost, you really do help others when you share your (honest) learnings and takeaways after a project or campaign is completed. You also keep yourself (and your team) accountable by stating whether you hit the targets you initially set out to achieve. Finally, you increase your presence in a very authentic way by sharing the recap with relevant individuals in the workplace\n\nAs you can see in my campaign summary email, formatting plays a huge role in readability. You can literally have the best recap ever but it's irrelevant if no-one reads past the first line (or even clicks into the email for that matter!)\n\nWithin the recap, you want to include \"Context,\" \"Business Impact,\" \"Takeaways & Learnings,\" and the \"Thank You\" sections to keep everything nice and organized\n\nHopefully this video helps professionals become...well, more professional and productive in the workplace 😁\n\nTIMESTAMPS\n00:00 How NOT to Write a Project Recap\n00:34 Benefits of Writing Project Recaps\n01:38 Download my Project Recap Template\n01:50 Project Recap Formatting Tips\n02:46 Project Recap Content Tips\n03:50 Context Section\n04:06 Business Impact Section\n05:01 Takeaways and Learnings Section\n06:29 Thank You Section\n\nRESOURCES I MENTION IN THE VIDEO\nIntro to Event Management Video - https://youtu.be/b3B24wl3gCQ\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#projectrecap #visibility #email", "Write a Project Recap People Actually Want to Read", "SfXntQxI98w", 1, 456, false, "https://www.youtube.com/watch?v=SfXntQxI98w", "/downloads/Jeff Su/2021-12-07 Write a Project Recap People Actually Want to Read/Write a Project Recap People Actually Want to Read [SfXntQxI98w].mp4", false, ~U[2021-12-07 13:30:09Z]] 16:46:01.776 [debug] QUERY OK source="sources" db=0.2ms idle=491.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:01.777 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:46:01.777 [debug] QUERY OK source="media_items" db=0.3ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [122] 16:46:01.777 [info] Kicking off download for media item #122 (SfXntQxI98w) 16:46:01.780 [debug] QUERY OK source="tasks" db=0.2ms idle=3.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [126, 122, ~U[2026-04-23 14:46:01Z], ~U[2026-04-23 14:46:01Z]] 16:46:01.780 [debug] Current batch of media processed. Will check again in 1000ms 16:46:02.514 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Oo_GGWV9Hys --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/cd/39/cd3926683b9c21225fc2d2710a6122fdf05b51f9e22b4eb6ce67cfd442d914a5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:46:02.514 [debug] Running yt-dlp command for action: download 16:46:02.515 [debug] QUERY OK source="settings" db=0.3ms queue=0.3ms idle=736.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:02.515 [debug] QUERY OK source="settings" db=0.2ms idle=735.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:02.516 [debug] QUERY OK source="settings" db=0.2ms idle=735.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:02.516 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Oo_GGWV9Hys --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/60/ea/60ead19292fe14f596ce08ca05284b1d0fb64368620000b085a25fdeb3e873d0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:46:02.781 [debug] Current batch of media processed. Will check again in 1000ms 16:46:03.782 [debug] Current batch of media processed. Will check again in 1000ms 16:46:04.783 [debug] Current batch of media processed. Will check again in 1000ms 16:46:05.786 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "✍🏻\u00A0Sign up for Scribe (for FREE): https://scribe.how/3cDXRpD\n\n😕\u00A0Like it or not, visibility in the workplace is an important consideration for most if not all professionals. In this video I share exactly what I did to increase my visibility in the workplace during the first year of my 2nd full-time job! \n\nI was promoted relatively quickly during my tenure as an Account Manager because of three reasons: (1) I had a kick-ass manager, (2) I had transferable skills from my management consulting days, and (3) Most importantly, I stood out from others by helping mentor new hires at scale\n\nBecause I was (hopefully) providing real value to the business (helping senior leadership ramp up the new joiners) and to the new hires themselves (sharing my own experiences and practical tips on how to succeed), this \"side project\" was talked about among my colleagues and I was able to organically increase my visibility in the workplace\n\nThe best part? It's not even that difficult to do with free tools like Scribe 😁\n\nTIMESTAMPS\n00:00 Boost Your Visibility in the Workplace\n00:41 How I Mentored New Hires\n01:20 Benefits of Mentoring Others at Work\n02:43 How to Mentor New Joiners At Scale\n03:11 Screen Recording Tools for PC\n03:25 Downsides of Recording Screen\n03:52 How to use Scribe\n06:11 Pro Tips when Using Scribe\n\nRESOURCES I MENTION IN THE VIDEO\nThink Outside the Box Playlist - https://www.youtube.com/watch?v=5c9SapE_YNU&list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\n\n@KevinStratvert Kevin Stratvert's 5 Best FREE Screen Recorders - https://youtu.be/nCNri04lHaI\nScribe's Privacy Policy - https://scribehow.com/privacy/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#career #workplace #thinkoutsidethebox", "duration" => 433, "filename" => "/downloads/Jeff Su/2021-11-30 Stand Out in the Workplace by Doing THIS!/Stand Out in the Workplace by Doing THIS! [7-xgf536_oc].mp4", "id" => "7-xgf536_oc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=7-xgf536_oc", "playlist_index" => 123, "timestamp" => 1638277517, "title" => "Stand Out in the Workplace by Doing THIS!", "upload_date" => "20211130"} 16:46:05.793 [debug] QUERY OK source="sources" db=6.6ms queue=0.1ms idle=1515.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:05.794 [debug] QUERY OK source="sources" db=0.3ms idle=1523.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:05.795 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=1503.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-11-30 13:05:17Z], 1] 16:46:05.800 [debug] QUERY OK source="media_items" db=3.5ms idle=525.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✍🏻\u00A0Sign up for Scribe (for FREE): https://scribe.how/3cDXRpD\n\n😕\u00A0Like it or not, visibility in the workplace is an important consideration for most if not all professionals. In this video I share exactly what I did to increase my visibility in the workplace during the first year of my 2nd full-time job! \n\nI was promoted relatively quickly during my tenure as an Account Manager because of three reasons: (1) I had a kick-ass manager, (2) I had transferable skills from my management consulting days, and (3) Most importantly, I stood out from others by helping mentor new hires at scale\n\nBecause I was (hopefully) providing real value to the business (helping senior leadership ramp up the new joiners) and to the new hires themselves (sharing my own experiences and practical tips on how to succeed), this \"side project\" was talked about among my colleagues and I was able to organically increase my visibility in the workplace\n\nThe best part? It's not even that difficult to do with free tools like Scribe 😁\n\nTIMESTAMPS\n00:00 Boost Your Visibility in the Workplace\n00:41 How I Mentored New Hires\n01:20 Benefits of Mentoring Others at Work\n02:43 How to Mentor New Joiners At Scale\n03:11 Screen Recording Tools for PC\n03:25 Downsides of Recording Screen\n03:52 How to use Scribe\n06:11 Pro Tips when Using Scribe\n\nRESOURCES I MENTION IN THE VIDEO\nThink Outside the Box Playlist - https://www.youtube.com/watch?v=5c9SapE_YNU&list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\n\n@KevinStratvert Kevin Stratvert's 5 Best FREE Screen Recorders - https://youtu.be/nCNri04lHaI\nScribe's Privacy Policy - https://scribehow.com/privacy/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#career #workplace #thinkoutsidethebox", "Stand Out in the Workplace by Doing THIS!", "fc72def2-2d9a-40c2-9c7e-ee84bb66bbba", false, "7-xgf536_oc", 1, [], 433, false, "https://www.youtube.com/watch?v=7-xgf536_oc", 123, "/downloads/Jeff Su/2021-11-30 Stand Out in the Workplace by Doing THIS!/Stand Out in the Workplace by Doing THIS! [7-xgf536_oc].mp4", false, false, 99, ~U[2021-11-30 13:05:17Z], ~U[2026-04-23 14:46:05Z], ~U[2026-04-23 14:46:05Z], "✍🏻\u00A0Sign up for Scribe (for FREE): https://scribe.how/3cDXRpD\n\n😕\u00A0Like it or not, visibility in the workplace is an important consideration for most if not all professionals. In this video I share exactly what I did to increase my visibility in the workplace during the first year of my 2nd full-time job! \n\nI was promoted relatively quickly during my tenure as an Account Manager because of three reasons: (1) I had a kick-ass manager, (2) I had transferable skills from my management consulting days, and (3) Most importantly, I stood out from others by helping mentor new hires at scale\n\nBecause I was (hopefully) providing real value to the business (helping senior leadership ramp up the new joiners) and to the new hires themselves (sharing my own experiences and practical tips on how to succeed), this \"side project\" was talked about among my colleagues and I was able to organically increase my visibility in the workplace\n\nThe best part? It's not even that difficult to do with free tools like Scribe 😁\n\nTIMESTAMPS\n00:00 Boost Your Visibility in the Workplace\n00:41 How I Mentored New Hires\n01:20 Benefits of Mentoring Others at Work\n02:43 How to Mentor New Joiners At Scale\n03:11 Screen Recording Tools for PC\n03:25 Downsides of Recording Screen\n03:52 How to use Scribe\n06:11 Pro Tips when Using Scribe\n\nRESOURCES I MENTION IN THE VIDEO\nThink Outside the Box Playlist - https://www.youtube.com/watch?v=5c9SapE_YNU&list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\n\n@KevinStratvert Kevin Stratvert's 5 Best FREE Screen Recorders - https://youtu.be/nCNri04lHaI\nScribe's Privacy Policy - https://scribehow.com/privacy/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#career #workplace #thinkoutsidethebox", "Stand Out in the Workplace by Doing THIS!", "7-xgf536_oc", 1, 433, false, "https://www.youtube.com/watch?v=7-xgf536_oc", "/downloads/Jeff Su/2021-11-30 Stand Out in the Workplace by Doing THIS!/Stand Out in the Workplace by Doing THIS! [7-xgf536_oc].mp4", false, ~U[2021-11-30 13:05:17Z]] 16:46:05.802 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=507.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:05.803 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=9.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:46:05.805 [debug] QUERY OK source="media_items" db=2.0ms idle=9.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 [123] 16:46:05.805 [info] Kicking off download for media item #123 (7-xgf536_oc) 16:46:05.813 [debug] QUERY OK source="tasks" db=0.3ms idle=10.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [127, 123, ~U[2026-04-23 14:46:05Z], ~U[2026-04-23 14:46:05Z]] 16:46:05.813 [debug] Current batch of media processed. Will check again in 1000ms 16:46:06.155 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ONa85JLNahw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/3a/62/3a627fc28ab0ac9bef6340ac2fb11b0121855aa7cc51cf4636f3d94690eaa2cd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:46:06.157 [debug] Running yt-dlp command for action: download 16:46:06.158 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=354.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:06.159 [debug] QUERY OK source="settings" db=0.6ms idle=352.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:06.160 [debug] QUERY OK source="settings" db=0.6ms idle=348.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:06.160 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ONa85JLNahw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/50/25/50254f4c7187281b88f303a653f29e6d2d44eb0632c61206e060727eb2a67698.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:46:06.814 [debug] Current batch of media processed. Will check again in 1000ms 16:46:07.815 [debug] Current batch of media processed. Will check again in 1000ms 16:46:08.816 [debug] Current batch of media processed. Will check again in 1000ms 16:46:09.818 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=010\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤯\u00A0No matter how much you prepare for an interview, you are bound to receive a question or two you haven't prepared for. In situations like these, it's best to rely on a tried-and-true 3 step method: Stall for time, Break the question down into bite-sized pieces, and address each segment\n\nIn this video I share the hardest interview question I've ever received and how I answered that question. Interestingly, although the interviewer told me after the fact that my answer was NOT what she was looking for, I still passed that round\n\nThe reason I passed the interview is very simple: the interviewer knows the question is open to interpretation and therefore has no \"correct\" answer. More importantly, it's about HOW the interviewee approaches the question that matters\n\nFor harder interview questions like this, it's best to tackle it like a traditional consulting case interview question: First buy yourself some time, then break the question down into segments, and finally address this part\n\nTIMESTAMPS\n00:00 Hardest Interview Question Ever\n00:55 Stall for Time\n02:44 Break Question Down into Segments\n04:15 Address Each Segment\n05:52 The \"Correct\" Answer\n\nRESOURCES I MENTION IN THE VIDEO\nCommon Interview Questions and Answers - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interview #jobsearch", "duration" => 425, "filename" => "/downloads/Jeff Su/2021-11-23 How to Answer an Interview Question you DIDN'T Prepare For/How to Answer an Interview Question you DIDN'T Prepare For [ZqNorUIgIe8].mp4", "id" => "ZqNorUIgIe8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZqNorUIgIe8", "playlist_index" => 124, "timestamp" => 1637672431, "title" => "How to Answer an Interview Question you DIDN'T Prepare For", "upload_date" => "20211123"} 16:46:09.821 [debug] QUERY OK source="sources" db=2.7ms queue=0.1ms idle=548.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:09.823 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms idle=551.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:09.827 [debug] QUERY OK source="media_items" db=3.3ms queue=0.1ms idle=554.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-11-23 13:00:31Z], 1] 16:46:09.831 [debug] QUERY OK source="media_items" db=2.8ms queue=0.1ms idle=558.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=010\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤯\u00A0No matter how much you prepare for an interview, you are bound to receive a question or two you haven't prepared for. In situations like these, it's best to rely on a tried-and-true 3 step method: Stall for time, Break the question down into bite-sized pieces, and address each segment\n\nIn this video I share the hardest interview question I've ever received and how I answered that question. Interestingly, although the interviewer told me after the fact that my answer was NOT what she was looking for, I still passed that round\n\nThe reason I passed the interview is very simple: the interviewer knows the question is open to interpretation and therefore has no \"correct\" answer. More importantly, it's about HOW the interviewee approaches the question that matters\n\nFor harder interview questions like this, it's best to tackle it like a traditional consulting case interview question: First buy yourself some time, then break the question down into segments, and finally address this part\n\nTIMESTAMPS\n00:00 Hardest Interview Question Ever\n00:55 Stall for Time\n02:44 Break Question Down into Segments\n04:15 Address Each Segment\n05:52 The \"Correct\" Answer\n\nRESOURCES I MENTION IN THE VIDEO\nCommon Interview Questions and Answers - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interview #jobsearch", "How to Answer an Interview Question you DIDN'T Prepare For", "843a9c88-9a38-4c8d-8252-419679954789", false, "ZqNorUIgIe8", 1, [], 425, false, "https://www.youtube.com/watch?v=ZqNorUIgIe8", 124, "/downloads/Jeff Su/2021-11-23 How to Answer an Interview Question you DIDN'T Prepare For/How to Answer an Interview Question you DIDN'T Prepare For [ZqNorUIgIe8].mp4", false, false, 99, ~U[2021-11-23 13:00:31Z], ~U[2026-04-23 14:46:09Z], ~U[2026-04-23 14:46:09Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=010\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤯\u00A0No matter how much you prepare for an interview, you are bound to receive a question or two you haven't prepared for. In situations like these, it's best to rely on a tried-and-true 3 step method: Stall for time, Break the question down into bite-sized pieces, and address each segment\n\nIn this video I share the hardest interview question I've ever received and how I answered that question. Interestingly, although the interviewer told me after the fact that my answer was NOT what she was looking for, I still passed that round\n\nThe reason I passed the interview is very simple: the interviewer knows the question is open to interpretation and therefore has no \"correct\" answer. More importantly, it's about HOW the interviewee approaches the question that matters\n\nFor harder interview questions like this, it's best to tackle it like a traditional consulting case interview question: First buy yourself some time, then break the question down into segments, and finally address this part\n\nTIMESTAMPS\n00:00 Hardest Interview Question Ever\n00:55 Stall for Time\n02:44 Break Question Down into Segments\n04:15 Address Each Segment\n05:52 The \"Correct\" Answer\n\nRESOURCES I MENTION IN THE VIDEO\nCommon Interview Questions and Answers - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interview #jobsearch", "How to Answer an Interview Question you DIDN'T Prepare For", "ZqNorUIgIe8", 1, 425, false, "https://www.youtube.com/watch?v=ZqNorUIgIe8", "/downloads/Jeff Su/2021-11-23 How to Answer an Interview Question you DIDN'T Prepare For/How to Answer an Interview Question you DIDN'T Prepare For [ZqNorUIgIe8].mp4", false, ~U[2021-11-23 13:00:31Z]] 16:46:09.833 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=530.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:09.835 [debug] QUERY OK source="media_profiles" db=1.6ms queue=0.1ms idle=11.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:46:09.838 [debug] QUERY OK source="media_items" db=1.2ms queue=0.3ms idle=12.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 [124] 16:46:09.838 [info] Kicking off download for media item #124 (ZqNorUIgIe8) 16:46:09.847 [debug] QUERY OK source="tasks" db=2.8ms queue=0.2ms idle=11.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [128, 124, ~U[2026-04-23 14:46:09Z], ~U[2026-04-23 14:46:09Z]] 16:46:09.848 [debug] Current batch of media processed. Will check again in 1000ms 16:46:10.848 [debug] Current batch of media processed. Will check again in 1000ms 16:46:11.849 [debug] Current batch of media processed. Will check again in 1000ms 16:46:12.850 [debug] Current batch of media processed. Will check again in 1000ms 16:46:13.851 [debug] Current batch of media processed. Will check again in 1000ms 16:46:14.853 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=77\n\nDownload the template for free here 👉🏻 https://www.jeffsu.org/content-clipper-template/\n\n📝 The best way to capture and organize web content in Notion is to use a free and popular third-party browser extension called Save to Notion. Save to Notion is basically the Notion Web Clipper extension (official extension from Notion) on steroids! \n\nUsing the Notion Add-On \"Save to Notion,\" you're able to clip (i.e. capture) any type of content on the web. Whenever I come across interesting content, I like to quickly capture and organize that content into a Notion database so I can quickly find it later.\n\nIn general, I save 2 types of content using this workflow: Educational \"how-to\" type of content, and creative content that inspire me to make changes to my life. For example, if I'm trying to learn how to fast, I would clip relevant video and text-based article content and group them under a \"Health and Fitness\" category\n\nWhen I watch online videos, I often feel inspired by something in that video: be it a product I might consider purchasing or an editing technique I'd like to try out in my next video. The Save to Notion extension enables me to seamlessly save any type of web content into my Notion database and it's been an absolute life-changer! \n\nTIMESTAMPS\n00:00 Capture and Organize Web Content in Notion\n00:19 Content Clipper Template in Notion\n02:12 Save to Notion Extension\n04:38 Pro Tip for Save to Notion Extension\n05:55 Example Web Clipper Extension Workflows\n\nRESOURCES I MENTION IN THE VIDEO\n@MatthewEncina Matthew Encina's packing video - https://youtu.be/iwM_3vU9h4U\nMy Notion playlist - https://www.youtube.com/watch?v=sZB8OZoSIyU&list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS&index=3\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#saveandorganize #notion #notionhq", "duration" => 486, "filename" => "/downloads/Jeff Su/2021-11-16 The BEST Way to Capture and Organize Web Content in Notion!/The BEST Way to Capture and Organize Web Content in Notion! [diK9dZulkAs].mp4", "id" => "diK9dZulkAs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=diK9dZulkAs", "playlist_index" => 125, "timestamp" => 1637067617, "title" => "The BEST Way to Capture and Organize Web Content in Notion!", "upload_date" => "20211116"} 16:46:14.854 [debug] QUERY OK source="sources" db=0.3ms idle=1583.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:14.854 [debug] QUERY OK source="sources" db=0.1ms idle=1584.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:14.855 [debug] QUERY OK source="media_items" db=0.6ms idle=1584.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-11-16 13:00:17Z], 1] 16:46:14.858 [debug] QUERY OK source="media_items" db=1.9ms idle=1545.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=77\n\nDownload the template for free here 👉🏻 https://www.jeffsu.org/content-clipper-template/\n\n📝 The best way to capture and organize web content in Notion is to use a free and popular third-party browser extension called Save to Notion. Save to Notion is basically the Notion Web Clipper extension (official extension from Notion) on steroids! \n\nUsing the Notion Add-On \"Save to Notion,\" you're able to clip (i.e. capture) any type of content on the web. Whenever I come across interesting content, I like to quickly capture and organize that content into a Notion database so I can quickly find it later.\n\nIn general, I save 2 types of content using this workflow: Educational \"how-to\" type of content, and creative content that inspire me to make changes to my life. For example, if I'm trying to learn how to fast, I would clip relevant video and text-based article content and group them under a \"Health and Fitness\" category\n\nWhen I watch online videos, I often feel inspired by something in that video: be it a product I might consider purchasing or an editing technique I'd like to try out in my next video. The Save to Notion extension enables me to seamlessly save any type of web content into my Notion database and it's been an absolute life-changer! \n\nTIMESTAMPS\n00:00 Capture and Organize Web Content in Notion\n00:19 Content Clipper Template in Notion\n02:12 Save to Notion Extension\n04:38 Pro Tip for Save to Notion Extension\n05:55 Example Web Clipper Extension Workflows\n\nRESOURCES I MENTION IN THE VIDEO\n@MatthewEncina Matthew Encina's packing video - https://youtu.be/iwM_3vU9h4U\nMy Notion playlist - https://www.youtube.com/watch?v=sZB8OZoSIyU&list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS&index=3\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#saveandorganize #notion #notionhq", "The BEST Way to Capture and Organize Web Content in Notion!", "2522a19f-e88d-4540-935a-2d0503f16547", false, "diK9dZulkAs", 1, [], 486, false, "https://www.youtube.com/watch?v=diK9dZulkAs", 125, "/downloads/Jeff Su/2021-11-16 The BEST Way to Capture and Organize Web Content in Notion!/The BEST Way to Capture and Organize Web Content in Notion! [diK9dZulkAs].mp4", false, false, 99, ~U[2021-11-16 13:00:17Z], ~U[2026-04-23 14:46:14Z], ~U[2026-04-23 14:46:14Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=77\n\nDownload the template for free here 👉🏻 https://www.jeffsu.org/content-clipper-template/\n\n📝 The best way to capture and organize web content in Notion is to use a free and popular third-party browser extension called Save to Notion. Save to Notion is basically the Notion Web Clipper extension (official extension from Notion) on steroids! \n\nUsing the Notion Add-On \"Save to Notion,\" you're able to clip (i.e. capture) any type of content on the web. Whenever I come across interesting content, I like to quickly capture and organize that content into a Notion database so I can quickly find it later.\n\nIn general, I save 2 types of content using this workflow: Educational \"how-to\" type of content, and creative content that inspire me to make changes to my life. For example, if I'm trying to learn how to fast, I would clip relevant video and text-based article content and group them under a \"Health and Fitness\" category\n\nWhen I watch online videos, I often feel inspired by something in that video: be it a product I might consider purchasing or an editing technique I'd like to try out in my next video. The Save to Notion extension enables me to seamlessly save any type of web content into my Notion database and it's been an absolute life-changer! \n\nTIMESTAMPS\n00:00 Capture and Organize Web Content in Notion\n00:19 Content Clipper Template in Notion\n02:12 Save to Notion Extension\n04:38 Pro Tip for Save to Notion Extension\n05:55 Example Web Clipper Extension Workflows\n\nRESOURCES I MENTION IN THE VIDEO\n@MatthewEncina Matthew Encina's packing video - https://youtu.be/iwM_3vU9h4U\nMy Notion playlist - https://www.youtube.com/watch?v=sZB8OZoSIyU&list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS&index=3\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#saveandorganize #notion #notionhq", "The BEST Way to Capture and Organize Web Content in Notion!", "diK9dZulkAs", 1, 486, false, "https://www.youtube.com/watch?v=diK9dZulkAs", "/downloads/Jeff Su/2021-11-16 The BEST Way to Capture and Organize Web Content in Notion!/The BEST Way to Capture and Organize Web Content in Notion! [diK9dZulkAs].mp4", false, ~U[2021-11-16 13:00:17Z]] 16:46:14.859 [debug] QUERY OK source="sources" db=0.2ms idle=546.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:14.859 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:46:14.860 [debug] QUERY OK source="media_items" db=0.3ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [125] 16:46:14.860 [info] Kicking off download for media item #125 (diK9dZulkAs) 16:46:14.863 [debug] QUERY OK source="tasks" db=0.2ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [129, 125, ~U[2026-04-23 14:46:14Z], ~U[2026-04-23 14:46:14Z]] 16:46:14.863 [debug] Current batch of media processed. Will check again in 1000ms 16:46:15.863 [debug] Current batch of media processed. Will check again in 1000ms 16:46:16.864 [debug] Current batch of media processed. Will check again in 1000ms 16:46:17.866 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "👨🏻\u200D💻 I never received formal \"email training.\" And there are definitely no tutorials for writing effective emails at work. In this video I share best practices for the 6 Most Common Types of Workplace Emails I learned the hard way over the past few years working as a Product Marketer! \n\nBefore diving into email best practices, you should know that there are 2 main types of emails we encounter at work:\n\n1️⃣ Request-and-reply emails that require input from the reader\n\n2️⃣ Confirmation emails that serve as a record of a conversation or decision\n\nCold emails where you reach out to a colleague for the first time would fall under the \"request-and-reply\" type of email and a best practice there would be start off the email by mentioning how you came across their profile\n\nMeeting minutes would fall under \"confirmation emails\" and a tip there is to include the Key Takeaways and Action Items up front, and perhaps even highlight the specific action owners so there is no room for miscommunication.\n\nNewsletters and Project recaps are usually longer in length, so I recommend adding a \"too long, didn't read\" - or tl;dr - section up top so others can get the most important content right at the beginning and skim through the rest!\n\nTIMESTAMPS\n00:00 Common Types of Workplace Email\n00:37 Two Primary Types of Workplace Emails\n00:52 Cold Emails\n02:41 Action Required Email Blast\n03:54 Meeting Minutes & Email Chain Resets\n04:39 Newsletters & Project Recap Emails\n\nRESOURCES I MENTION IN THE VIDEO\n8 Email Etiquette Tips with HBR - https://youtu.be/1XctnF7C74s\nGoogle Doc Template Gallery - https://docs.google.com/document/u/0/?ftv=1&tgif=c\nThe Good Docs templates - https://thegoodocs.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#emailetiquette", "duration" => 400, "filename" => "/downloads/Jeff Su/2021-11-09 6 Email Tips Working Professionals Need to Know!/6 Email Tips Working Professionals Need to Know! [SHKHEutyukc].mp4", "id" => "SHKHEutyukc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=SHKHEutyukc", "playlist_index" => 126, "timestamp" => 1636462808, "title" => "6 Email Tips Working Professionals Need to Know!", "upload_date" => "20211109"} 16:46:17.867 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1596.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:17.867 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1597.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:17.868 [debug] QUERY OK source="media_items" db=0.6ms idle=1598.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-11-09 13:00:08Z], 1] 16:46:17.872 [debug] QUERY OK source="media_items" db=2.0ms idle=1553.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["👨🏻\u200D💻 I never received formal \"email training.\" And there are definitely no tutorials for writing effective emails at work. In this video I share best practices for the 6 Most Common Types of Workplace Emails I learned the hard way over the past few years working as a Product Marketer! \n\nBefore diving into email best practices, you should know that there are 2 main types of emails we encounter at work:\n\n1️⃣ Request-and-reply emails that require input from the reader\n\n2️⃣ Confirmation emails that serve as a record of a conversation or decision\n\nCold emails where you reach out to a colleague for the first time would fall under the \"request-and-reply\" type of email and a best practice there would be start off the email by mentioning how you came across their profile\n\nMeeting minutes would fall under \"confirmation emails\" and a tip there is to include the Key Takeaways and Action Items up front, and perhaps even highlight the specific action owners so there is no room for miscommunication.\n\nNewsletters and Project recaps are usually longer in length, so I recommend adding a \"too long, didn't read\" - or tl;dr - section up top so others can get the most important content right at the beginning and skim through the rest!\n\nTIMESTAMPS\n00:00 Common Types of Workplace Email\n00:37 Two Primary Types of Workplace Emails\n00:52 Cold Emails\n02:41 Action Required Email Blast\n03:54 Meeting Minutes & Email Chain Resets\n04:39 Newsletters & Project Recap Emails\n\nRESOURCES I MENTION IN THE VIDEO\n8 Email Etiquette Tips with HBR - https://youtu.be/1XctnF7C74s\nGoogle Doc Template Gallery - https://docs.google.com/document/u/0/?ftv=1&tgif=c\nThe Good Docs templates - https://thegoodocs.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#emailetiquette", "6 Email Tips Working Professionals Need to Know!", "5c4e84c5-8832-41ee-b2f1-bf9534de4d82", false, "SHKHEutyukc", 1, [], 400, false, "https://www.youtube.com/watch?v=SHKHEutyukc", 126, "/downloads/Jeff Su/2021-11-09 6 Email Tips Working Professionals Need to Know!/6 Email Tips Working Professionals Need to Know! [SHKHEutyukc].mp4", false, false, 99, ~U[2021-11-09 13:00:08Z], ~U[2026-04-23 14:46:17Z], ~U[2026-04-23 14:46:17Z], "👨🏻\u200D💻 I never received formal \"email training.\" And there are definitely no tutorials for writing effective emails at work. In this video I share best practices for the 6 Most Common Types of Workplace Emails I learned the hard way over the past few years working as a Product Marketer! \n\nBefore diving into email best practices, you should know that there are 2 main types of emails we encounter at work:\n\n1️⃣ Request-and-reply emails that require input from the reader\n\n2️⃣ Confirmation emails that serve as a record of a conversation or decision\n\nCold emails where you reach out to a colleague for the first time would fall under the \"request-and-reply\" type of email and a best practice there would be start off the email by mentioning how you came across their profile\n\nMeeting minutes would fall under \"confirmation emails\" and a tip there is to include the Key Takeaways and Action Items up front, and perhaps even highlight the specific action owners so there is no room for miscommunication.\n\nNewsletters and Project recaps are usually longer in length, so I recommend adding a \"too long, didn't read\" - or tl;dr - section up top so others can get the most important content right at the beginning and skim through the rest!\n\nTIMESTAMPS\n00:00 Common Types of Workplace Email\n00:37 Two Primary Types of Workplace Emails\n00:52 Cold Emails\n02:41 Action Required Email Blast\n03:54 Meeting Minutes & Email Chain Resets\n04:39 Newsletters & Project Recap Emails\n\nRESOURCES I MENTION IN THE VIDEO\n8 Email Etiquette Tips with HBR - https://youtu.be/1XctnF7C74s\nGoogle Doc Template Gallery - https://docs.google.com/document/u/0/?ftv=1&tgif=c\nThe Good Docs templates - https://thegoodocs.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#emailetiquette", "6 Email Tips Working Professionals Need to Know!", "SHKHEutyukc", 1, 400, false, "https://www.youtube.com/watch?v=SHKHEutyukc", "/downloads/Jeff Su/2021-11-09 6 Email Tips Working Professionals Need to Know!/6 Email Tips Working Professionals Need to Know! [SHKHEutyukc].mp4", false, ~U[2021-11-09 13:00:08Z]] 16:46:17.872 [debug] QUERY OK source="sources" db=0.3ms idle=553.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:17.873 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:46:17.873 [debug] QUERY OK source="media_items" db=0.3ms 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 [126] 16:46:17.874 [info] Kicking off download for media item #126 (SHKHEutyukc) 16:46:17.876 [debug] QUERY OK source="tasks" db=0.2ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [130, 126, ~U[2026-04-23 14:46:17Z], ~U[2026-04-23 14:46:17Z]] 16:46:17.877 [debug] Current batch of media processed. Will check again in 1000ms 16:46:18.271 [info] {"source":"oban","duration":1034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:46:18.877 [debug] Current batch of media processed. Will check again in 1000ms 16:46:19.878 [debug] Current batch of media processed. Will check again in 1000ms 16:46:20.880 [debug] Current batch of media processed. Will check again in 1000ms 16:46:21.881 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🍏 Did you know the Shared Album feature provides you with FREE iCloud storage? If not, you'll love this video on 11 Hidden Apple Photos Features you simply MUST know! \n\nPeople make the mistake of thinking that Apple Photos is a simple Photos app, when in reality there are so many tips and tricks we can use every single day to make your lives easier and more productive\n\nFor example, you can tag individual photos using captions by swiping up on a photo, then searching for those tags to quickly find the images you're looking for\n\nYou can also create an Apple Watch face directly from the Photos app and also create animated wallpapers and lock screens for your iPhone as well! \n\nYou can also choose to turn off location data before you send a photo to family members and/or needy friends and last but not last you can convert Photos directly to PDF via Apple Photos and Apple Books\n\nPretty cool stuff 😎\n\nTIMESTAMPS\n00:00 Get Free iCloud Storage\n01:07 Search for Photo Captions\n01:26 Create Apple Watch Face\n02:04 Create Animated Wallpaper\n02:26 Change Album Wallpaper\n02:43 Change Apple Photos Aspect Ratio\n03:03 Customize Apple Photos Memories\n03:23 Turn off Photos Location Data\n03:45 REALLY Hide Your Photos\n04:22 Use Filters to Quickly Find Photos\n04:36 Convert Photos to PDF\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#applephotos #hiddenfeatures #productivity", "duration" => 312, "filename" => "/downloads/Jeff Su/2021-11-02 11 Hidden Apple Photos Features You MUST Know!/11 Hidden Apple Photos Features You MUST Know! [8IzMQxibfoU].mp4", "id" => "8IzMQxibfoU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8IzMQxibfoU", "playlist_index" => 127, "timestamp" => 1635858005, "title" => "11 Hidden Apple Photos Features You MUST Know!", "upload_date" => "20211102"} 16:46:21.882 [debug] QUERY OK source="sources" db=0.3ms idle=1558.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:46:21.883 [debug] QUERY OK source="sources" db=0.2ms idle=612.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:21.883 [debug] QUERY OK source="media_items" db=0.6ms idle=613.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-11-02 13:00:05Z], 1] 16:46:21.886 [debug] QUERY OK source="media_items" db=1.7ms idle=614.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🍏 Did you know the Shared Album feature provides you with FREE iCloud storage? If not, you'll love this video on 11 Hidden Apple Photos Features you simply MUST know! \n\nPeople make the mistake of thinking that Apple Photos is a simple Photos app, when in reality there are so many tips and tricks we can use every single day to make your lives easier and more productive\n\nFor example, you can tag individual photos using captions by swiping up on a photo, then searching for those tags to quickly find the images you're looking for\n\nYou can also create an Apple Watch face directly from the Photos app and also create animated wallpapers and lock screens for your iPhone as well! \n\nYou can also choose to turn off location data before you send a photo to family members and/or needy friends and last but not last you can convert Photos directly to PDF via Apple Photos and Apple Books\n\nPretty cool stuff 😎\n\nTIMESTAMPS\n00:00 Get Free iCloud Storage\n01:07 Search for Photo Captions\n01:26 Create Apple Watch Face\n02:04 Create Animated Wallpaper\n02:26 Change Album Wallpaper\n02:43 Change Apple Photos Aspect Ratio\n03:03 Customize Apple Photos Memories\n03:23 Turn off Photos Location Data\n03:45 REALLY Hide Your Photos\n04:22 Use Filters to Quickly Find Photos\n04:36 Convert Photos to PDF\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#applephotos #hiddenfeatures #productivity", "11 Hidden Apple Photos Features You MUST Know!", "9738f5e3-ee65-45c8-8ae1-0465a8b684c9", false, "8IzMQxibfoU", 1, [], 312, false, "https://www.youtube.com/watch?v=8IzMQxibfoU", 127, "/downloads/Jeff Su/2021-11-02 11 Hidden Apple Photos Features You MUST Know!/11 Hidden Apple Photos Features You MUST Know! [8IzMQxibfoU].mp4", false, false, 99, ~U[2021-11-02 13:00:05Z], ~U[2026-04-23 14:46:21Z], ~U[2026-04-23 14:46:21Z], "🍏 Did you know the Shared Album feature provides you with FREE iCloud storage? If not, you'll love this video on 11 Hidden Apple Photos Features you simply MUST know! \n\nPeople make the mistake of thinking that Apple Photos is a simple Photos app, when in reality there are so many tips and tricks we can use every single day to make your lives easier and more productive\n\nFor example, you can tag individual photos using captions by swiping up on a photo, then searching for those tags to quickly find the images you're looking for\n\nYou can also create an Apple Watch face directly from the Photos app and also create animated wallpapers and lock screens for your iPhone as well! \n\nYou can also choose to turn off location data before you send a photo to family members and/or needy friends and last but not last you can convert Photos directly to PDF via Apple Photos and Apple Books\n\nPretty cool stuff 😎\n\nTIMESTAMPS\n00:00 Get Free iCloud Storage\n01:07 Search for Photo Captions\n01:26 Create Apple Watch Face\n02:04 Create Animated Wallpaper\n02:26 Change Album Wallpaper\n02:43 Change Apple Photos Aspect Ratio\n03:03 Customize Apple Photos Memories\n03:23 Turn off Photos Location Data\n03:45 REALLY Hide Your Photos\n04:22 Use Filters to Quickly Find Photos\n04:36 Convert Photos to PDF\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#applephotos #hiddenfeatures #productivity", "11 Hidden Apple Photos Features You MUST Know!", "8IzMQxibfoU", 1, 312, false, "https://www.youtube.com/watch?v=8IzMQxibfoU", "/downloads/Jeff Su/2021-11-02 11 Hidden Apple Photos Features You MUST Know!/11 Hidden Apple Photos Features You MUST Know! [8IzMQxibfoU].mp4", false, ~U[2021-11-02 13:00:05Z]] 16:46:21.887 [debug] QUERY OK source="sources" db=0.2ms idle=560.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:21.887 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:46:21.888 [debug] QUERY OK source="media_items" db=0.3ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [127] 16:46:21.888 [info] Kicking off download for media item #127 (8IzMQxibfoU) 16:46:21.892 [debug] QUERY OK source="tasks" db=0.2ms idle=4.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [131, 127, ~U[2026-04-23 14:46:21Z], ~U[2026-04-23 14:46:21Z]] 16:46:21.892 [debug] Current batch of media processed. Will check again in 1000ms 16:46:22.893 [debug] Current batch of media processed. Will check again in 1000ms 16:46:23.894 [debug] Current batch of media processed. Will check again in 1000ms 16:46:24.895 [debug] Current batch of media processed. Will check again in 1000ms 16:46:25.840 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ONa85JLNahw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/50/25/50254f4c7187281b88f303a653f29e6d2d44eb0632c61206e060727eb2a67698.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:46:25.884 [debug] Running yt-dlp command for action: download_thumbnail 16:46:25.886 [debug] QUERY OK source="settings" db=0.3ms idle=616.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:25.888 [debug] QUERY OK source="settings" db=1.0ms idle=616.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:25.890 [debug] QUERY OK source="settings" db=1.8ms idle=618.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:25.890 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ONa85JLNahw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/28/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a1/cf/a1cfb666d36a963353d09da6d4640b24d3774e08eaf590b96a8ebf53c726382f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:46:25.896 [debug] Current batch of media processed. Will check again in 1000ms 16:46:26.898 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "💡 While I still mainly use Google Chrome at work, I \"supplement\" my work browser with Microsoft Edge as my personal browser since it has so many cool features. In this video I'll break down 9 Microsoft Edge Features that Google Chrome doesn't seem to have...yet! \n\nIn the never-ending debate of Microsoft Edge vs. Google Chrome - which is the better browser - there is no right answer...but there are exclusive features! For example, Edge has an Immersive Reader mode that lets you browse webpages without distractions AND within it, the Read Aloud function is great way for you to \"listen\" to PDFs like you would a podcast! \n\nFurthermore, Microsoft Edge has the \"Save to Collections\" feature that is extremely useful when you're doing research and looking to consolidate information on a given topic in 1 central location. And of course, while the Sidebar Search function is great, it could be even better if we could change the default search engine... 😉\n\nTIMESTAMPS\n00:00 Edge features Chrome doesn't have\n00:43 Immersive Reader Mode\n01:19 Read Aloud for PDFs\n02:19 Microsoft Edge PDF Reader\n02:55 Take a Scrollable Screenshot\n03:50 Use Sidebar Search\n05:03 Save Web Content to Collections\n06:21 Best Way to use Vertical Tabs\n07:37 Enable Sleeping Tabs\n08:30 QR Code Generator\n08:49 How to Stand Out at Work\n\nRESOURCES I MENTION IN THE VIDEO\nTop 8 Productivity Tips for Google Chrome: https://youtu.be/KXY-2fIAksY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#edge #chrome", "duration" => 568, "filename" => "/downloads/Jeff Su/2021-10-26 9 Microsoft Edge Features Chrome Doesn't Have (...yet)/9 Microsoft Edge Features Chrome Doesn't Have (...yet) [-O-10X-HFB0].mp4", "id" => "-O-10X-HFB0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-O-10X-HFB0", "playlist_index" => 128, "timestamp" => 1635253201, "title" => "9 Microsoft Edge Features Chrome Doesn't Have (...yet)", "upload_date" => "20211026"} 16:46:26.899 [debug] QUERY OK source="sources" db=0.4ms idle=1564.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:26.900 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1013.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:26.903 [debug] QUERY OK source="media_items" db=2.5ms idle=1012.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-10-26 13:00:01Z], 1] 16:46:26.909 [debug] QUERY OK source="media_items" db=4.8ms idle=1013.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["💡 While I still mainly use Google Chrome at work, I \"supplement\" my work browser with Microsoft Edge as my personal browser since it has so many cool features. In this video I'll break down 9 Microsoft Edge Features that Google Chrome doesn't seem to have...yet! \n\nIn the never-ending debate of Microsoft Edge vs. Google Chrome - which is the better browser - there is no right answer...but there are exclusive features! For example, Edge has an Immersive Reader mode that lets you browse webpages without distractions AND within it, the Read Aloud function is great way for you to \"listen\" to PDFs like you would a podcast! \n\nFurthermore, Microsoft Edge has the \"Save to Collections\" feature that is extremely useful when you're doing research and looking to consolidate information on a given topic in 1 central location. And of course, while the Sidebar Search function is great, it could be even better if we could change the default search engine... 😉\n\nTIMESTAMPS\n00:00 Edge features Chrome doesn't have\n00:43 Immersive Reader Mode\n01:19 Read Aloud for PDFs\n02:19 Microsoft Edge PDF Reader\n02:55 Take a Scrollable Screenshot\n03:50 Use Sidebar Search\n05:03 Save Web Content to Collections\n06:21 Best Way to use Vertical Tabs\n07:37 Enable Sleeping Tabs\n08:30 QR Code Generator\n08:49 How to Stand Out at Work\n\nRESOURCES I MENTION IN THE VIDEO\nTop 8 Productivity Tips for Google Chrome: https://youtu.be/KXY-2fIAksY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#edge #chrome", "9 Microsoft Edge Features Chrome Doesn't Have (...yet)", "38e19e23-a223-4ffb-af7e-b29c75f36b61", false, "-O-10X-HFB0", 1, [], 568, false, "https://www.youtube.com/watch?v=-O-10X-HFB0", 128, "/downloads/Jeff Su/2021-10-26 9 Microsoft Edge Features Chrome Doesn't Have (...yet)/9 Microsoft Edge Features Chrome Doesn't Have (...yet) [-O-10X-HFB0].mp4", false, false, 99, ~U[2021-10-26 13:00:01Z], ~U[2026-04-23 14:46:26Z], ~U[2026-04-23 14:46:26Z], "💡 While I still mainly use Google Chrome at work, I \"supplement\" my work browser with Microsoft Edge as my personal browser since it has so many cool features. In this video I'll break down 9 Microsoft Edge Features that Google Chrome doesn't seem to have...yet! \n\nIn the never-ending debate of Microsoft Edge vs. Google Chrome - which is the better browser - there is no right answer...but there are exclusive features! For example, Edge has an Immersive Reader mode that lets you browse webpages without distractions AND within it, the Read Aloud function is great way for you to \"listen\" to PDFs like you would a podcast! \n\nFurthermore, Microsoft Edge has the \"Save to Collections\" feature that is extremely useful when you're doing research and looking to consolidate information on a given topic in 1 central location. And of course, while the Sidebar Search function is great, it could be even better if we could change the default search engine... 😉\n\nTIMESTAMPS\n00:00 Edge features Chrome doesn't have\n00:43 Immersive Reader Mode\n01:19 Read Aloud for PDFs\n02:19 Microsoft Edge PDF Reader\n02:55 Take a Scrollable Screenshot\n03:50 Use Sidebar Search\n05:03 Save Web Content to Collections\n06:21 Best Way to use Vertical Tabs\n07:37 Enable Sleeping Tabs\n08:30 QR Code Generator\n08:49 How to Stand Out at Work\n\nRESOURCES I MENTION IN THE VIDEO\nTop 8 Productivity Tips for Google Chrome: https://youtu.be/KXY-2fIAksY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#edge #chrome", "9 Microsoft Edge Features Chrome Doesn't Have (...yet)", "-O-10X-HFB0", 1, 568, false, "https://www.youtube.com/watch?v=-O-10X-HFB0", "/downloads/Jeff Su/2021-10-26 9 Microsoft Edge Features Chrome Doesn't Have (...yet)/9 Microsoft Edge Features Chrome Doesn't Have (...yet) [-O-10X-HFB0].mp4", false, ~U[2021-10-26 13:00:01Z]] 16:46:26.911 [debug] QUERY OK source="sources" db=1.7ms idle=573.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:26.912 [debug] QUERY OK source="media_profiles" db=0.6ms idle=12.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] 16:46:26.913 [debug] QUERY OK source="media_items" db=0.7ms idle=12.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 [128] 16:46:26.914 [info] Kicking off download for media item #128 (-O-10X-HFB0) 16:46:26.921 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=9.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [132, 128, ~U[2026-04-23 14:46:26Z], ~U[2026-04-23 14:46:26Z]] 16:46:26.921 [debug] Current batch of media processed. Will check again in 1000ms 16:46:27.921 [debug] Current batch of media processed. Will check again in 1000ms 16:46:28.922 [debug] Current batch of media processed. Will check again in 1000ms 16:46:29.924 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎨 Create a free Canva account here: https://partner.canva.com/jeffsu\n\n🎆 Use my Event template (for free): https://partner.canva.com/P0VJ1X\n\nWhether you're a student or working professional, you'll be sure to find some inspiration after seeing the 7 creative ways I use this free tool - Canva! In this video I go over 7 ways I use Canva.com as a professional that has helped me stand out at work.\n\nFirst, you're able to import entire PDFs into Canva and Canva will let you edit the entire file - from the background to the words on the slides. This is extremely helpful if you only need to use part of the content from the PDF.\n\nSpeaking of presentations, you're able to use the \"Frames\" feature to create mockups of basically anything you want; from book covers to website design. These small adjustments will really help your audience visualize the ideas in your head. \n\nI also use Canva to create professional LinkedIn profile pictures and background banners. Not only are there existing templates you can use immediately, Canva provides you with a lot of tools to make your images look just right\n\nAnd that's just the tip of the iceberg! I share a lot more Canva tips and tricks within the video itself, enjoy 😁\n\nTIMESTAMPS \n00:00 Intro\n00:28 TOTB Episode 2\n00:47 Import and Edit PDFs on Canva\n01:45 Use Frames in Canva\n02:56 Create LinkedIn Profile Picture\n06:05 Create LinkedIn Background Banner\n07:18 Design Event Poster on Canva\n09:14 Create Resume or Cover Letter\n10:23 Create any Design you want on Canva\n\nRESOURCES I MENTION IN THE VIDEO\nEvent template: https://www.canva.com/design/DAEs2JBSIOM/wdToFpyvRMzEqbM2uWV00g/view?utm_content=DAEs2JBSIOM&utm_campaign=designshare&utm_medium=link&utm_source=sharebutton&mode=preview\nLinkedIn Best Practices - https://www.youtube.com/watch?v=BcfGWi8Qywk&list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nEvent Management 101 - https://youtu.be/b3B24wl3gCQ\nWrite an Amazing Resume - https://youtu.be/Tt08KmFfIYQ\nWrite an Outstanding Cover Letter - https://youtu.be/NUhDP30IRKk\nRemove Background - https://www.remove.bg/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n🎨 Canva - https://partner.canva.com/jeffsu\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#thinkoutsidethebox #canva #canvalove", "duration" => 686, "filename" => "/downloads/Jeff Su/2021-10-19 7 Creative Ways to use Canva!/7 Creative Ways to use Canva! [w0Bf4u-u9AQ].mp4", "id" => "w0Bf4u-u9AQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=w0Bf4u-u9AQ", "playlist_index" => 129, "timestamp" => 1634648424, "title" => "7 Creative Ways to use Canva!", "upload_date" => "20211019"} 16:46:29.925 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1654.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:29.928 [debug] QUERY OK source="sources" db=2.4ms idle=1655.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:29.929 [debug] QUERY OK source="media_items" db=0.9ms idle=1658.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-10-19 13:00:24Z], 1] 16:46:29.933 [debug] QUERY OK source="media_items" db=2.5ms idle=1589.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎨 Create a free Canva account here: https://partner.canva.com/jeffsu\n\n🎆 Use my Event template (for free): https://partner.canva.com/P0VJ1X\n\nWhether you're a student or working professional, you'll be sure to find some inspiration after seeing the 7 creative ways I use this free tool - Canva! In this video I go over 7 ways I use Canva.com as a professional that has helped me stand out at work.\n\nFirst, you're able to import entire PDFs into Canva and Canva will let you edit the entire file - from the background to the words on the slides. This is extremely helpful if you only need to use part of the content from the PDF.\n\nSpeaking of presentations, you're able to use the \"Frames\" feature to create mockups of basically anything you want; from book covers to website design. These small adjustments will really help your audience visualize the ideas in your head. \n\nI also use Canva to create professional LinkedIn profile pictures and background banners. Not only are there existing templates you can use immediately, Canva provides you with a lot of tools to make your images look just right\n\nAnd that's just the tip of the iceberg! I share a lot more Canva tips and tricks within the video itself, enjoy 😁\n\nTIMESTAMPS \n00:00 Intro\n00:28 TOTB Episode 2\n00:47 Import and Edit PDFs on Canva\n01:45 Use Frames in Canva\n02:56 Create LinkedIn Profile Picture\n06:05 Create LinkedIn Background Banner\n07:18 Design Event Poster on Canva\n09:14 Create Resume or Cover Letter\n10:23 Create any Design you want on Canva\n\nRESOURCES I MENTION IN THE VIDEO\nEvent template: https://www.canva.com/design/DAEs2JBSIOM/wdToFpyvRMzEqbM2uWV00g/view?utm_content=DAEs2JBSIOM&utm_campaign=designshare&utm_medium=link&utm_source=sharebutton&mode=preview\nLinkedIn Best Practices - https://www.youtube.com/watch?v=BcfGWi8Qywk&list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nEvent Management 101 - https://youtu.be/b3B24wl3gCQ\nWrite an Amazing Resume - https://youtu.be/Tt08KmFfIYQ\nWrite an Outstanding Cover Letter - https://youtu.be/NUhDP30IRKk\nRemove Background - https://www.remove.bg/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n🎨 Canva - https://partner.canva.com/jeffsu\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#thinkoutsidethebox #canva #canvalove", "7 Creative Ways to use Canva!", "625c1c15-7f3a-48a4-bdc8-dd2e3d6741c7", false, "w0Bf4u-u9AQ", 1, [], 686, false, "https://www.youtube.com/watch?v=w0Bf4u-u9AQ", 129, "/downloads/Jeff Su/2021-10-19 7 Creative Ways to use Canva!/7 Creative Ways to use Canva! [w0Bf4u-u9AQ].mp4", false, false, 99, ~U[2021-10-19 13:00:24Z], ~U[2026-04-23 14:46:29Z], ~U[2026-04-23 14:46:29Z], "🎨 Create a free Canva account here: https://partner.canva.com/jeffsu\n\n🎆 Use my Event template (for free): https://partner.canva.com/P0VJ1X\n\nWhether you're a student or working professional, you'll be sure to find some inspiration after seeing the 7 creative ways I use this free tool - Canva! In this video I go over 7 ways I use Canva.com as a professional that has helped me stand out at work.\n\nFirst, you're able to import entire PDFs into Canva and Canva will let you edit the entire file - from the background to the words on the slides. This is extremely helpful if you only need to use part of the content from the PDF.\n\nSpeaking of presentations, you're able to use the \"Frames\" feature to create mockups of basically anything you want; from book covers to website design. These small adjustments will really help your audience visualize the ideas in your head. \n\nI also use Canva to create professional LinkedIn profile pictures and background banners. Not only are there existing templates you can use immediately, Canva provides you with a lot of tools to make your images look just right\n\nAnd that's just the tip of the iceberg! I share a lot more Canva tips and tricks within the video itself, enjoy 😁\n\nTIMESTAMPS \n00:00 Intro\n00:28 TOTB Episode 2\n00:47 Import and Edit PDFs on Canva\n01:45 Use Frames in Canva\n02:56 Create LinkedIn Profile Picture\n06:05 Create LinkedIn Background Banner\n07:18 Design Event Poster on Canva\n09:14 Create Resume or Cover Letter\n10:23 Create any Design you want on Canva\n\nRESOURCES I MENTION IN THE VIDEO\nEvent template: https://www.canva.com/design/DAEs2JBSIOM/wdToFpyvRMzEqbM2uWV00g/view?utm_content=DAEs2JBSIOM&utm_campaign=designshare&utm_medium=link&utm_source=sharebutton&mode=preview\nLinkedIn Best Practices - https://www.youtube.com/watch?v=BcfGWi8Qywk&list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nEvent Management 101 - https://youtu.be/b3B24wl3gCQ\nWrite an Amazing Resume - https://youtu.be/Tt08KmFfIYQ\nWrite an Outstanding Cover Letter - https://youtu.be/NUhDP30IRKk\nRemove Background - https://www.remove.bg/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n🎨 Canva - https://partner.canva.com/jeffsu\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#thinkoutsidethebox #canva #canvalove", "7 Creative Ways to use Canva!", "w0Bf4u-u9AQ", 1, 686, false, "https://www.youtube.com/watch?v=w0Bf4u-u9AQ", "/downloads/Jeff Su/2021-10-19 7 Creative Ways to use Canva!/7 Creative Ways to use Canva! [w0Bf4u-u9AQ].mp4", false, ~U[2021-10-19 13:00:24Z]] 16:46:29.935 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=590.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:29.936 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=10.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:46:29.938 [debug] QUERY OK source="media_items" db=0.9ms idle=8.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [129] 16:46:29.938 [info] Kicking off download for media item #129 (w0Bf4u-u9AQ) 16:46:29.942 [debug] QUERY OK source="tasks" db=0.4ms idle=6.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [133, 129, ~U[2026-04-23 14:46:29Z], ~U[2026-04-23 14:46:29Z]] 16:46:29.942 [debug] Current batch of media processed. Will check again in 1000ms 16:46:30.942 [debug] Current batch of media processed. Will check again in 1000ms 16:46:31.922 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ONa85JLNahw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/28/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a1/cf/a1cfb666d36a963353d09da6d4640b24d3774e08eaf590b96a8ebf53c726382f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:46:31.923 [debug] QUERY OK db=0.0ms idle=653.5ms begin [] 16:46:31.924 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:46:25Z], "/downloads/Jeff Su/2025-02-25 Google Tasks: Top 10 Tips for Getting Things Done!/Google Tasks: Top 10 Tips for Getting Things Done! [ONa85JLNahw].mp4", "/downloads/Jeff Su/2025-02-25 Google Tasks: Top 10 Tips for Getting Things Done!/Google Tasks: Top 10 Tips for Getting Things Done! [ONa85JLNahw].info.json", "/downloads/Jeff Su/2025-02-25 Google Tasks: Top 10 Tips for Getting Things Done!/Google Tasks: Top 10 Tips for Getting Things Done! [ONa85JLNahw].nfo", "/downloads/Jeff Su/2025-02-25 Google Tasks: Top 10 Tips for Getting Things Done!/Google Tasks: Top 10 Tips for Getting Things Done! [ONa85JLNahw]-thumb.jpg", ~U[2026-04-23 14:46:31Z], 28] 16:46:31.931 [debug] QUERY OK source="media_metadata" db=6.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/28/metadata.json.gz", "/config/metadata/media_items/28/thumbnail.jpg", 28, ~U[2026-04-23 14:46:31Z], ~U[2026-04-23 14:46:31Z]] 16:46:31.932 [debug] QUERY OK db=0.7ms commit [] 16:46:31.934 [debug] QUERY OK source="media_items" db=1.3ms idle=662.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [23830051, ~U[2026-04-23 14:46:31Z], 28] 16:46:31.934 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:46:31.935 [info] {"args":{"id":28},"id":32,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":32105411,"event":"job:stop","queue_time":402827838,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:46:31.942 [info] {"args":{"id":29},"id":33,"meta":{},"system_time":1776955591942032266,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:46:31.943 [debug] QUERY OK source="media_items" db=0.5ms idle=595.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" = ?) [29] 16:46:31.943 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:46:31.943 [debug] Current batch of media processed. Will check again in 1000ms 16:46:31.943 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:46:31.944 [debug] QUERY OK source="media_profiles" db=0.7ms idle=9.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:46:31.945 [debug] QUERY OK source="media_items" db=0.3ms idle=9.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29] 16:46:31.946 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.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" = ?) [29] 16:46:31.946 [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] 16:46:31.947 [debug] QUERY OK source="settings" db=0.1ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:31.947 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:31.948 [debug] Running yt-dlp command for action: get_downloadable_status 16:46:31.950 [debug] QUERY OK source="settings" db=1.5ms 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 [] 16:46:31.951 [debug] QUERY OK source="settings" db=0.2ms queue=0.2ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:31.951 [debug] QUERY OK source="settings" db=0.1ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:31.951 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RudrWy9uPZE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d0/b8/d0b8e26617f83b1f86213da1088b134bb0d211f983988813761bfef3be0d28d9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:46:32.636 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Oo_GGWV9Hys --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/60/ea/60ead19292fe14f596ce08ca05284b1d0fb64368620000b085a25fdeb3e873d0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:46:32.674 [debug] Running yt-dlp command for action: download_thumbnail 16:46:32.675 [debug] QUERY OK source="settings" db=0.2ms idle=727.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:32.675 [debug] QUERY OK source="settings" db=0.2ms idle=724.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:32.676 [debug] QUERY OK source="settings" db=0.2ms idle=724.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:32.676 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Oo_GGWV9Hys --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/27/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d1/3b/d13bfbec610fa03735fb90b74a572dd1e97cf089eae33fd91a7007af7f3113e3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:46:32.944 [debug] Current batch of media processed. Will check again in 1000ms 16:46:33.946 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Take the full Skillshare course here 👉🏻 https://geni.us/eventmanagement101\n\nDownload my Event Management template on Google Sheets 👉🏻 https://geni.us/eventtemplate\n\n🎊 Whether you're hosting a surprise party or planning a large corporate event, you want to follow a structured process to ensure an enjoyable experience for your attendees. So, in this Event Management 101 video with Google Sheets, I break down event planning and take you through my method step-by-step!\n\nNo matter what type of event you're planning, there are many constants: attendees, registration or invitation process, speakers and agenda, marketing materials, and communication channels. Literally every event in the world has these things in some shape or form. \n\nI like to break down event planning into different buckets: Pre-event, during-event, and post-event. This allows me to structure my thoughts whether I'm planning a wedding, a birthday party, or a team offsite.\n\nWhile the concepts in this Youtube video is more than enough for most people, if you're a professional who frequently comes into contact with events at work, or an aspiring marketer, the full introduction to event management Skillshare course will be very useful!\n\nTIMESTAMPS\n00:00 Similarities between different types of events\n00:53 My experience planning and managing events\n01:36 Who is this course for?\n01:59 Snippet from Skillshare Course\n04:58 Access the Google Sheets template\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#eventmanagement #eventplanning #marketing", "duration" => 346, "filename" => "/downloads/Jeff Su/2021-10-12 Intro to Event Planning & Management (with Google Sheets)/Intro to Event Planning & Management (with Google Sheets) [b3B24wl3gCQ].mp4", "id" => "b3B24wl3gCQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=b3B24wl3gCQ", "playlist_index" => 130, "timestamp" => 1634043616, "title" => "Intro to Event Planning & Management (with Google Sheets)", "upload_date" => "20211012"} 16:46:33.947 [debug] QUERY OK source="sources" db=0.3ms idle=1271.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:33.947 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1271.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:33.948 [debug] QUERY OK source="media_items" db=0.7ms idle=1271.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-10-12 13:00:16Z], 1] 16:46:33.952 [debug] QUERY OK source="media_items" db=2.0ms idle=679.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Take the full Skillshare course here 👉🏻 https://geni.us/eventmanagement101\n\nDownload my Event Management template on Google Sheets 👉🏻 https://geni.us/eventtemplate\n\n🎊 Whether you're hosting a surprise party or planning a large corporate event, you want to follow a structured process to ensure an enjoyable experience for your attendees. So, in this Event Management 101 video with Google Sheets, I break down event planning and take you through my method step-by-step!\n\nNo matter what type of event you're planning, there are many constants: attendees, registration or invitation process, speakers and agenda, marketing materials, and communication channels. Literally every event in the world has these things in some shape or form. \n\nI like to break down event planning into different buckets: Pre-event, during-event, and post-event. This allows me to structure my thoughts whether I'm planning a wedding, a birthday party, or a team offsite.\n\nWhile the concepts in this Youtube video is more than enough for most people, if you're a professional who frequently comes into contact with events at work, or an aspiring marketer, the full introduction to event management Skillshare course will be very useful!\n\nTIMESTAMPS\n00:00 Similarities between different types of events\n00:53 My experience planning and managing events\n01:36 Who is this course for?\n01:59 Snippet from Skillshare Course\n04:58 Access the Google Sheets template\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#eventmanagement #eventplanning #marketing", "Intro to Event Planning & Management (with Google Sheets)", "74a38106-97e9-491c-a246-862fea93c851", false, "b3B24wl3gCQ", 1, [], 346, false, "https://www.youtube.com/watch?v=b3B24wl3gCQ", 130, "/downloads/Jeff Su/2021-10-12 Intro to Event Planning & Management (with Google Sheets)/Intro to Event Planning & Management (with Google Sheets) [b3B24wl3gCQ].mp4", false, false, 99, ~U[2021-10-12 13:00:16Z], ~U[2026-04-23 14:46:33Z], ~U[2026-04-23 14:46:33Z], "Take the full Skillshare course here 👉🏻 https://geni.us/eventmanagement101\n\nDownload my Event Management template on Google Sheets 👉🏻 https://geni.us/eventtemplate\n\n🎊 Whether you're hosting a surprise party or planning a large corporate event, you want to follow a structured process to ensure an enjoyable experience for your attendees. So, in this Event Management 101 video with Google Sheets, I break down event planning and take you through my method step-by-step!\n\nNo matter what type of event you're planning, there are many constants: attendees, registration or invitation process, speakers and agenda, marketing materials, and communication channels. Literally every event in the world has these things in some shape or form. \n\nI like to break down event planning into different buckets: Pre-event, during-event, and post-event. This allows me to structure my thoughts whether I'm planning a wedding, a birthday party, or a team offsite.\n\nWhile the concepts in this Youtube video is more than enough for most people, if you're a professional who frequently comes into contact with events at work, or an aspiring marketer, the full introduction to event management Skillshare course will be very useful!\n\nTIMESTAMPS\n00:00 Similarities between different types of events\n00:53 My experience planning and managing events\n01:36 Who is this course for?\n01:59 Snippet from Skillshare Course\n04:58 Access the Google Sheets template\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#eventmanagement #eventplanning #marketing", "Intro to Event Planning & Management (with Google Sheets)", "b3B24wl3gCQ", 1, 346, false, "https://www.youtube.com/watch?v=b3B24wl3gCQ", "/downloads/Jeff Su/2021-10-12 Intro to Event Planning & Management (with Google Sheets)/Intro to Event Planning & Management (with Google Sheets) [b3B24wl3gCQ].mp4", false, ~U[2021-10-12 13:00:16Z]] 16:46:33.953 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=601.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:33.953 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:46:33.954 [debug] QUERY OK source="media_items" db=0.3ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [130] 16:46:33.954 [info] Kicking off download for media item #130 (b3B24wl3gCQ) 16:46:33.958 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [134, 130, ~U[2026-04-23 14:46:33Z], ~U[2026-04-23 14:46:33Z]] 16:46:33.958 [debug] Current batch of media processed. Will check again in 1000ms 16:46:34.958 [debug] Current batch of media processed. Will check again in 1000ms 16:46:35.966 [debug] Current batch of media processed. Will check again in 1000ms 16:46:36.967 [debug] Current batch of media processed. Will check again in 1000ms 16:46:37.969 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "📈 Career Development video: https://youtu.be/bQV58TZW6hQ\n\n🥂 By now, we all know how important a role our managers play in our professional development. So in this video, I share 6 Tips for Productive 1:1 Meetings with Your Manager that you can apply immediately in your next one on one with your boss! \n\nIf you think about it, it's in both you and your manager's best interests to have effective 1 on 1 meetings, since constructive 1:1s throughout the year makes performance reviews a breeze. With routine 1:1s, review time can be more about goals and the year ahead instead of constructive feedback from the past 🙌\n\nThe problem is that most of us (I fell victim to this as well) take a rather passive approach to 1:1 meetings. Case in point: If you run a quick Google search, you'll find a LOT of resources teaching managers how to conduct 1:1's with us, but very few resources teaching us how to manage up effectively!\n\nTo make the most out of your next one on one meeting with the boss, you want to prepare an agenda beforehand, have a robust structure during the 1:1 meeting, and follow up afterwards. \n\nLet me know how your next 1:1 meeting goes 😉\n\nTIMESTAMPS\n00:00 Intro\n00:20 Why 1:1's are Important\n01:01 How to Prepare Before a 1:1\n02:49 What to say During the 1:1\n04:42 How to Follow Up after a 1:1\n05:45 Summary of 1:1 Best Practices\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle re:Work website - https://rework.withgoogle.com/guides/managers-coach-managers-to-coach/steps/hold-effective-1-1-meetings/\nRadical Candor by Kim Scott - https://www.radicalcandor.com/effective-one-on-ones/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#professionaldevelopment #productivityatwork", "duration" => 378, "filename" => "/downloads/Jeff Su/2021-10-05 6 Tips for Productive 1_1 Meetings with Your Manager/6 Tips for Productive 1_1 Meetings with Your Manager [LWz57CpcSnE].mp4", "id" => "LWz57CpcSnE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LWz57CpcSnE", "playlist_index" => 131, "timestamp" => 1633438825, "title" => "6 Tips for Productive 1:1 Meetings with Your Manager", "upload_date" => "20211005"} 16:46:37.971 [debug] QUERY OK source="sources" db=1.1ms idle=699.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:37.972 [debug] QUERY OK source="sources" db=0.6ms idle=701.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:37.973 [debug] QUERY OK source="media_items" db=0.7ms idle=702.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-10-05 13:00:25Z], 1] 16:46:37.976 [debug] QUERY OK source="media_items" db=2.1ms idle=703.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📈 Career Development video: https://youtu.be/bQV58TZW6hQ\n\n🥂 By now, we all know how important a role our managers play in our professional development. So in this video, I share 6 Tips for Productive 1:1 Meetings with Your Manager that you can apply immediately in your next one on one with your boss! \n\nIf you think about it, it's in both you and your manager's best interests to have effective 1 on 1 meetings, since constructive 1:1s throughout the year makes performance reviews a breeze. With routine 1:1s, review time can be more about goals and the year ahead instead of constructive feedback from the past 🙌\n\nThe problem is that most of us (I fell victim to this as well) take a rather passive approach to 1:1 meetings. Case in point: If you run a quick Google search, you'll find a LOT of resources teaching managers how to conduct 1:1's with us, but very few resources teaching us how to manage up effectively!\n\nTo make the most out of your next one on one meeting with the boss, you want to prepare an agenda beforehand, have a robust structure during the 1:1 meeting, and follow up afterwards. \n\nLet me know how your next 1:1 meeting goes 😉\n\nTIMESTAMPS\n00:00 Intro\n00:20 Why 1:1's are Important\n01:01 How to Prepare Before a 1:1\n02:49 What to say During the 1:1\n04:42 How to Follow Up after a 1:1\n05:45 Summary of 1:1 Best Practices\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle re:Work website - https://rework.withgoogle.com/guides/managers-coach-managers-to-coach/steps/hold-effective-1-1-meetings/\nRadical Candor by Kim Scott - https://www.radicalcandor.com/effective-one-on-ones/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#professionaldevelopment #productivityatwork", "6 Tips for Productive 1:1 Meetings with Your Manager", "fb94e417-77db-41bd-b7d1-4960cf22283c", false, "LWz57CpcSnE", 1, [], 378, false, "https://www.youtube.com/watch?v=LWz57CpcSnE", 131, "/downloads/Jeff Su/2021-10-05 6 Tips for Productive 1_1 Meetings with Your Manager/6 Tips for Productive 1_1 Meetings with Your Manager [LWz57CpcSnE].mp4", false, false, 99, ~U[2021-10-05 13:00:25Z], ~U[2026-04-23 14:46:37Z], ~U[2026-04-23 14:46:37Z], "📈 Career Development video: https://youtu.be/bQV58TZW6hQ\n\n🥂 By now, we all know how important a role our managers play in our professional development. So in this video, I share 6 Tips for Productive 1:1 Meetings with Your Manager that you can apply immediately in your next one on one with your boss! \n\nIf you think about it, it's in both you and your manager's best interests to have effective 1 on 1 meetings, since constructive 1:1s throughout the year makes performance reviews a breeze. With routine 1:1s, review time can be more about goals and the year ahead instead of constructive feedback from the past 🙌\n\nThe problem is that most of us (I fell victim to this as well) take a rather passive approach to 1:1 meetings. Case in point: If you run a quick Google search, you'll find a LOT of resources teaching managers how to conduct 1:1's with us, but very few resources teaching us how to manage up effectively!\n\nTo make the most out of your next one on one meeting with the boss, you want to prepare an agenda beforehand, have a robust structure during the 1:1 meeting, and follow up afterwards. \n\nLet me know how your next 1:1 meeting goes 😉\n\nTIMESTAMPS\n00:00 Intro\n00:20 Why 1:1's are Important\n01:01 How to Prepare Before a 1:1\n02:49 What to say During the 1:1\n04:42 How to Follow Up after a 1:1\n05:45 Summary of 1:1 Best Practices\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle re:Work website - https://rework.withgoogle.com/guides/managers-coach-managers-to-coach/steps/hold-effective-1-1-meetings/\nRadical Candor by Kim Scott - https://www.radicalcandor.com/effective-one-on-ones/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#professionaldevelopment #productivityatwork", "6 Tips for Productive 1:1 Meetings with Your Manager", "LWz57CpcSnE", 1, 378, false, "https://www.youtube.com/watch?v=LWz57CpcSnE", "/downloads/Jeff Su/2021-10-05 6 Tips for Productive 1_1 Meetings with Your Manager/6 Tips for Productive 1_1 Meetings with Your Manager [LWz57CpcSnE].mp4", false, ~U[2021-10-05 13:00:25Z]] 16:46:37.977 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=613.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:37.978 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:46:37.979 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [131] 16:46:37.979 [info] Kicking off download for media item #131 (LWz57CpcSnE) 16:46:37.983 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=5.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [135, 131, ~U[2026-04-23 14:46:37Z], ~U[2026-04-23 14:46:37Z]] 16:46:37.983 [debug] Current batch of media processed. Will check again in 1000ms 16:46:38.205 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RudrWy9uPZE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d0/b8/d0b8e26617f83b1f86213da1088b134bb0d211f983988813761bfef3be0d28d9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:46:38.205 [debug] Running yt-dlp command for action: download 16:46:38.206 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=227.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:38.207 [debug] QUERY OK source="settings" db=0.3ms idle=227.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:38.207 [debug] QUERY OK source="settings" db=0.4ms idle=225.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:38.208 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RudrWy9uPZE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0c/65/0c650e4cb684322fde04ebf89c6c6491eeea2a18b3996670691cb8adae989cac.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:46:38.983 [debug] Current batch of media processed. Will check again in 1000ms 16:46:39.265 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Oo_GGWV9Hys --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/27/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d1/3b/d13bfbec610fa03735fb90b74a572dd1e97cf089eae33fd91a7007af7f3113e3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:46:39.266 [debug] QUERY OK db=0.1ms idle=1282.7ms begin [] 16:46:39.268 [debug] QUERY OK source="media_items" db=1.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:46:32Z], "/downloads/Jeff Su/2025-03-18 How to Build a Prompts Database in Notion (template included)!/How to Build a Prompts Database in Notion (template included)! [Oo_GGWV9Hys].mp4", "/downloads/Jeff Su/2025-03-18 How to Build a Prompts Database in Notion (template included)!/How to Build a Prompts Database in Notion (template included)! [Oo_GGWV9Hys].info.json", "/downloads/Jeff Su/2025-03-18 How to Build a Prompts Database in Notion (template included)!/How to Build a Prompts Database in Notion (template included)! [Oo_GGWV9Hys].nfo", "/downloads/Jeff Su/2025-03-18 How to Build a Prompts Database in Notion (template included)!/How to Build a Prompts Database in Notion (template included)! [Oo_GGWV9Hys]-thumb.jpg", ~U[2026-04-23 14:46:39Z], 27] 16:46:39.271 [debug] QUERY OK source="media_metadata" db=2.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/27/metadata.json.gz", "/config/metadata/media_items/27/thumbnail.jpg", 27, ~U[2026-04-23 14:46:39Z], ~U[2026-04-23 14:46:39Z]] 16:46:39.271 [debug] QUERY OK db=0.5ms commit [] 16:46:39.275 [debug] QUERY OK source="media_items" db=3.3ms idle=907.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [38087600, ~U[2026-04-23 14:46:39Z], 27] 16:46:39.276 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:46:39.277 [info] {"args":{"id":27},"id":31,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":42497996,"event":"job:stop","queue_time":403776891,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:46:39.288 [info] {"args":{"id":30},"id":34,"meta":{},"system_time":1776955599287995683,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:46:39.288 [debug] QUERY OK source="media_items" db=0.3ms idle=17.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" = ?) [30] 16:46:39.289 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:46:39.295 [debug] QUERY OK source="sources" db=3.7ms queue=2.4ms idle=17.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:39.297 [debug] QUERY OK source="media_profiles" db=0.4ms queue=1.1ms idle=20.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] 16:46:39.298 [debug] QUERY OK source="media_items" db=0.4ms idle=20.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 [30] 16:46:39.299 [debug] QUERY OK source="media_metadata" db=0.2ms idle=11.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [30] 16:46:39.300 [debug] QUERY OK source="media_profiles" db=0.2ms idle=11.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:46:39.301 [debug] QUERY OK source="settings" db=0.2ms idle=5.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:39.301 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:46:39.302 [debug] Running yt-dlp command for action: get_downloadable_status 16:46:39.303 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:46:39.304 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:46:39.305 [debug] QUERY OK source="settings" db=0.9ms 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 [] 16:46:39.305 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wBi8IDngmiE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/49/23/492306271f811ed1b1613286aeb19449fd47d854ceb88c2f1c56f81834c2f146.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:46:39.984 [debug] Current batch of media processed. Will check again in 1000ms 16:46:40.985 [debug] Current batch of media processed. Will check again in 1000ms 16:46:41.987 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🗯 \"Nothing good in life comes easy\" so in this video, I'm going to share you How to Job Search on Linkedin...the HARD way! \n\nIf you're a job seeker trying to use LinkedIn to find a job, you might think that using the \"Apply Now\" or Easy Apply feature is your best bet. It's fast and efficient right? The problem with that approach is that since it is so easy, everyone is doing the same thing so it's hard for you to stand out as a job seeker on LinkedIn\n\nOr perhaps you KNOW you need to network on LinkedIn to find a job you want, but you're not sure where to start. The best way to begin is to engage with active LinkedIn users, who usually have a vast network already. You do this by first finding out where the active users are and commenting on their posts. Rinse and repeat for 2-4 weeks and I promise you will make progress on your job search journey\n\nAfter you have engaged and hopefully re-engaged these active LinkedIn users, you want to follow up and send connection requests that get accepted. I highly recommend Austin Belcak's 3-step LinkedIn Connection Request formula since it's so simple and effective\n\nFirst, lead with positivity, then show them you've done your homework, and finally ask them a genuine question so they feel like you're seeking guidance from them (which you are!) \n\nGood luck and enjoy the journey 😁\n\nTIMESTAMPS\n00:00 Find active LinkedIn Professionals\n01:16 Why online applications don't work\n02:09 Benefits of commenting on LinkedIn\n03:23 What to say in LinkedIn Connection Requests\n05:03 LinkedIn Connect Request Example\n\nRESOURCES I MENTION IN THE VIDEO\nPersonal CRM video - https://youtu.be/CvHFg5ASuh8\nAustin's LinkedIn Connection Request Article - https://cultivatedculture.com/linkedin-connection-requests/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #jobsearch #notgoodcomeseasy", "duration" => 366, "filename" => "/downloads/Jeff Su/2021-09-28 Job Search on LinkedIn: The 1 Tip You Need to Know!/Job Search on LinkedIn: The 1 Tip You Need to Know! [CwjwnHJE5sU].mp4", "id" => "CwjwnHJE5sU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CwjwnHJE5sU", "playlist_index" => 132, "timestamp" => 1632834006, "title" => "Job Search on LinkedIn: The 1 Tip You Need to Know!", "upload_date" => "20210928"} 16:46:41.988 [debug] QUERY OK source="sources" db=0.3ms idle=716.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:41.988 [debug] QUERY OK source="sources" db=0.1ms idle=717.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:41.989 [debug] QUERY OK source="media_items" db=0.6ms idle=717.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-09-28 13:00:06Z], 1] 16:46:41.993 [debug] QUERY OK source="media_items" db=2.2ms queue=0.1ms idle=718.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🗯 \"Nothing good in life comes easy\" so in this video, I'm going to share you How to Job Search on Linkedin...the HARD way! \n\nIf you're a job seeker trying to use LinkedIn to find a job, you might think that using the \"Apply Now\" or Easy Apply feature is your best bet. It's fast and efficient right? The problem with that approach is that since it is so easy, everyone is doing the same thing so it's hard for you to stand out as a job seeker on LinkedIn\n\nOr perhaps you KNOW you need to network on LinkedIn to find a job you want, but you're not sure where to start. The best way to begin is to engage with active LinkedIn users, who usually have a vast network already. You do this by first finding out where the active users are and commenting on their posts. Rinse and repeat for 2-4 weeks and I promise you will make progress on your job search journey\n\nAfter you have engaged and hopefully re-engaged these active LinkedIn users, you want to follow up and send connection requests that get accepted. I highly recommend Austin Belcak's 3-step LinkedIn Connection Request formula since it's so simple and effective\n\nFirst, lead with positivity, then show them you've done your homework, and finally ask them a genuine question so they feel like you're seeking guidance from them (which you are!) \n\nGood luck and enjoy the journey 😁\n\nTIMESTAMPS\n00:00 Find active LinkedIn Professionals\n01:16 Why online applications don't work\n02:09 Benefits of commenting on LinkedIn\n03:23 What to say in LinkedIn Connection Requests\n05:03 LinkedIn Connect Request Example\n\nRESOURCES I MENTION IN THE VIDEO\nPersonal CRM video - https://youtu.be/CvHFg5ASuh8\nAustin's LinkedIn Connection Request Article - https://cultivatedculture.com/linkedin-connection-requests/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #jobsearch #notgoodcomeseasy", "Job Search on LinkedIn: The 1 Tip You Need to Know!", "e2d0b86f-2962-4837-89c9-06161b4f3ba1", false, "CwjwnHJE5sU", 1, [], 366, false, "https://www.youtube.com/watch?v=CwjwnHJE5sU", 132, "/downloads/Jeff Su/2021-09-28 Job Search on LinkedIn: The 1 Tip You Need to Know!/Job Search on LinkedIn: The 1 Tip You Need to Know! [CwjwnHJE5sU].mp4", false, false, 99, ~U[2021-09-28 13:00:06Z], ~U[2026-04-23 14:46:41Z], ~U[2026-04-23 14:46:41Z], "🗯 \"Nothing good in life comes easy\" so in this video, I'm going to share you How to Job Search on Linkedin...the HARD way! \n\nIf you're a job seeker trying to use LinkedIn to find a job, you might think that using the \"Apply Now\" or Easy Apply feature is your best bet. It's fast and efficient right? The problem with that approach is that since it is so easy, everyone is doing the same thing so it's hard for you to stand out as a job seeker on LinkedIn\n\nOr perhaps you KNOW you need to network on LinkedIn to find a job you want, but you're not sure where to start. The best way to begin is to engage with active LinkedIn users, who usually have a vast network already. You do this by first finding out where the active users are and commenting on their posts. Rinse and repeat for 2-4 weeks and I promise you will make progress on your job search journey\n\nAfter you have engaged and hopefully re-engaged these active LinkedIn users, you want to follow up and send connection requests that get accepted. I highly recommend Austin Belcak's 3-step LinkedIn Connection Request formula since it's so simple and effective\n\nFirst, lead with positivity, then show them you've done your homework, and finally ask them a genuine question so they feel like you're seeking guidance from them (which you are!) \n\nGood luck and enjoy the journey 😁\n\nTIMESTAMPS\n00:00 Find active LinkedIn Professionals\n01:16 Why online applications don't work\n02:09 Benefits of commenting on LinkedIn\n03:23 What to say in LinkedIn Connection Requests\n05:03 LinkedIn Connect Request Example\n\nRESOURCES I MENTION IN THE VIDEO\nPersonal CRM video - https://youtu.be/CvHFg5ASuh8\nAustin's LinkedIn Connection Request Article - https://cultivatedculture.com/linkedin-connection-requests/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #jobsearch #notgoodcomeseasy", "Job Search on LinkedIn: The 1 Tip You Need to Know!", "CwjwnHJE5sU", 1, 366, false, "https://www.youtube.com/watch?v=CwjwnHJE5sU", "/downloads/Jeff Su/2021-09-28 Job Search on LinkedIn: The 1 Tip You Need to Know!/Job Search on LinkedIn: The 1 Tip You Need to Know! [CwjwnHJE5sU].mp4", false, ~U[2021-09-28 13:00:06Z]] 16:46:41.995 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=622.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:41.998 [debug] QUERY OK source="media_profiles" db=1.4ms queue=0.6ms idle=8.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] 16:46:42.000 [debug] QUERY OK source="media_items" db=1.0ms idle=10.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 [132] 16:46:42.000 [info] Kicking off download for media item #132 (CwjwnHJE5sU) 16:46:42.005 [debug] QUERY OK source="tasks" db=1.1ms queue=0.2ms idle=8.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [136, 132, ~U[2026-04-23 14:46:42Z], ~U[2026-04-23 14:46:42Z]] 16:46:42.006 [debug] Current batch of media processed. Will check again in 1000ms 16:46:43.006 [debug] Current batch of media processed. Will check again in 1000ms 16:46:44.007 [debug] Current batch of media processed. Will check again in 1000ms 16:46:45.008 [debug] Current batch of media processed. Will check again in 1000ms 16:46:45.535 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wBi8IDngmiE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/49/23/492306271f811ed1b1613286aeb19449fd47d854ceb88c2f1c56f81834c2f146.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:46:45.536 [debug] Running yt-dlp command for action: download 16:46:45.537 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:46:45.537 [debug] QUERY OK source="settings" db=0.3ms idle=266.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:46:45.538 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:46:45.538 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wBi8IDngmiE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bb/00/bb0059a84b25222f2f31de457585bf4ea0ca7d72fcc48c11c8ea18d9166fe904.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:46:46.010 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nThink Outside the Box (fully playlist) 👉🏻 https://www.youtube.com/playlist?list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\n\n🪧 Here are 4 Free Tools to Improve Your Presentations: SlidesCarnival, ColorHunt, Unsplash, and Flaticons. You're welcome 😉\n\nWebsites like Slides Carnival, Google Slides Template Gallery, and SlidesGo have beautiful Google Slide Themes and PowerPoint templates that you can download and use immediately\n\nThen, you can use online color palette tools like ColorHunt and ColorSpace to come up with a color scheme and truly make the template your own by giving it a bit more personality\n\nTo help convey your message a bit better, use stock photo websites like Unsplash, Pexels, and Pixaybay to find royalty-free images, illustrations, vector graphics, and even music you can use with your PowerPoint or Google Slide presentations\n\nLast but not least, stop using the stock icons that come with PowerPoint and Google Slides and instead use the beautifully designed icons over at Flaticons or TheNounProject\n\nLet me know how your next presentation goes! 😁\n\nTIMESTAMPS\n00:00 How NOT to Create Presentations\n00:38 Think Outside the Box #1\n00:52 Download Existing Presentation Templates\n02:10 Use Your Own Color Palettes\n04:14 Use High Quality Stock Photos\n05:23 Free and Beautiful Icons\n06:22 Bonus Tip - Typewolf \n06:57 Pro Tips\n\nRESOURCES I MENTION IN THE VIDEO (NOT sponsored, NOT affiliate links)\nSlides Carnival - https://www.slidescarnival.com/\nGoogle Slides Template Gallery - https://docs.google.com/presentation/u/0/?ftv=1\nSlidesGo - https://slidesgo.com/\nColorHunt - https://colorhunt.co/\nColorSpace - https://mycolor.space/\nUnsplash - https://unsplash.com/\nPexels - https://www.pexels.com/\nPixabay - https://pixabay.com/\nFlaticon - http://flaticon.com/\nTheNounProject - https://thenounproject.com/\nTypeWolf - https://www.typewolf.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#powerpoint #googleslides #design #thinkoutsidethebox", "duration" => 455, "filename" => "/downloads/Jeff Su/2021-09-21 4 FREE Tools to Improve Your Next Presentation!/4 FREE Tools to Improve Your Next Presentation! [5c9SapE_YNU].mp4", "id" => "5c9SapE_YNU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5c9SapE_YNU", "playlist_index" => 133, "timestamp" => 1632229202, "title" => "4 FREE Tools to Improve Your Next Presentation!", "upload_date" => "20210921"} 16:46:46.011 [debug] QUERY OK source="sources" db=0.3ms idle=739.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:46:46.011 [debug] QUERY OK source="sources" db=0.2ms idle=630.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:46.012 [debug] QUERY OK source="media_items" db=0.8ms idle=474.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-09-21 13:00:02Z], 1] 16:46:46.511 [debug] QUERY OK source="media_items" db=497.9ms idle=475.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nThink Outside the Box (fully playlist) 👉🏻 https://www.youtube.com/playlist?list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\n\n🪧 Here are 4 Free Tools to Improve Your Presentations: SlidesCarnival, ColorHunt, Unsplash, and Flaticons. You're welcome 😉\n\nWebsites like Slides Carnival, Google Slides Template Gallery, and SlidesGo have beautiful Google Slide Themes and PowerPoint templates that you can download and use immediately\n\nThen, you can use online color palette tools like ColorHunt and ColorSpace to come up with a color scheme and truly make the template your own by giving it a bit more personality\n\nTo help convey your message a bit better, use stock photo websites like Unsplash, Pexels, and Pixaybay to find royalty-free images, illustrations, vector graphics, and even music you can use with your PowerPoint or Google Slide presentations\n\nLast but not least, stop using the stock icons that come with PowerPoint and Google Slides and instead use the beautifully designed icons over at Flaticons or TheNounProject\n\nLet me know how your next presentation goes! 😁\n\nTIMESTAMPS\n00:00 How NOT to Create Presentations\n00:38 Think Outside the Box #1\n00:52 Download Existing Presentation Templates\n02:10 Use Your Own Color Palettes\n04:14 Use High Quality Stock Photos\n05:23 Free and Beautiful Icons\n06:22 Bonus Tip - Typewolf \n06:57 Pro Tips\n\nRESOURCES I MENTION IN THE VIDEO (NOT sponsored, NOT affiliate links)\nSlides Carnival - https://www.slidescarnival.com/\nGoogle Slides Template Gallery - https://docs.google.com/presentation/u/0/?ftv=1\nSlidesGo - https://slidesgo.com/\nColorHunt - https://colorhunt.co/\nColorSpace - https://mycolor.space/\nUnsplash - https://unsplash.com/\nPexels - https://www.pexels.com/\nPixabay - https://pixabay.com/\nFlaticon - http://flaticon.com/\nTheNounProject - https://thenounproject.com/\nTypeWolf - https://www.typewolf.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#powerpoint #googleslides #design #thinkoutsidethebox", "4 FREE Tools to Improve Your Next Presentation!", "f96708f0-411c-4577-8136-7dccc5c29720", false, "5c9SapE_YNU", 1, [], 455, false, "https://www.youtube.com/watch?v=5c9SapE_YNU", 133, "/downloads/Jeff Su/2021-09-21 4 FREE Tools to Improve Your Next Presentation!/4 FREE Tools to Improve Your Next Presentation! [5c9SapE_YNU].mp4", false, false, 99, ~U[2021-09-21 13:00:02Z], ~U[2026-04-23 14:46:46Z], ~U[2026-04-23 14:46:46Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nThink Outside the Box (fully playlist) 👉🏻 https://www.youtube.com/playlist?list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\n\n🪧 Here are 4 Free Tools to Improve Your Presentations: SlidesCarnival, ColorHunt, Unsplash, and Flaticons. You're welcome 😉\n\nWebsites like Slides Carnival, Google Slides Template Gallery, and SlidesGo have beautiful Google Slide Themes and PowerPoint templates that you can download and use immediately\n\nThen, you can use online color palette tools like ColorHunt and ColorSpace to come up with a color scheme and truly make the template your own by giving it a bit more personality\n\nTo help convey your message a bit better, use stock photo websites like Unsplash, Pexels, and Pixaybay to find royalty-free images, illustrations, vector graphics, and even music you can use with your PowerPoint or Google Slide presentations\n\nLast but not least, stop using the stock icons that come with PowerPoint and Google Slides and instead use the beautifully designed icons over at Flaticons or TheNounProject\n\nLet me know how your next presentation goes! 😁\n\nTIMESTAMPS\n00:00 How NOT to Create Presentations\n00:38 Think Outside the Box #1\n00:52 Download Existing Presentation Templates\n02:10 Use Your Own Color Palettes\n04:14 Use High Quality Stock Photos\n05:23 Free and Beautiful Icons\n06:22 Bonus Tip - Typewolf \n06:57 Pro Tips\n\nRESOURCES I MENTION IN THE VIDEO (NOT sponsored, NOT affiliate links)\nSlides Carnival - https://www.slidescarnival.com/\nGoogle Slides Template Gallery - https://docs.google.com/presentation/u/0/?ftv=1\nSlidesGo - https://slidesgo.com/\nColorHunt - https://colorhunt.co/\nColorSpace - https://mycolor.space/\nUnsplash - https://unsplash.com/\nPexels - https://www.pexels.com/\nPixabay - https://pixabay.com/\nFlaticon - http://flaticon.com/\nTheNounProject - https://thenounproject.com/\nTypeWolf - https://www.typewolf.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#powerpoint #googleslides #design #thinkoutsidethebox", "4 FREE Tools to Improve Your Next Presentation!", "5c9SapE_YNU", 1, 455, false, "https://www.youtube.com/watch?v=5c9SapE_YNU", "/downloads/Jeff Su/2021-09-21 4 FREE Tools to Improve Your Next Presentation!/4 FREE Tools to Improve Your Next Presentation! [5c9SapE_YNU].mp4", false, ~U[2021-09-21 13:00:02Z]] 16:46:46.512 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=501.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:46.513 [debug] QUERY OK source="media_profiles" db=0.3ms idle=501.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] 16:46:46.514 [debug] QUERY OK source="media_items" db=0.5ms idle=501.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 [133] 16:46:46.514 [info] Kicking off download for media item #133 (5c9SapE_YNU) 16:46:47.223 [debug] QUERY OK source="tasks" db=2.7ms queue=0.1ms idle=707.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [137, 133, ~U[2026-04-23 14:46:47Z], ~U[2026-04-23 14:46:47Z]] 16:46:47.223 [debug] Current batch of media processed. Will check again in 1000ms 16:46:48.225 [debug] Current batch of media processed. Will check again in 1000ms 16:46:48.272 [info] {"source":"oban","duration":920,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:46:49.225 [debug] Current batch of media processed. Will check again in 1000ms 16:46:50.227 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "📝 Sign up for Notion here: https://ntn.so/jeffsunotion\n\n👪 Download my Personal CRM template here: https://www.jeffsu.org/personal-crm-template/\n\nLife gets busy and we lose touch we people we never thought we would. So in this video I show you how to Build Meaningful Relationships with a Personal CRM using a Notion template I created and have successfully maintained for the past 6 months. \n\nSimply put, a Personal CRM is personal relationship management system that (1) Reminds us to check in with the people we care about and (2) Helps us remember important facts and details about those individuals. Most Personal CRMs fail because they're too complex and we find them to troubleshoot to maintain consistently.\n\nThe Personal CRM I created work primarily because of 2 reasons: \n\n1️⃣ You focus on a few \"important VIPs\" at a time so it doesn't take too long to update, and \n\n2️⃣ Notion is available across platforms, so it doesn't fact the limitations some apps do by being on just 1 operating system\n\nHave fun using this Personal Relationships Manager and don't forget to check in with a loved one today 😉\n\nTIMESTAMPS\n00:00 Why most Personal CRMs fail\n00:29 Snapshot of my Personal CRM template\n00:40 Benefits of using a Personal CRM\n01:30 Personal CRM template structure\n02:30 \"Must-have\" information\n05:08 VIP-specific information\n07:06 How to maintain your Personal CRM\n08:14 Benefits of Notion vs. other platforms\n\nRESOURCES I MENTION IN THE VIDEO\nMy Notion Playlist - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#personalCRM #notion", "duration" => 518, "filename" => "/downloads/Jeff Su/2021-09-14 I Built a Personal CRM on Notion (template included)!/I Built a Personal CRM on Notion (template included)! [CvHFg5ASuh8].mp4", "id" => "CvHFg5ASuh8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CvHFg5ASuh8", "playlist_index" => 134, "timestamp" => 1631624410, "title" => "I Built a Personal CRM on Notion (template included)!", "upload_date" => "20210914"} 16:46:50.229 [debug] QUERY OK source="sources" db=1.2ms idle=1956.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:50.229 [debug] QUERY OK source="sources" db=0.3ms idle=1958.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:50.230 [debug] QUERY OK source="media_items" db=0.6ms idle=1957.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-09-14 13:00:10Z], 1] 16:46:50.234 [debug] QUERY OK source="media_items" db=2.0ms idle=1845.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📝 Sign up for Notion here: https://ntn.so/jeffsunotion\n\n👪 Download my Personal CRM template here: https://www.jeffsu.org/personal-crm-template/\n\nLife gets busy and we lose touch we people we never thought we would. So in this video I show you how to Build Meaningful Relationships with a Personal CRM using a Notion template I created and have successfully maintained for the past 6 months. \n\nSimply put, a Personal CRM is personal relationship management system that (1) Reminds us to check in with the people we care about and (2) Helps us remember important facts and details about those individuals. Most Personal CRMs fail because they're too complex and we find them to troubleshoot to maintain consistently.\n\nThe Personal CRM I created work primarily because of 2 reasons: \n\n1️⃣ You focus on a few \"important VIPs\" at a time so it doesn't take too long to update, and \n\n2️⃣ Notion is available across platforms, so it doesn't fact the limitations some apps do by being on just 1 operating system\n\nHave fun using this Personal Relationships Manager and don't forget to check in with a loved one today 😉\n\nTIMESTAMPS\n00:00 Why most Personal CRMs fail\n00:29 Snapshot of my Personal CRM template\n00:40 Benefits of using a Personal CRM\n01:30 Personal CRM template structure\n02:30 \"Must-have\" information\n05:08 VIP-specific information\n07:06 How to maintain your Personal CRM\n08:14 Benefits of Notion vs. other platforms\n\nRESOURCES I MENTION IN THE VIDEO\nMy Notion Playlist - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#personalCRM #notion", "I Built a Personal CRM on Notion (template included)!", "2c4c18a5-ac45-459b-95aa-2d4712cb3a57", false, "CvHFg5ASuh8", 1, [], 518, false, "https://www.youtube.com/watch?v=CvHFg5ASuh8", 134, "/downloads/Jeff Su/2021-09-14 I Built a Personal CRM on Notion (template included)!/I Built a Personal CRM on Notion (template included)! [CvHFg5ASuh8].mp4", false, false, 99, ~U[2021-09-14 13:00:10Z], ~U[2026-04-23 14:46:50Z], ~U[2026-04-23 14:46:50Z], "📝 Sign up for Notion here: https://ntn.so/jeffsunotion\n\n👪 Download my Personal CRM template here: https://www.jeffsu.org/personal-crm-template/\n\nLife gets busy and we lose touch we people we never thought we would. So in this video I show you how to Build Meaningful Relationships with a Personal CRM using a Notion template I created and have successfully maintained for the past 6 months. \n\nSimply put, a Personal CRM is personal relationship management system that (1) Reminds us to check in with the people we care about and (2) Helps us remember important facts and details about those individuals. Most Personal CRMs fail because they're too complex and we find them to troubleshoot to maintain consistently.\n\nThe Personal CRM I created work primarily because of 2 reasons: \n\n1️⃣ You focus on a few \"important VIPs\" at a time so it doesn't take too long to update, and \n\n2️⃣ Notion is available across platforms, so it doesn't fact the limitations some apps do by being on just 1 operating system\n\nHave fun using this Personal Relationships Manager and don't forget to check in with a loved one today 😉\n\nTIMESTAMPS\n00:00 Why most Personal CRMs fail\n00:29 Snapshot of my Personal CRM template\n00:40 Benefits of using a Personal CRM\n01:30 Personal CRM template structure\n02:30 \"Must-have\" information\n05:08 VIP-specific information\n07:06 How to maintain your Personal CRM\n08:14 Benefits of Notion vs. other platforms\n\nRESOURCES I MENTION IN THE VIDEO\nMy Notion Playlist - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#personalCRM #notion", "I Built a Personal CRM on Notion (template included)!", "CvHFg5ASuh8", 1, 518, false, "https://www.youtube.com/watch?v=CvHFg5ASuh8", "/downloads/Jeff Su/2021-09-14 I Built a Personal CRM on Notion (template included)!/I Built a Personal CRM on Notion (template included)! [CvHFg5ASuh8].mp4", false, ~U[2021-09-14 13:00:10Z]] 16:46:50.236 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=846.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:50.238 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.1ms idle=7.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] 16:46:50.240 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=9.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [134] 16:46:50.241 [info] Kicking off download for media item #134 (CvHFg5ASuh8) 16:46:50.245 [debug] QUERY OK source="tasks" db=0.2ms idle=8.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [138, 134, ~U[2026-04-23 14:46:50Z], ~U[2026-04-23 14:46:50Z]] 16:46:50.245 [debug] Current batch of media processed. Will check again in 1000ms 16:46:51.246 [debug] Current batch of media processed. Will check again in 1000ms 16:46:52.247 [debug] Current batch of media processed. Will check again in 1000ms 16:46:53.248 [debug] Current batch of media processed. Will check again in 1000ms 16:46:54.250 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Thank you 😁\n\nTIMESTAMPS\n00:00 Coming up\n00:24 Opening Skit\n01:29 Do you love working at Google\n02:29 Tips for post-grad life\n03:17 Most difficult experience in my career\n04:01 Other social media platforms to find jobs\n04:40 Would you start your own company\n05:20 Favorite books\n06:27 How to be good at speaking\n07:07 Dating questions\n07:43 What cities do you want to visit\n08:28 Ali or Matt?\n08:42 Favorite Apple product or feature\n08:57 Do you speak Chinese\n09:00 Favorite Youtuber\n09:19 Do you enjoy living in Shanghai\n09:36 How do you eat your steak\n09:52 What motivated you to start Youtube\n10:44 Future of your channel\n11:28 What camera gear to use for Youtube\n12:03 What productivity tools should you use\n13:03 Microsoft 365 vs. Google Workspace\n13:59 How to avoid FOMO\n15:02 Is your life journey as perfect as your videos\n16:42 How do I start following a routine\n17:40 How to beat perfectionism and avoid failure\n18:34 Ending & Secret Emoji message\n\nRESOURCES I MENTION IN THE VIDEO\nNetworking video - https://www.youtube.com/watch?v=4b2iagdHw8M\nHow I use Todoist - https://youtu.be/bP8wTapHsbc\nNever Split the Difference - https://geni.us/negotiation-book\nContagious - https://geni.us/contagious-book\nJohn Rain - https://geni.us/john-rain-detachment\nMake Time - https://geni.us/book-make-time\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#100k #celebration #thankyou", "duration" => 1130, "filename" => "/downloads/Jeff Su/2021-08-31 Dating, FOMO, Perfectionism: 100K Q&A/Dating, FOMO, Perfectionism: 100K Q&A [hGFNB4E2Aoo].mp4", "id" => "hGFNB4E2Aoo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=hGFNB4E2Aoo", "playlist_index" => 135, "timestamp" => 1630414816, "title" => "Dating, FOMO, Perfectionism: 100K Q&A", "upload_date" => "20210831"} 16:46:54.252 [debug] QUERY OK source="sources" db=1.0ms idle=979.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:54.252 [debug] QUERY OK source="sources" db=0.2ms idle=981.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:54.253 [debug] QUERY OK source="media_items" db=0.8ms idle=981.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-31 13:00:16Z], 1] 16:46:54.256 [debug] QUERY OK source="media_items" db=2.0ms idle=983.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Thank you 😁\n\nTIMESTAMPS\n00:00 Coming up\n00:24 Opening Skit\n01:29 Do you love working at Google\n02:29 Tips for post-grad life\n03:17 Most difficult experience in my career\n04:01 Other social media platforms to find jobs\n04:40 Would you start your own company\n05:20 Favorite books\n06:27 How to be good at speaking\n07:07 Dating questions\n07:43 What cities do you want to visit\n08:28 Ali or Matt?\n08:42 Favorite Apple product or feature\n08:57 Do you speak Chinese\n09:00 Favorite Youtuber\n09:19 Do you enjoy living in Shanghai\n09:36 How do you eat your steak\n09:52 What motivated you to start Youtube\n10:44 Future of your channel\n11:28 What camera gear to use for Youtube\n12:03 What productivity tools should you use\n13:03 Microsoft 365 vs. Google Workspace\n13:59 How to avoid FOMO\n15:02 Is your life journey as perfect as your videos\n16:42 How do I start following a routine\n17:40 How to beat perfectionism and avoid failure\n18:34 Ending & Secret Emoji message\n\nRESOURCES I MENTION IN THE VIDEO\nNetworking video - https://www.youtube.com/watch?v=4b2iagdHw8M\nHow I use Todoist - https://youtu.be/bP8wTapHsbc\nNever Split the Difference - https://geni.us/negotiation-book\nContagious - https://geni.us/contagious-book\nJohn Rain - https://geni.us/john-rain-detachment\nMake Time - https://geni.us/book-make-time\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#100k #celebration #thankyou", "Dating, FOMO, Perfectionism: 100K Q&A", "fdf3c4b1-88fa-481a-bfd1-3b3a1e56756c", false, "hGFNB4E2Aoo", 1, [], 1130, false, "https://www.youtube.com/watch?v=hGFNB4E2Aoo", 135, "/downloads/Jeff Su/2021-08-31 Dating, FOMO, Perfectionism: 100K Q&A/Dating, FOMO, Perfectionism: 100K Q&A [hGFNB4E2Aoo].mp4", false, false, 99, ~U[2021-08-31 13:00:16Z], ~U[2026-04-23 14:46:54Z], ~U[2026-04-23 14:46:54Z], "Thank you 😁\n\nTIMESTAMPS\n00:00 Coming up\n00:24 Opening Skit\n01:29 Do you love working at Google\n02:29 Tips for post-grad life\n03:17 Most difficult experience in my career\n04:01 Other social media platforms to find jobs\n04:40 Would you start your own company\n05:20 Favorite books\n06:27 How to be good at speaking\n07:07 Dating questions\n07:43 What cities do you want to visit\n08:28 Ali or Matt?\n08:42 Favorite Apple product or feature\n08:57 Do you speak Chinese\n09:00 Favorite Youtuber\n09:19 Do you enjoy living in Shanghai\n09:36 How do you eat your steak\n09:52 What motivated you to start Youtube\n10:44 Future of your channel\n11:28 What camera gear to use for Youtube\n12:03 What productivity tools should you use\n13:03 Microsoft 365 vs. Google Workspace\n13:59 How to avoid FOMO\n15:02 Is your life journey as perfect as your videos\n16:42 How do I start following a routine\n17:40 How to beat perfectionism and avoid failure\n18:34 Ending & Secret Emoji message\n\nRESOURCES I MENTION IN THE VIDEO\nNetworking video - https://www.youtube.com/watch?v=4b2iagdHw8M\nHow I use Todoist - https://youtu.be/bP8wTapHsbc\nNever Split the Difference - https://geni.us/negotiation-book\nContagious - https://geni.us/contagious-book\nJohn Rain - https://geni.us/john-rain-detachment\nMake Time - https://geni.us/book-make-time\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#100k #celebration #thankyou", "Dating, FOMO, Perfectionism: 100K Q&A", "hGFNB4E2Aoo", 1, 1130, false, "https://www.youtube.com/watch?v=hGFNB4E2Aoo", "/downloads/Jeff Su/2021-08-31 Dating, FOMO, Perfectionism: 100K Q&A/Dating, FOMO, Perfectionism: 100K Q&A [hGFNB4E2Aoo].mp4", false, ~U[2021-08-31 13:00:16Z]] 16:46:54.257 [debug] QUERY OK source="sources" db=0.3ms idle=861.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:54.258 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:46:54.258 [debug] QUERY OK source="media_items" db=0.3ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [135] 16:46:54.259 [info] Kicking off download for media item #135 (hGFNB4E2Aoo) 16:46:54.262 [debug] QUERY OK source="tasks" db=0.2ms idle=4.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [139, 135, ~U[2026-04-23 14:46:54Z], ~U[2026-04-23 14:46:54Z]] 16:46:54.262 [debug] Current batch of media processed. Will check again in 1000ms 16:46:55.262 [debug] Current batch of media processed. Will check again in 1000ms 16:46:56.263 [debug] Current batch of media processed. Will check again in 1000ms 16:46:57.264 [debug] Current batch of media processed. Will check again in 1000ms 16:46:58.266 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=065\n\n👨🏻\u200D💻 Having worked in roles that required me to use Excel and Google Sheets extensively over the past 7 years, I thought it might be good to share 15 Google Sheets Formulas that all Working Professionals Should Know! Whether you're a beginner who have never come across Google Sheets functions, or a power user who feel comfortable combining multiple Google Sheets formulas, I hope there's something for you in this Google Sheets / Excel formula video! \n\nFor simple formulas that most people use such as VLOOKUP, there are things you want to watch out for, for example when to use \"TRUE\" vs. when to use \"FALSE.\" We also cover more advanced formulas such as IMPORTRANGE, ARRAYFORMULA, CONCATENATE, and combined functions such as =IF(SEARCH())\n\nIf you're a fresh graduate who just landed a first full-time job, or a working professional who has been working for 1-5 years, you probably will come across situations where you would need to use some (if not all) of the formulas mentioned in this video, whether you work with Microsoft Excel or Google Sheets, so why not give yourself a head start by practicing today? 😉\n\nTIMESTAMPS\n00:00 DETECTLANGUAGE \n00:46 VLOOKUP mistakes\n01:25 Wildcard Asterisk Character\n01:50 TODAY \n02:15 IMPORTRANGE \n03:45 COUNTIF \n04:08 COUNTA\n04:48 SPLIT\n05:43 LEFT\n05:55 RIGHT\n07:02 ISEMAIL and SUBSTITUTE\n08:06 ISURL\n08:31 ARRAYFORMULA\n09:10 CONCATENATE\n10:11 &\n10:37 IF and SEARCH\n11:49 IFERROR\n12:22 SUMIF\n13:45 TRIM, UPPER, LOWER, and PROPER\n\nRESOURCES I MENTION IN THE VIDEO\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#formulas #functions #googlesheets", "duration" => 882, "filename" => "/downloads/Jeff Su/2021-08-24 15 Spreadsheet Formulas Working Professionals Should Know!/15 Spreadsheet Formulas Working Professionals Should Know! [98dnBA5WYLY].mp4", "id" => "98dnBA5WYLY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=98dnBA5WYLY", "playlist_index" => 136, "timestamp" => 1629810002, "title" => "15 Spreadsheet Formulas Working Professionals Should Know!", "upload_date" => "20210824"} 16:46:58.267 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=995.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:46:58.267 [debug] QUERY OK source="sources" db=0.2ms idle=996.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:46:58.268 [debug] QUERY OK source="media_items" db=0.7ms idle=997.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-24 13:00:02Z], 1] 16:46:58.271 [debug] QUERY OK source="media_items" db=1.9ms idle=998.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=065\n\n👨🏻\u200D💻 Having worked in roles that required me to use Excel and Google Sheets extensively over the past 7 years, I thought it might be good to share 15 Google Sheets Formulas that all Working Professionals Should Know! Whether you're a beginner who have never come across Google Sheets functions, or a power user who feel comfortable combining multiple Google Sheets formulas, I hope there's something for you in this Google Sheets / Excel formula video! \n\nFor simple formulas that most people use such as VLOOKUP, there are things you want to watch out for, for example when to use \"TRUE\" vs. when to use \"FALSE.\" We also cover more advanced formulas such as IMPORTRANGE, ARRAYFORMULA, CONCATENATE, and combined functions such as =IF(SEARCH())\n\nIf you're a fresh graduate who just landed a first full-time job, or a working professional who has been working for 1-5 years, you probably will come across situations where you would need to use some (if not all) of the formulas mentioned in this video, whether you work with Microsoft Excel or Google Sheets, so why not give yourself a head start by practicing today? 😉\n\nTIMESTAMPS\n00:00 DETECTLANGUAGE \n00:46 VLOOKUP mistakes\n01:25 Wildcard Asterisk Character\n01:50 TODAY \n02:15 IMPORTRANGE \n03:45 COUNTIF \n04:08 COUNTA\n04:48 SPLIT\n05:43 LEFT\n05:55 RIGHT\n07:02 ISEMAIL and SUBSTITUTE\n08:06 ISURL\n08:31 ARRAYFORMULA\n09:10 CONCATENATE\n10:11 &\n10:37 IF and SEARCH\n11:49 IFERROR\n12:22 SUMIF\n13:45 TRIM, UPPER, LOWER, and PROPER\n\nRESOURCES I MENTION IN THE VIDEO\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#formulas #functions #googlesheets", "15 Spreadsheet Formulas Working Professionals Should Know!", "3c642e0e-a7c9-44df-a355-a2095523fd42", false, "98dnBA5WYLY", 1, [], 882, false, "https://www.youtube.com/watch?v=98dnBA5WYLY", 136, "/downloads/Jeff Su/2021-08-24 15 Spreadsheet Formulas Working Professionals Should Know!/15 Spreadsheet Formulas Working Professionals Should Know! [98dnBA5WYLY].mp4", false, false, 99, ~U[2021-08-24 13:00:02Z], ~U[2026-04-23 14:46:58Z], ~U[2026-04-23 14:46:58Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=065\n\n👨🏻\u200D💻 Having worked in roles that required me to use Excel and Google Sheets extensively over the past 7 years, I thought it might be good to share 15 Google Sheets Formulas that all Working Professionals Should Know! Whether you're a beginner who have never come across Google Sheets functions, or a power user who feel comfortable combining multiple Google Sheets formulas, I hope there's something for you in this Google Sheets / Excel formula video! \n\nFor simple formulas that most people use such as VLOOKUP, there are things you want to watch out for, for example when to use \"TRUE\" vs. when to use \"FALSE.\" We also cover more advanced formulas such as IMPORTRANGE, ARRAYFORMULA, CONCATENATE, and combined functions such as =IF(SEARCH())\n\nIf you're a fresh graduate who just landed a first full-time job, or a working professional who has been working for 1-5 years, you probably will come across situations where you would need to use some (if not all) of the formulas mentioned in this video, whether you work with Microsoft Excel or Google Sheets, so why not give yourself a head start by practicing today? 😉\n\nTIMESTAMPS\n00:00 DETECTLANGUAGE \n00:46 VLOOKUP mistakes\n01:25 Wildcard Asterisk Character\n01:50 TODAY \n02:15 IMPORTRANGE \n03:45 COUNTIF \n04:08 COUNTA\n04:48 SPLIT\n05:43 LEFT\n05:55 RIGHT\n07:02 ISEMAIL and SUBSTITUTE\n08:06 ISURL\n08:31 ARRAYFORMULA\n09:10 CONCATENATE\n10:11 &\n10:37 IF and SEARCH\n11:49 IFERROR\n12:22 SUMIF\n13:45 TRIM, UPPER, LOWER, and PROPER\n\nRESOURCES I MENTION IN THE VIDEO\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#formulas #functions #googlesheets", "15 Spreadsheet Formulas Working Professionals Should Know!", "98dnBA5WYLY", 1, 882, false, "https://www.youtube.com/watch?v=98dnBA5WYLY", "/downloads/Jeff Su/2021-08-24 15 Spreadsheet Formulas Working Professionals Should Know!/15 Spreadsheet Formulas Working Professionals Should Know! [98dnBA5WYLY].mp4", false, ~U[2021-08-24 13:00:02Z]] 16:46:58.272 [debug] QUERY OK source="sources" db=0.3ms idle=867.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:46:58.273 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:46:58.273 [debug] QUERY OK source="media_items" db=0.4ms 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 [136] 16:46:58.273 [info] Kicking off download for media item #136 (98dnBA5WYLY) 16:46:58.276 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=3.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [140, 136, ~U[2026-04-23 14:46:58Z], ~U[2026-04-23 14:46:58Z]] 16:46:58.277 [debug] Current batch of media processed. Will check again in 1000ms 16:46:59.277 [debug] Current batch of media processed. Will check again in 1000ms 16:47:00.216 [info] {"source":"oban","duration":263,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:47:00.278 [debug] Current batch of media processed. Will check again in 1000ms 16:47:01.279 [debug] Current batch of media processed. Will check again in 1000ms 16:47:02.280 [debug] Current batch of media processed. Will check again in 1000ms 16:47:03.282 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Download my Personal Finance Tracker template here: https://www.jeffsu.org/personal-finance-tracker-for-beginners/\n\n💵 If you're watching this video you know that keeping track of your spending, expenses, and net worth is necessary for financial well-being, but what's the best way to do that? In this video, I share a Personal Finance Tracker for Beginners to use (template included of course) and show how - by just spending 10 minutes a month - you can be more intentional about your spending!\n\nI have nothing against budgeting apps like Mint of course, since I've used it myself a few years back. But I've found that in order to be more mindful about my spending, I needed a more manual approach since I would literally SEE what I was spending money on and REFLECT on whether that was a sound purchase decision or not\n\nSo I decided to create a personal finance template on Google Sheets that would help me keep track (broadly speaking) of my monthly spending and my net worth (although that obviously fluctuates day-to-day with my stock investments). But, thanks to the 80/20 rule, I believe this is a healthy balance between not over-stressing and still being able to know I'm doing the responsible thing financially\n\nIf you end up using this budget tracker (and if you use other budget / spend / expense apps like Mint), please do let me know how you find it! 😁\n\nTIMESTAMPS\n00:00 How I used to track my Personal Finances\n00:47 Objective of this Personal Finance Tracker \n01:18 Track Your Spending (step-by-step)\n05:24 List Top 5 Expense Items\n06:28 Track Your Net Worth (step-by-step)\n08:44 Summary and Next Steps\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nDownload my Personal Finance Tracker template here: https://www.jeffsu.org/personalfinance\nGet 2 Free Stocks on WeBull today: https://act.webull.com/invite/share.html?inviteCode=4idCogSszBd5\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#personalfinancetracker #googlesheets #template", "duration" => 562, "filename" => "/downloads/Jeff Su/2021-08-10 Personal Finance Tracker for Beginners (template included)!/Personal Finance Tracker for Beginners (template included)! [URWRc87UQNU].mp4", "id" => "URWRc87UQNU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=URWRc87UQNU", "playlist_index" => 137, "timestamp" => 1628602206, "title" => "Personal Finance Tracker for Beginners (template included)!", "upload_date" => "20210810"} 16:47:03.284 [debug] QUERY OK source="sources" db=1.7ms idle=1011.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:47:03.285 [debug] QUERY OK source="sources" db=0.5ms idle=1013.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:03.286 [debug] QUERY OK source="media_items" db=0.8ms idle=1014.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-10 13:30:06Z], 1] 16:47:03.290 [debug] QUERY OK source="media_items" db=2.1ms idle=873.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Download my Personal Finance Tracker template here: https://www.jeffsu.org/personal-finance-tracker-for-beginners/\n\n💵 If you're watching this video you know that keeping track of your spending, expenses, and net worth is necessary for financial well-being, but what's the best way to do that? In this video, I share a Personal Finance Tracker for Beginners to use (template included of course) and show how - by just spending 10 minutes a month - you can be more intentional about your spending!\n\nI have nothing against budgeting apps like Mint of course, since I've used it myself a few years back. But I've found that in order to be more mindful about my spending, I needed a more manual approach since I would literally SEE what I was spending money on and REFLECT on whether that was a sound purchase decision or not\n\nSo I decided to create a personal finance template on Google Sheets that would help me keep track (broadly speaking) of my monthly spending and my net worth (although that obviously fluctuates day-to-day with my stock investments). But, thanks to the 80/20 rule, I believe this is a healthy balance between not over-stressing and still being able to know I'm doing the responsible thing financially\n\nIf you end up using this budget tracker (and if you use other budget / spend / expense apps like Mint), please do let me know how you find it! 😁\n\nTIMESTAMPS\n00:00 How I used to track my Personal Finances\n00:47 Objective of this Personal Finance Tracker \n01:18 Track Your Spending (step-by-step)\n05:24 List Top 5 Expense Items\n06:28 Track Your Net Worth (step-by-step)\n08:44 Summary and Next Steps\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nDownload my Personal Finance Tracker template here: https://www.jeffsu.org/personalfinance\nGet 2 Free Stocks on WeBull today: https://act.webull.com/invite/share.html?inviteCode=4idCogSszBd5\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#personalfinancetracker #googlesheets #template", "Personal Finance Tracker for Beginners (template included)!", "ddc4073b-0aa4-4540-b172-8bd5561a428f", false, "URWRc87UQNU", 1, [], 562, false, "https://www.youtube.com/watch?v=URWRc87UQNU", 137, "/downloads/Jeff Su/2021-08-10 Personal Finance Tracker for Beginners (template included)!/Personal Finance Tracker for Beginners (template included)! [URWRc87UQNU].mp4", false, false, 99, ~U[2021-08-10 13:30:06Z], ~U[2026-04-23 14:47:03Z], ~U[2026-04-23 14:47:03Z], "Download my Personal Finance Tracker template here: https://www.jeffsu.org/personal-finance-tracker-for-beginners/\n\n💵 If you're watching this video you know that keeping track of your spending, expenses, and net worth is necessary for financial well-being, but what's the best way to do that? In this video, I share a Personal Finance Tracker for Beginners to use (template included of course) and show how - by just spending 10 minutes a month - you can be more intentional about your spending!\n\nI have nothing against budgeting apps like Mint of course, since I've used it myself a few years back. But I've found that in order to be more mindful about my spending, I needed a more manual approach since I would literally SEE what I was spending money on and REFLECT on whether that was a sound purchase decision or not\n\nSo I decided to create a personal finance template on Google Sheets that would help me keep track (broadly speaking) of my monthly spending and my net worth (although that obviously fluctuates day-to-day with my stock investments). But, thanks to the 80/20 rule, I believe this is a healthy balance between not over-stressing and still being able to know I'm doing the responsible thing financially\n\nIf you end up using this budget tracker (and if you use other budget / spend / expense apps like Mint), please do let me know how you find it! 😁\n\nTIMESTAMPS\n00:00 How I used to track my Personal Finances\n00:47 Objective of this Personal Finance Tracker \n01:18 Track Your Spending (step-by-step)\n05:24 List Top 5 Expense Items\n06:28 Track Your Net Worth (step-by-step)\n08:44 Summary and Next Steps\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nDownload my Personal Finance Tracker template here: https://www.jeffsu.org/personalfinance\nGet 2 Free Stocks on WeBull today: https://act.webull.com/invite/share.html?inviteCode=4idCogSszBd5\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#personalfinancetracker #googlesheets #template", "Personal Finance Tracker for Beginners (template included)!", "URWRc87UQNU", 1, 562, false, "https://www.youtube.com/watch?v=URWRc87UQNU", "/downloads/Jeff Su/2021-08-10 Personal Finance Tracker for Beginners (template included)!/Personal Finance Tracker for Beginners (template included)! [URWRc87UQNU].mp4", false, ~U[2021-08-10 13:30:06Z]] 16:47:03.292 [debug] QUERY OK source="sources" db=1.7ms queue=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" = ?) [1] 16:47:03.293 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.1ms idle=7.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] 16:47:03.296 [debug] QUERY OK source="media_items" db=1.6ms queue=0.1ms idle=8.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [137] 16:47:03.296 [info] Kicking off download for media item #137 (URWRc87UQNU) 16:47:03.301 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=8.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [141, 137, ~U[2026-04-23 14:47:03Z], ~U[2026-04-23 14:47:03Z]] 16:47:03.301 [debug] Current batch of media processed. Will check again in 1000ms 16:47:03.884 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RudrWy9uPZE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0c/65/0c650e4cb684322fde04ebf89c6c6491eeea2a18b3996670691cb8adae989cac.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:47:03.927 [debug] Running yt-dlp command for action: download_thumbnail 16:47:03.929 [debug] QUERY OK source="settings" db=0.2ms idle=632.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:03.929 [debug] QUERY OK source="settings" db=0.3ms idle=629.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:03.930 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=629.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:03.930 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RudrWy9uPZE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/29/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3e/f6/3ef64a55754726de9838026c50b758204bd226ba7ea6bc1dbd011115016bbc1c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:47:04.301 [debug] Current batch of media processed. Will check again in 1000ms 16:47:05.303 [debug] Current batch of media processed. Will check again in 1000ms 16:47:06.304 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n😲 In order to Write an Outstanding LinkedIn Summary, one must first look at existing successful examples and templates, and understand that there are no \"one-size-fits-all\" LinkedIn Summaries. Depending on who you are - Job Seeker, Working Professional, Entrepreneur, or Thought Leader, you would need to position yourself differently in your about section. \n\nEach segment has its own best practices, examples, and templates, but regardless of how you want to position yourself, the objective of your LinkedIn bio is the same: To compel your target audience - whoever they may be - to reach out to you instead of the other way around.\n\nThe LinkedIn Summary template for Job Seekers and Working Professionals follow a simple 3-step structure:\n\n(1) Intro line\n(2) Case Study bullet points\n(3) Ending\n\nFinally, I also share 5 practical tips (such as using word cloud generators to identify relevant keywords) that you can apply immediately to your LinkedIn Summary! \n\nTIMESTAMPS\n00:00 Intro\n00:33 Quick Disclaimer\n00:44 How to Position LinkedIn Summary\n01:01 Objective of LinkedIn Summary\n01:18 Common Themes of LinkedIn Bios\n01:31 LinkedIn Summary Template for Job Seekers\n03:33 5 Practical Tips for LinkedIn Bio\n03:42 The Perfect LinkedIn Summary Length\n04:03 Use the Right Keywords\n04:55 Bold or Italicize Font\n05:31 Bring up Personal Interests\n05:53 Use Hemingway app\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nAustin's article - https://cultivatedculture.com/linkedin-summary\nMy resume video - https://youtu.be/Tt08KmFfIYQ\nWord Counter tool - https://wordcounter.net/character-count\nMonkey Learn Word Cloud Generator - https://monkeylearn.com/word-cloud/\nUnicode Text Converter - https://qaz.wtf/u/convert.cgi\nHemingway app - https://hemingwayapp.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#linkedin #success", "duration" => 390, "filename" => "/downloads/Jeff Su/2021-08-03 Write an OUTSTANDING LinkedIn Summary (with Examples)!/Write an OUTSTANDING LinkedIn Summary (with Examples)! [5hNsdH6Y2Mg].mp4", "id" => "5hNsdH6Y2Mg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5hNsdH6Y2Mg", "playlist_index" => 138, "timestamp" => 1627995602, "title" => "Write an OUTSTANDING LinkedIn Summary (with Examples)!", "upload_date" => "20210803"} 16:47:06.305 [debug] QUERY OK source="sources" db=0.3ms idle=1033.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:06.305 [debug] QUERY OK source="sources" db=0.2ms idle=1034.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:06.306 [debug] QUERY OK source="media_items" db=0.6ms idle=1034.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-03 13:00:02Z], 1] 16:47:06.310 [debug] QUERY OK source="media_items" db=2.3ms idle=1036.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n😲 In order to Write an Outstanding LinkedIn Summary, one must first look at existing successful examples and templates, and understand that there are no \"one-size-fits-all\" LinkedIn Summaries. Depending on who you are - Job Seeker, Working Professional, Entrepreneur, or Thought Leader, you would need to position yourself differently in your about section. \n\nEach segment has its own best practices, examples, and templates, but regardless of how you want to position yourself, the objective of your LinkedIn bio is the same: To compel your target audience - whoever they may be - to reach out to you instead of the other way around.\n\nThe LinkedIn Summary template for Job Seekers and Working Professionals follow a simple 3-step structure:\n\n(1) Intro line\n(2) Case Study bullet points\n(3) Ending\n\nFinally, I also share 5 practical tips (such as using word cloud generators to identify relevant keywords) that you can apply immediately to your LinkedIn Summary! \n\nTIMESTAMPS\n00:00 Intro\n00:33 Quick Disclaimer\n00:44 How to Position LinkedIn Summary\n01:01 Objective of LinkedIn Summary\n01:18 Common Themes of LinkedIn Bios\n01:31 LinkedIn Summary Template for Job Seekers\n03:33 5 Practical Tips for LinkedIn Bio\n03:42 The Perfect LinkedIn Summary Length\n04:03 Use the Right Keywords\n04:55 Bold or Italicize Font\n05:31 Bring up Personal Interests\n05:53 Use Hemingway app\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nAustin's article - https://cultivatedculture.com/linkedin-summary\nMy resume video - https://youtu.be/Tt08KmFfIYQ\nWord Counter tool - https://wordcounter.net/character-count\nMonkey Learn Word Cloud Generator - https://monkeylearn.com/word-cloud/\nUnicode Text Converter - https://qaz.wtf/u/convert.cgi\nHemingway app - https://hemingwayapp.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#linkedin #success", "Write an OUTSTANDING LinkedIn Summary (with Examples)!", "13fdaa0a-8e04-4ffd-b0ae-3abfeed25578", false, "5hNsdH6Y2Mg", 1, [], 390, false, "https://www.youtube.com/watch?v=5hNsdH6Y2Mg", 138, "/downloads/Jeff Su/2021-08-03 Write an OUTSTANDING LinkedIn Summary (with Examples)!/Write an OUTSTANDING LinkedIn Summary (with Examples)! [5hNsdH6Y2Mg].mp4", false, false, 99, ~U[2021-08-03 13:00:02Z], ~U[2026-04-23 14:47:06Z], ~U[2026-04-23 14:47:06Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n😲 In order to Write an Outstanding LinkedIn Summary, one must first look at existing successful examples and templates, and understand that there are no \"one-size-fits-all\" LinkedIn Summaries. Depending on who you are - Job Seeker, Working Professional, Entrepreneur, or Thought Leader, you would need to position yourself differently in your about section. \n\nEach segment has its own best practices, examples, and templates, but regardless of how you want to position yourself, the objective of your LinkedIn bio is the same: To compel your target audience - whoever they may be - to reach out to you instead of the other way around.\n\nThe LinkedIn Summary template for Job Seekers and Working Professionals follow a simple 3-step structure:\n\n(1) Intro line\n(2) Case Study bullet points\n(3) Ending\n\nFinally, I also share 5 practical tips (such as using word cloud generators to identify relevant keywords) that you can apply immediately to your LinkedIn Summary! \n\nTIMESTAMPS\n00:00 Intro\n00:33 Quick Disclaimer\n00:44 How to Position LinkedIn Summary\n01:01 Objective of LinkedIn Summary\n01:18 Common Themes of LinkedIn Bios\n01:31 LinkedIn Summary Template for Job Seekers\n03:33 5 Practical Tips for LinkedIn Bio\n03:42 The Perfect LinkedIn Summary Length\n04:03 Use the Right Keywords\n04:55 Bold or Italicize Font\n05:31 Bring up Personal Interests\n05:53 Use Hemingway app\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nAustin's article - https://cultivatedculture.com/linkedin-summary\nMy resume video - https://youtu.be/Tt08KmFfIYQ\nWord Counter tool - https://wordcounter.net/character-count\nMonkey Learn Word Cloud Generator - https://monkeylearn.com/word-cloud/\nUnicode Text Converter - https://qaz.wtf/u/convert.cgi\nHemingway app - https://hemingwayapp.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#linkedin #success", "Write an OUTSTANDING LinkedIn Summary (with Examples)!", "5hNsdH6Y2Mg", 1, 390, false, "https://www.youtube.com/watch?v=5hNsdH6Y2Mg", "/downloads/Jeff Su/2021-08-03 Write an OUTSTANDING LinkedIn Summary (with Examples)!/Write an OUTSTANDING LinkedIn Summary (with Examples)! [5hNsdH6Y2Mg].mp4", false, ~U[2021-08-03 13:00:02Z]] 16:47:06.311 [debug] QUERY OK source="sources" db=0.8ms idle=890.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:47:06.313 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.2ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:06.314 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=7.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [138] 16:47:06.314 [info] Kicking off download for media item #138 (5hNsdH6Y2Mg) 16:47:06.319 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=6.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [142, 138, ~U[2026-04-23 14:47:06Z], ~U[2026-04-23 14:47:06Z]] 16:47:06.319 [debug] Current batch of media processed. Will check again in 1000ms 16:47:07.319 [debug] Current batch of media processed. Will check again in 1000ms 16:47:08.320 [debug] Current batch of media processed. Will check again in 1000ms 16:47:09.321 [debug] Current batch of media processed. Will check again in 1000ms 16:47:10.042 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wBi8IDngmiE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bb/00/bb0059a84b25222f2f31de457585bf4ea0ca7d72fcc48c11c8ea18d9166fe904.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:47:10.081 [debug] Running yt-dlp command for action: download_thumbnail 16:47:10.082 [debug] QUERY OK source="settings" db=0.3ms idle=1811.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:10.083 [debug] QUERY OK source="settings" db=0.5ms idle=1811.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:10.083 [debug] QUERY OK source="settings" db=0.2ms idle=1812.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:10.084 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wBi8IDngmiE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/30/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/cd/5d/cd5d6ec8287fca10ff4c30ca147a6e4175f40b556badf35c3b2e66d10a042b39.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:47:10.275 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RudrWy9uPZE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/29/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3e/f6/3ef64a55754726de9838026c50b758204bd226ba7ea6bc1dbd011115016bbc1c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:47:10.275 [debug] QUERY OK db=0.1ms idle=847.5ms begin [] 16:47:10.277 [debug] QUERY OK source="media_items" db=0.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:47:03Z], "/downloads/Jeff Su/2025-02-11 I Switched 50% of My AI Work to Claude, Here's Why/I Switched 50% of My AI Work to Claude, Here's Why [RudrWy9uPZE].mp4", "/downloads/Jeff Su/2025-02-11 I Switched 50% of My AI Work to Claude, Here's Why/I Switched 50% of My AI Work to Claude, Here's Why [RudrWy9uPZE].info.json", "/downloads/Jeff Su/2025-02-11 I Switched 50% of My AI Work to Claude, Here's Why/I Switched 50% of My AI Work to Claude, Here's Why [RudrWy9uPZE].nfo", "/downloads/Jeff Su/2025-02-11 I Switched 50% of My AI Work to Claude, Here's Why/I Switched 50% of My AI Work to Claude, Here's Why [RudrWy9uPZE]-thumb.jpg", ~U[2026-04-23 14:47:10Z], 29] 16:47:10.278 [debug] QUERY OK source="media_metadata" db=0.7ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/29/metadata.json.gz", "/config/metadata/media_items/29/thumbnail.jpg", 29, ~U[2026-04-23 14:47:10Z], ~U[2026-04-23 14:47:10Z]] 16:47:10.278 [debug] QUERY OK db=0.3ms commit [] 16:47:10.280 [debug] QUERY OK source="media_items" db=1.4ms idle=196.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [36368715, ~U[2026-04-23 14:47:10Z], 29] 16:47:10.281 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:47:10.281 [info] {"args":{"id":29},"id":33,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":38339102,"event":"job:stop","queue_time":429940865,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:47:10.289 [info] {"args":{"id":31},"id":35,"meta":{},"system_time":1776955630288907974,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:47:10.289 [debug] QUERY OK source="media_items" db=0.5ms idle=18.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" = ?) [31] 16:47:10.290 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:47:10.291 [debug] QUERY OK source="sources" db=0.2ms idle=12.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:47:10.291 [debug] QUERY OK source="media_profiles" db=0.4ms idle=10.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:10.292 [debug] QUERY OK source="media_items" db=0.3ms idle=10.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [31] 16:47:10.294 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [31] 16:47:10.294 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 16:47:10.295 [debug] QUERY OK source="settings" db=0.3ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:10.295 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:47:10.296 [debug] Running yt-dlp command for action: get_downloadable_status 16:47:10.297 [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 [] 16:47:10.298 [debug] QUERY OK source="settings" db=0.3ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:10.298 [debug] QUERY OK source="settings" db=0.4ms 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 [] 16:47:10.299 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=j63bBK_ct-M --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d5/8c/d58cd8a03619175afb3c5d1befadb806006d0974a01615038520941af3c5e3c1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:47:10.322 [debug] Current batch of media processed. Will check again in 1000ms 16:47:11.324 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "To learn more than ever from important non-fiction books, join me on Shortform: https://shortform.com/jeffsu. You’ll get a 5-day free trial and a discounted annual subscription. One of my favorite books on Shortform is \"Why We Sleep\" by Matthew Walker (although reading the book has made me a bit more anxious about losing sleep as well...) \n\nDownload the template 👉🏻 https://www.jeffsu.org/a-simple-book-notes-template-for-notion/\n\n📕 Do you have commitment issues? Well I sometimes have a hard time committing myself to reading a non-fiction book because I feel like I HAVE to take comprehensive notes. So, I decided to make The Most Flexible Book Notes Template (for Notion of course) that helps me reduce the friction of reading non-fiction books.\n\nThis flexible Notion book notes template allows you to dial up OR DOWN your commitment to the book as you see fit. Put another way, you are given permission to \"stop\" reading a book if you feel like it's not for you. Not only does this encourage you to read more, but it also helps you to take better notes on the books as well. \n\nI walk through my entire Notion setup, and I also share this Book Notes template on my website. So feel free to make a copy of my Notion template and track your reading progress in Notion as well! \n\nTIMESTAMPS\n00:00 Give Yourself Permission to Read\n01:01 Template Layout\n01:40 Initial Impressions Section\n02:25 One Pager Notes Section\n03:15 Shortform Notes Section\n04:24 Audible Notes Section\n05:37 Full Book Notes Section\n06:00 Template Properties\n06:29 Recommend Me Books to Read\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nMy Book Notes template: https://www.jeffsu.org/notion\nKajol's Channel: https://www.youtube.com/channel/UCihXRfro3g27m1ajn5p8pBQ\nAli Abdaal's Book Notes template video: https://youtu.be/AjoxkxM_I5g\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#shortform #notion #booknotes", "duration" => 450, "filename" => "/downloads/Jeff Su/2021-07-27 A Simple Book Notes Template (for Notion)!/A Simple Book Notes Template (for Notion)! [s8RnhqYYz3E].mp4", "id" => "s8RnhqYYz3E", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=s8RnhqYYz3E", "playlist_index" => 139, "timestamp" => 1627390832, "title" => "A Simple Book Notes Template (for Notion)!", "upload_date" => "20210727"} 16:47:11.325 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1028.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:11.326 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1028.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:11.329 [debug] QUERY OK source="media_items" db=2.5ms idle=1028.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-07-27 13:00:32Z], 1] 16:47:11.333 [debug] QUERY OK source="media_items" db=2.4ms idle=1031.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["To learn more than ever from important non-fiction books, join me on Shortform: https://shortform.com/jeffsu. You’ll get a 5-day free trial and a discounted annual subscription. One of my favorite books on Shortform is \"Why We Sleep\" by Matthew Walker (although reading the book has made me a bit more anxious about losing sleep as well...) \n\nDownload the template 👉🏻 https://www.jeffsu.org/a-simple-book-notes-template-for-notion/\n\n📕 Do you have commitment issues? Well I sometimes have a hard time committing myself to reading a non-fiction book because I feel like I HAVE to take comprehensive notes. So, I decided to make The Most Flexible Book Notes Template (for Notion of course) that helps me reduce the friction of reading non-fiction books.\n\nThis flexible Notion book notes template allows you to dial up OR DOWN your commitment to the book as you see fit. Put another way, you are given permission to \"stop\" reading a book if you feel like it's not for you. Not only does this encourage you to read more, but it also helps you to take better notes on the books as well. \n\nI walk through my entire Notion setup, and I also share this Book Notes template on my website. So feel free to make a copy of my Notion template and track your reading progress in Notion as well! \n\nTIMESTAMPS\n00:00 Give Yourself Permission to Read\n01:01 Template Layout\n01:40 Initial Impressions Section\n02:25 One Pager Notes Section\n03:15 Shortform Notes Section\n04:24 Audible Notes Section\n05:37 Full Book Notes Section\n06:00 Template Properties\n06:29 Recommend Me Books to Read\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nMy Book Notes template: https://www.jeffsu.org/notion\nKajol's Channel: https://www.youtube.com/channel/UCihXRfro3g27m1ajn5p8pBQ\nAli Abdaal's Book Notes template video: https://youtu.be/AjoxkxM_I5g\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#shortform #notion #booknotes", "A Simple Book Notes Template (for Notion)!", "a4957bce-1fac-4e15-b10a-8ca9ddae1dbf", false, "s8RnhqYYz3E", 1, [], 450, false, "https://www.youtube.com/watch?v=s8RnhqYYz3E", 139, "/downloads/Jeff Su/2021-07-27 A Simple Book Notes Template (for Notion)!/A Simple Book Notes Template (for Notion)! [s8RnhqYYz3E].mp4", false, false, 99, ~U[2021-07-27 13:00:32Z], ~U[2026-04-23 14:47:11Z], ~U[2026-04-23 14:47:11Z], "To learn more than ever from important non-fiction books, join me on Shortform: https://shortform.com/jeffsu. You’ll get a 5-day free trial and a discounted annual subscription. One of my favorite books on Shortform is \"Why We Sleep\" by Matthew Walker (although reading the book has made me a bit more anxious about losing sleep as well...) \n\nDownload the template 👉🏻 https://www.jeffsu.org/a-simple-book-notes-template-for-notion/\n\n📕 Do you have commitment issues? Well I sometimes have a hard time committing myself to reading a non-fiction book because I feel like I HAVE to take comprehensive notes. So, I decided to make The Most Flexible Book Notes Template (for Notion of course) that helps me reduce the friction of reading non-fiction books.\n\nThis flexible Notion book notes template allows you to dial up OR DOWN your commitment to the book as you see fit. Put another way, you are given permission to \"stop\" reading a book if you feel like it's not for you. Not only does this encourage you to read more, but it also helps you to take better notes on the books as well. \n\nI walk through my entire Notion setup, and I also share this Book Notes template on my website. So feel free to make a copy of my Notion template and track your reading progress in Notion as well! \n\nTIMESTAMPS\n00:00 Give Yourself Permission to Read\n01:01 Template Layout\n01:40 Initial Impressions Section\n02:25 One Pager Notes Section\n03:15 Shortform Notes Section\n04:24 Audible Notes Section\n05:37 Full Book Notes Section\n06:00 Template Properties\n06:29 Recommend Me Books to Read\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nMy Book Notes template: https://www.jeffsu.org/notion\nKajol's Channel: https://www.youtube.com/channel/UCihXRfro3g27m1ajn5p8pBQ\nAli Abdaal's Book Notes template video: https://youtu.be/AjoxkxM_I5g\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#shortform #notion #booknotes", "A Simple Book Notes Template (for Notion)!", "s8RnhqYYz3E", 1, 450, false, "https://www.youtube.com/watch?v=s8RnhqYYz3E", "/downloads/Jeff Su/2021-07-27 A Simple Book Notes Template (for Notion)!/A Simple Book Notes Template (for Notion)! [s8RnhqYYz3E].mp4", false, ~U[2021-07-27 13:00:32Z]] 16:47:11.334 [debug] QUERY OK source="sources" db=0.4ms idle=903.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:47:11.335 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=9.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:11.335 [debug] QUERY OK source="media_items" db=0.3ms idle=8.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [139] 16:47:11.336 [info] Kicking off download for media item #139 (s8RnhqYYz3E) 16:47:11.340 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=5.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [143, 139, ~U[2026-04-23 14:47:11Z], ~U[2026-04-23 14:47:11Z]] 16:47:11.340 [debug] Current batch of media processed. Will check again in 1000ms 16:47:12.341 [debug] Current batch of media processed. Will check again in 1000ms 16:47:13.342 [debug] Current batch of media processed. Will check again in 1000ms 16:47:14.343 [debug] Current batch of media processed. Will check again in 1000ms 16:47:15.345 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=60\n\n✨ Is Notion even worth using if you can't make it look pretty? In this video I share 14 Notion Tips for Productivity broken down into 3 categories: (1) Time-saving tips, (2) Notion Organizational Tricks, and (3) Notion Aesthetic hacks. \n\nAlthough synced blocks is a new feature, I immediately saw a chance to use it in my Weekly Agenda template, and now it saves me an extra step of copying and pasting to-do's over to the next week. I also like to set reminders within specific Notion pages so I can go back to that block directly. The Notion Web Clipper tool is simply amazing: It lets me capture notes and ideas down so quickly when I'm just browsing the web! \n\nOf course, it wouldn't be a Jeff Su video without my favorite Notion Keyboard Shortcuts, and I share the ones I use everyday just to get things done a bit quicker 😉. Sorting your Notion databases correctly is also very important since Databases is such an important feature so I go through quite a few examples of my own Notion pages to (hopefully) provide you with some inspiration. \n\nShout-out to Thomas Frank for the Nested Columns trick as well! \n\nTIMESTAMPS\n00:00 Notion.new to Open a New Page\n00:54 Create Template Buttons in Notion\n01:48 How to Create Synced Blocks\n02:47 Set Reminders in Notion\n03:21 Best Notion Keyboard Shortcuts\n05:06 Use Notion Web Clipper Tool\n06:32 How to Sort Database in Notion\n07:22 Use Embedded Archived Pages\n07:55 Create Nested Columns in Notion\n08:58 Use Toggle Feature in Notion\n09:22 Link to Specific Blocks in Notion\n10:05 Use Custom Icons in Notion\n10:36 Use a Consistent Color Scheme\n11:01 Leave yourself a Comment in Notion\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nNotion Agenda Template video: https://youtu.be/sZB8OZoSIyU\nHow to take notes in Notion: https://youtu.be/vYKyTNlUHCo\nThomas Frank's Nested Columns video: https://youtu.be/VSayCRn61ZY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notionhq #tips #productivity", "duration" => 714, "filename" => "/downloads/Jeff Su/2021-07-20 Top 14 Notion Tips for Productivity!/Top 14 Notion Tips for Productivity! [ewCtvJ4rmJA].mp4", "id" => "ewCtvJ4rmJA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ewCtvJ4rmJA", "playlist_index" => 140, "timestamp" => 1626786016, "title" => "Top 14 Notion Tips for Productivity!", "upload_date" => "20210720"} 16:47:15.346 [debug] QUERY OK source="sources" db=0.3ms idle=905.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:15.346 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [1] 16:47:15.347 [debug] QUERY OK source="media_items" db=0.6ms idle=75.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-07-20 13:00:16Z], 1] 16:47:15.351 [debug] QUERY OK source="media_items" db=2.1ms idle=77.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=60\n\n✨ Is Notion even worth using if you can't make it look pretty? In this video I share 14 Notion Tips for Productivity broken down into 3 categories: (1) Time-saving tips, (2) Notion Organizational Tricks, and (3) Notion Aesthetic hacks. \n\nAlthough synced blocks is a new feature, I immediately saw a chance to use it in my Weekly Agenda template, and now it saves me an extra step of copying and pasting to-do's over to the next week. I also like to set reminders within specific Notion pages so I can go back to that block directly. The Notion Web Clipper tool is simply amazing: It lets me capture notes and ideas down so quickly when I'm just browsing the web! \n\nOf course, it wouldn't be a Jeff Su video without my favorite Notion Keyboard Shortcuts, and I share the ones I use everyday just to get things done a bit quicker 😉. Sorting your Notion databases correctly is also very important since Databases is such an important feature so I go through quite a few examples of my own Notion pages to (hopefully) provide you with some inspiration. \n\nShout-out to Thomas Frank for the Nested Columns trick as well! \n\nTIMESTAMPS\n00:00 Notion.new to Open a New Page\n00:54 Create Template Buttons in Notion\n01:48 How to Create Synced Blocks\n02:47 Set Reminders in Notion\n03:21 Best Notion Keyboard Shortcuts\n05:06 Use Notion Web Clipper Tool\n06:32 How to Sort Database in Notion\n07:22 Use Embedded Archived Pages\n07:55 Create Nested Columns in Notion\n08:58 Use Toggle Feature in Notion\n09:22 Link to Specific Blocks in Notion\n10:05 Use Custom Icons in Notion\n10:36 Use a Consistent Color Scheme\n11:01 Leave yourself a Comment in Notion\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nNotion Agenda Template video: https://youtu.be/sZB8OZoSIyU\nHow to take notes in Notion: https://youtu.be/vYKyTNlUHCo\nThomas Frank's Nested Columns video: https://youtu.be/VSayCRn61ZY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notionhq #tips #productivity", "Top 14 Notion Tips for Productivity!", "88abd6f4-c449-42b2-ae7e-2f79ff663174", false, "ewCtvJ4rmJA", 1, [], 714, false, "https://www.youtube.com/watch?v=ewCtvJ4rmJA", 140, "/downloads/Jeff Su/2021-07-20 Top 14 Notion Tips for Productivity!/Top 14 Notion Tips for Productivity! [ewCtvJ4rmJA].mp4", false, false, 99, ~U[2021-07-20 13:00:16Z], ~U[2026-04-23 14:47:15Z], ~U[2026-04-23 14:47:15Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=60\n\n✨ Is Notion even worth using if you can't make it look pretty? In this video I share 14 Notion Tips for Productivity broken down into 3 categories: (1) Time-saving tips, (2) Notion Organizational Tricks, and (3) Notion Aesthetic hacks. \n\nAlthough synced blocks is a new feature, I immediately saw a chance to use it in my Weekly Agenda template, and now it saves me an extra step of copying and pasting to-do's over to the next week. I also like to set reminders within specific Notion pages so I can go back to that block directly. The Notion Web Clipper tool is simply amazing: It lets me capture notes and ideas down so quickly when I'm just browsing the web! \n\nOf course, it wouldn't be a Jeff Su video without my favorite Notion Keyboard Shortcuts, and I share the ones I use everyday just to get things done a bit quicker 😉. Sorting your Notion databases correctly is also very important since Databases is such an important feature so I go through quite a few examples of my own Notion pages to (hopefully) provide you with some inspiration. \n\nShout-out to Thomas Frank for the Nested Columns trick as well! \n\nTIMESTAMPS\n00:00 Notion.new to Open a New Page\n00:54 Create Template Buttons in Notion\n01:48 How to Create Synced Blocks\n02:47 Set Reminders in Notion\n03:21 Best Notion Keyboard Shortcuts\n05:06 Use Notion Web Clipper Tool\n06:32 How to Sort Database in Notion\n07:22 Use Embedded Archived Pages\n07:55 Create Nested Columns in Notion\n08:58 Use Toggle Feature in Notion\n09:22 Link to Specific Blocks in Notion\n10:05 Use Custom Icons in Notion\n10:36 Use a Consistent Color Scheme\n11:01 Leave yourself a Comment in Notion\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nNotion Agenda Template video: https://youtu.be/sZB8OZoSIyU\nHow to take notes in Notion: https://youtu.be/vYKyTNlUHCo\nThomas Frank's Nested Columns video: https://youtu.be/VSayCRn61ZY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notionhq #tips #productivity", "Top 14 Notion Tips for Productivity!", "ewCtvJ4rmJA", 1, 714, false, "https://www.youtube.com/watch?v=ewCtvJ4rmJA", "/downloads/Jeff Su/2021-07-20 Top 14 Notion Tips for Productivity!/Top 14 Notion Tips for Productivity! [ewCtvJ4rmJA].mp4", false, ~U[2021-07-20 13:00:16Z]] 16:47:15.351 [debug] QUERY OK source="sources" db=0.2ms idle=80.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:15.352 [debug] QUERY OK source="media_profiles" db=0.3ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:15.353 [debug] QUERY OK source="media_items" db=0.3ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [140] 16:47:15.353 [info] Kicking off download for media item #140 (ewCtvJ4rmJA) 16:47:15.356 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=4.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [144, 140, ~U[2026-04-23 14:47:15Z], ~U[2026-04-23 14:47:15Z]] 16:47:15.357 [debug] Current batch of media processed. Will check again in 1000ms 16:47:16.357 [debug] Current batch of media processed. Will check again in 1000ms 16:47:16.654 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wBi8IDngmiE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/30/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/cd/5d/cd5d6ec8287fca10ff4c30ca147a6e4175f40b556badf35c3b2e66d10a042b39.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:47:16.656 [debug] QUERY OK db=0.1ms idle=1300.8ms begin [] 16:47:16.658 [debug] QUERY OK source="media_items" db=1.2ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:47:10Z], "/downloads/Jeff Su/2025-02-03 DeepSeek: What Actually Matters (for the everyday user)/DeepSeek: What Actually Matters (for the everyday user) [wBi8IDngmiE].mp4", "/downloads/Jeff Su/2025-02-03 DeepSeek: What Actually Matters (for the everyday user)/DeepSeek: What Actually Matters (for the everyday user) [wBi8IDngmiE].info.json", "/downloads/Jeff Su/2025-02-03 DeepSeek: What Actually Matters (for the everyday user)/DeepSeek: What Actually Matters (for the everyday user) [wBi8IDngmiE].nfo", "/downloads/Jeff Su/2025-02-03 DeepSeek: What Actually Matters (for the everyday user)/DeepSeek: What Actually Matters (for the everyday user) [wBi8IDngmiE]-thumb.jpg", ~U[2026-04-23 14:47:16Z], 30] 16:47:16.660 [debug] QUERY OK source="media_metadata" db=1.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/30/metadata.json.gz", "/config/metadata/media_items/30/thumbnail.jpg", 30, ~U[2026-04-23 14:47:16Z], ~U[2026-04-23 14:47:16Z]] 16:47:16.661 [debug] QUERY OK db=0.5ms commit [] 16:47:16.664 [debug] QUERY OK source="media_items" db=2.4ms queue=0.1ms idle=1305.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [40203354, ~U[2026-04-23 14:47:16Z], 30] 16:47:16.666 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:47:16.668 [info] {"args":{"id":30},"id":34,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":37378601,"event":"job:stop","queue_time":433284886,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:47:16.676 [info] {"args":{"id":32},"id":36,"meta":{},"system_time":1776955636676358608,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:47:16.677 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=232.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" = ?) [32] 16:47:16.677 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:47:16.678 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=17.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:47:16.679 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.3ms idle=14.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] 16:47:16.680 [debug] QUERY OK source="media_items" db=0.4ms idle=11.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [32] 16:47:16.689 [debug] QUERY OK source="media_metadata" db=0.2ms idle=5.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [32] 16:47:16.693 [debug] QUERY OK source="media_profiles" db=3.7ms queue=0.1ms idle=11.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:16.697 [debug] QUERY OK source="settings" db=3.7ms idle=15.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:16.698 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=18.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:16.699 [debug] Running yt-dlp command for action: get_downloadable_status 16:47:16.700 [debug] QUERY OK source="settings" db=0.2ms idle=19.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:16.702 [debug] QUERY OK source="settings" db=1.7ms idle=18.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:16.703 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=9.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:16.703 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=e2_HXKNIzaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ea/68/ea689e8992ccd0a64d3f10c8238a9cd4e48a52b1b368cac5c276a1c12eb56ca5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:47:17.358 [debug] Current batch of media processed. Will check again in 1000ms 16:47:18.274 [info] {"source":"oban","duration":1042,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:47:18.359 [debug] Current batch of media processed. Will check again in 1000ms 16:47:18.920 [info] GET / 16:47:18.920 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 16:47:18.921 [debug] QUERY OK source="settings" db=0.3ms idle=650.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:18.921 [debug] QUERY OK source="media_profiles" db=0.1ms idle=650.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 16:47:18.922 [debug] QUERY OK source="sources" db=0.1ms idle=650.8ms SELECT count(s0."id") FROM "sources" AS s0 [] 16:47:18.922 [debug] QUERY OK source="media_items" db=0.5ms idle=647.2ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 16:47:18.923 [debug] QUERY OK source="media_items" db=0.1ms idle=474.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 16:47:18.923 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:18.923 [debug] QUERY OK source="settings" db=0.2ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:18.924 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:18.926 [debug] QUERY OK source="tasks" db=0.6ms idle=2.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 16:47:18.926 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:47:18.927 [debug] QUERY OK source="media_items" db=1.4ms idle=3.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [31, 32] 16:47:18.929 [debug] QUERY OK source="media_items" db=0.2ms idle=5.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 16:47:18.930 [debug] QUERY OK source="media_items" db=0.7ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 16:47:18.931 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:18.935 [debug] QUERY OK source="media_items" db=1.1ms idle=7.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:47:18.936 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms 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] 16:47:18.937 [debug] QUERY OK source="sources" db=0.3ms idle=7.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:18.940 [info] Sent 200 in 19ms 16:47:19.361 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Apparently you lose all credibility by using Pie Charts 🥧, so in this video, I share 7 Data Storytelling Tips to Improve Your Presentations to colleagues, managers, and senior leadership!\n\nOne of the most important skills to build in the workplace is to present data in an effective way. Data by itself is useless, it's how you interpret and how you present that data that will separate you from your peers. Data Visualization often means creating graphs and charts that tell a compelling story - a story that captures the audience's attention and makes them want to take action.\n\nOne of my favorite data storytelling tips is to use color purposeful to highlight one or two important elements in your slide. Our brains are wired to recognize patterns so colors are great to focusing our audience's attention. Furthermore, waterfall charts (waterfall graphs) are amazing at showing how two numbers relate to one another. This type of graph is used by many consulting firms (most notably by McKinsey Consultants). \n\nComparison graphs are also great at bringing the data to life: What would happen if Option B happened instead of Option B? And can we put a number to the difference?\n\nTIMESTAMPS\n00:00 Why Data Storytelling Matters\n00:45 Never Present a Single Number\n01:37 Highlight 1 Focal Point\n02:35 Use Colors\n03:32 Use Consistent Formatting\n04:03 When to use Comparison Charts\n04:48 Use Appropriate Chart Types\n06:06 Use Stickers to Protect Yourself\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentation #chartsandgraphs #productivityatwork", "duration" => 452, "filename" => "/downloads/Jeff Su/2021-07-13 7 Effective Tips for Presenting Data at Work!/7 Effective Tips for Presenting Data at Work! [jizZKNnx9wA].mp4", "id" => "jizZKNnx9wA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jizZKNnx9wA", "playlist_index" => 141, "timestamp" => 1626181216, "title" => "7 Effective Tips for Presenting Data at Work!", "upload_date" => "20210713"} 16:47:19.362 [debug] QUERY OK source="sources" db=0.3ms idle=430.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:19.362 [debug] QUERY OK source="sources" db=0.2ms idle=430.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:19.363 [debug] QUERY OK source="media_items" db=0.3ms idle=427.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-07-13 13:00:16Z], 1] 16:47:19.387 [debug] QUERY OK source="media_items" db=22.5ms idle=426.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Apparently you lose all credibility by using Pie Charts 🥧, so in this video, I share 7 Data Storytelling Tips to Improve Your Presentations to colleagues, managers, and senior leadership!\n\nOne of the most important skills to build in the workplace is to present data in an effective way. Data by itself is useless, it's how you interpret and how you present that data that will separate you from your peers. Data Visualization often means creating graphs and charts that tell a compelling story - a story that captures the audience's attention and makes them want to take action.\n\nOne of my favorite data storytelling tips is to use color purposeful to highlight one or two important elements in your slide. Our brains are wired to recognize patterns so colors are great to focusing our audience's attention. Furthermore, waterfall charts (waterfall graphs) are amazing at showing how two numbers relate to one another. This type of graph is used by many consulting firms (most notably by McKinsey Consultants). \n\nComparison graphs are also great at bringing the data to life: What would happen if Option B happened instead of Option B? And can we put a number to the difference?\n\nTIMESTAMPS\n00:00 Why Data Storytelling Matters\n00:45 Never Present a Single Number\n01:37 Highlight 1 Focal Point\n02:35 Use Colors\n03:32 Use Consistent Formatting\n04:03 When to use Comparison Charts\n04:48 Use Appropriate Chart Types\n06:06 Use Stickers to Protect Yourself\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentation #chartsandgraphs #productivityatwork", "7 Effective Tips for Presenting Data at Work!", "6eaf5b75-368d-4ec2-a047-813e902c0b07", false, "jizZKNnx9wA", 1, [], 452, false, "https://www.youtube.com/watch?v=jizZKNnx9wA", 141, "/downloads/Jeff Su/2021-07-13 7 Effective Tips for Presenting Data at Work!/7 Effective Tips for Presenting Data at Work! [jizZKNnx9wA].mp4", false, false, 99, ~U[2021-07-13 13:00:16Z], ~U[2026-04-23 14:47:19Z], ~U[2026-04-23 14:47:19Z], "Apparently you lose all credibility by using Pie Charts 🥧, so in this video, I share 7 Data Storytelling Tips to Improve Your Presentations to colleagues, managers, and senior leadership!\n\nOne of the most important skills to build in the workplace is to present data in an effective way. Data by itself is useless, it's how you interpret and how you present that data that will separate you from your peers. Data Visualization often means creating graphs and charts that tell a compelling story - a story that captures the audience's attention and makes them want to take action.\n\nOne of my favorite data storytelling tips is to use color purposeful to highlight one or two important elements in your slide. Our brains are wired to recognize patterns so colors are great to focusing our audience's attention. Furthermore, waterfall charts (waterfall graphs) are amazing at showing how two numbers relate to one another. This type of graph is used by many consulting firms (most notably by McKinsey Consultants). \n\nComparison graphs are also great at bringing the data to life: What would happen if Option B happened instead of Option B? And can we put a number to the difference?\n\nTIMESTAMPS\n00:00 Why Data Storytelling Matters\n00:45 Never Present a Single Number\n01:37 Highlight 1 Focal Point\n02:35 Use Colors\n03:32 Use Consistent Formatting\n04:03 When to use Comparison Charts\n04:48 Use Appropriate Chart Types\n06:06 Use Stickers to Protect Yourself\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentation #chartsandgraphs #productivityatwork", "7 Effective Tips for Presenting Data at Work!", "jizZKNnx9wA", 1, 452, false, "https://www.youtube.com/watch?v=jizZKNnx9wA", "/downloads/Jeff Su/2021-07-13 7 Effective Tips for Presenting Data at Work!/7 Effective Tips for Presenting Data at Work! [jizZKNnx9wA].mp4", false, ~U[2021-07-13 13:00:16Z]] 16:47:19.387 [debug] QUERY OK source="sources" db=0.3ms idle=449.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:47:19.388 [debug] QUERY OK source="media_profiles" db=0.2ms idle=25.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] 16:47:19.389 [debug] QUERY OK source="media_items" db=0.4ms idle=25.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 [141] 16:47:19.389 [info] Kicking off download for media item #141 (jizZKNnx9wA) 16:47:19.392 [debug] QUERY OK source="tasks" db=0.2ms idle=4.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [145, 141, ~U[2026-04-23 14:47:19Z], ~U[2026-04-23 14:47:19Z]] 16:47:19.392 [debug] Current batch of media processed. Will check again in 1000ms 16:47:20.261 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=j63bBK_ct-M --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d5/8c/d58cd8a03619175afb3c5d1befadb806006d0974a01615038520941af3c5e3c1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:47:20.264 [debug] Running yt-dlp command for action: download 16:47:20.266 [debug] QUERY OK source="settings" db=1.9ms queue=0.1ms idle=875.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:20.269 [debug] QUERY OK source="settings" db=2.6ms idle=875.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:20.271 [debug] QUERY OK source="settings" db=1.6ms idle=878.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:20.272 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=j63bBK_ct-M --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0b/8e/0b8ef93a3ad8725b8792509386456af7671a01c5fb2147bade41e162c1f5b563.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:47:20.393 [debug] Current batch of media processed. Will check again in 1000ms 16:47:21.394 [debug] Current batch of media processed. Will check again in 1000ms 16:47:22.395 [debug] Current batch of media processed. Will check again in 1000ms 16:47:22.436 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=e2_HXKNIzaM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ea/68/ea689e8992ccd0a64d3f10c8238a9cd4e48a52b1b368cac5c276a1c12eb56ca5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:47:22.437 [debug] Running yt-dlp command for action: download 16:47:22.437 [debug] QUERY OK source="settings" db=0.3ms idle=1166.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:22.437 [debug] QUERY OK source="settings" db=0.1ms idle=1166.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:22.438 [debug] QUERY OK source="settings" db=0.1ms idle=1167.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:22.438 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=e2_HXKNIzaM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/5d/81/5d81a431eb871e1f8216376d977b78d0b842baf51867809972a210c5b45b68ad.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:47:23.397 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🌄 Don't give Google Photos much thought? I don't blame you; it's a reliable - but perhaps a bit boring - tool. So in this video I'm going to share my top 15 Google Photos Tips for Productivity, and hopefully show you some amazing features you've never come across before!\n\nFor example, in the web version of Google Photos, Google automatically detects large files, blurry photos, and screenshots for you to delete and save on some storage! Gmail and Google Drive both eat into your storage space so you can go into those platforms and clean up as well. \n\nOn your Google Photos mobile app, you can setup backup options. Android users get a big more control since they're able to choose which photos are included in Google Photos backup and sync. iPhone users are able to turn on Sync favorites so their \"Favorited Photos\" in Apple Photos will be \"Favorited\" in Google Photos as well.\n\nI also walk you through some of the Albums I personally create for Google Photos, and the auto-rotate feature within Google Photos editing tool can come in handy as well! \n\nHave fun with your (new and improved) Google Photos! 😁\n\nTIMESTAMPS\n00:00 Create GIFs using Google Photos\n01:05 Google Photos Storage Management\n03:38 Google Photo Album Tips\n04:43 Editing on Google Photos\n05:59 Google Photos Power Tips\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nCheck your own storage - https://www.photos.google.com/storage\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlePhotos #productivity #picturePerfect", "duration" => 503, "filename" => "/downloads/Jeff Su/2021-07-06 Top 15 Google Photos Tips for Productivity!/Top 15 Google Photos Tips for Productivity! [rs0fLVEM8Ow].mp4", "id" => "rs0fLVEM8Ow", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rs0fLVEM8Ow", "playlist_index" => 142, "timestamp" => 1625576432, "title" => "Top 15 Google Photos Tips for Productivity!", "upload_date" => "20210706"} 16:47:23.400 [debug] QUERY OK source="sources" db=2.8ms queue=0.1ms idle=1126.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:23.401 [debug] QUERY OK source="sources" db=0.4ms queue=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" = ?) [1] 16:47:23.403 [debug] QUERY OK source="media_items" db=1.2ms idle=964.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-07-06 13:00:32Z], 1] 16:47:23.407 [debug] QUERY OK source="media_items" db=2.4ms queue=0.1ms idle=965.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🌄 Don't give Google Photos much thought? I don't blame you; it's a reliable - but perhaps a bit boring - tool. So in this video I'm going to share my top 15 Google Photos Tips for Productivity, and hopefully show you some amazing features you've never come across before!\n\nFor example, in the web version of Google Photos, Google automatically detects large files, blurry photos, and screenshots for you to delete and save on some storage! Gmail and Google Drive both eat into your storage space so you can go into those platforms and clean up as well. \n\nOn your Google Photos mobile app, you can setup backup options. Android users get a big more control since they're able to choose which photos are included in Google Photos backup and sync. iPhone users are able to turn on Sync favorites so their \"Favorited Photos\" in Apple Photos will be \"Favorited\" in Google Photos as well.\n\nI also walk you through some of the Albums I personally create for Google Photos, and the auto-rotate feature within Google Photos editing tool can come in handy as well! \n\nHave fun with your (new and improved) Google Photos! 😁\n\nTIMESTAMPS\n00:00 Create GIFs using Google Photos\n01:05 Google Photos Storage Management\n03:38 Google Photo Album Tips\n04:43 Editing on Google Photos\n05:59 Google Photos Power Tips\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nCheck your own storage - https://www.photos.google.com/storage\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlePhotos #productivity #picturePerfect", "Top 15 Google Photos Tips for Productivity!", "fdffa81f-c3ca-404b-8775-d18559175c0c", false, "rs0fLVEM8Ow", 1, [], 503, false, "https://www.youtube.com/watch?v=rs0fLVEM8Ow", 142, "/downloads/Jeff Su/2021-07-06 Top 15 Google Photos Tips for Productivity!/Top 15 Google Photos Tips for Productivity! [rs0fLVEM8Ow].mp4", false, false, 99, ~U[2021-07-06 13:00:32Z], ~U[2026-04-23 14:47:23Z], ~U[2026-04-23 14:47:23Z], "🌄 Don't give Google Photos much thought? I don't blame you; it's a reliable - but perhaps a bit boring - tool. So in this video I'm going to share my top 15 Google Photos Tips for Productivity, and hopefully show you some amazing features you've never come across before!\n\nFor example, in the web version of Google Photos, Google automatically detects large files, blurry photos, and screenshots for you to delete and save on some storage! Gmail and Google Drive both eat into your storage space so you can go into those platforms and clean up as well. \n\nOn your Google Photos mobile app, you can setup backup options. Android users get a big more control since they're able to choose which photos are included in Google Photos backup and sync. iPhone users are able to turn on Sync favorites so their \"Favorited Photos\" in Apple Photos will be \"Favorited\" in Google Photos as well.\n\nI also walk you through some of the Albums I personally create for Google Photos, and the auto-rotate feature within Google Photos editing tool can come in handy as well! \n\nHave fun with your (new and improved) Google Photos! 😁\n\nTIMESTAMPS\n00:00 Create GIFs using Google Photos\n01:05 Google Photos Storage Management\n03:38 Google Photo Album Tips\n04:43 Editing on Google Photos\n05:59 Google Photos Power Tips\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nCheck your own storage - https://www.photos.google.com/storage\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlePhotos #productivity #picturePerfect", "Top 15 Google Photos Tips for Productivity!", "rs0fLVEM8Ow", 1, 503, false, "https://www.youtube.com/watch?v=rs0fLVEM8Ow", "/downloads/Jeff Su/2021-07-06 Top 15 Google Photos Tips for Productivity!/Top 15 Google Photos Tips for Productivity! [rs0fLVEM8Ow].mp4", false, ~U[2021-07-06 13:00:32Z]] 16:47:23.409 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=948.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:47:23.410 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=8.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] 16:47:23.411 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=8.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [142] 16:47:23.411 [info] Kicking off download for media item #142 (rs0fLVEM8Ow) 16:47:23.418 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=8.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [146, 142, ~U[2026-04-23 14:47:23Z], ~U[2026-04-23 14:47:23Z]] 16:47:23.420 [debug] Current batch of media processed. Will check again in 1000ms 16:47:24.420 [debug] Current batch of media processed. Will check again in 1000ms 16:47:25.421 [debug] Current batch of media processed. Will check again in 1000ms 16:47:26.423 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "👨🏻\u200D🎓 Having been in the \"corporate life\" for the past 7 years, I recently looked back at some of the mistakes, learnings, and takeaways from this period of my life and in this video, I share the 5 Lessons from the First Years of My Career!\n\nFirst, I learned how to quickly build credibility with colleagues even when I had relatively little work experience. I also observed colleagues who seemed to be able to influence others effectively even when they didn't hold a senior job title. \n\nI have also regularly come across terms such as \"visibility,\" \"presence,\" and \"exposure\" and they're often associated with job promotions and salary raises, yet many young professionals (myself included) have a misconception as to HOW we should go about becoming more visible in the workplace. \n\nBurnout is also a very real issue nowadays so how should we go about saying \"no\" to others (especially senior stakeholders) without inadvertently damaging a work relationship? \n\nFinally, I share a bad habit I picked up in college: assuming all networking events needed to have a purpose - to benefit me. When in reality keeping an open mind and being genuinely curious about others' work may open doors you never even considered of previously! \n\nTIMESTAMPS\n00:00 Intro\n00:21 Build Credibility with Colleagues\n01:45 Influence Without Authority\n03:08 Visibility in the Workplace\n04:50 How to Say \"No\"\n06:28 Network with an Open Mind\n07:52 Bonus Surprise :)\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGmail Tips and Tricks - https://youtu.be/DPWVEL4UNi0\nHarvard Business Review Article - https://hbr.org/2008/02/exerting-influence-without-aut\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#career #professional #workplace", "duration" => 485, "filename" => "/downloads/Jeff Su/2021-06-29 5 Things I Wish I Knew Before Joining FAANG!/5 Things I Wish I Knew Before Joining FAANG! [Im7O5zkQIwY].mp4", "id" => "Im7O5zkQIwY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Im7O5zkQIwY", "playlist_index" => 143, "timestamp" => 1624971606, "title" => "5 Things I Wish I Knew Before Joining FAANG!", "upload_date" => "20210629"} 16:47:26.426 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=1152.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:26.427 [debug] QUERY OK source="sources" db=0.5ms idle=1155.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:26.428 [debug] QUERY OK source="media_items" db=0.8ms idle=1156.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-06-29 13:00:06Z], 1] 16:47:26.431 [debug] QUERY OK source="media_items" db=2.2ms idle=1157.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["👨🏻\u200D🎓 Having been in the \"corporate life\" for the past 7 years, I recently looked back at some of the mistakes, learnings, and takeaways from this period of my life and in this video, I share the 5 Lessons from the First Years of My Career!\n\nFirst, I learned how to quickly build credibility with colleagues even when I had relatively little work experience. I also observed colleagues who seemed to be able to influence others effectively even when they didn't hold a senior job title. \n\nI have also regularly come across terms such as \"visibility,\" \"presence,\" and \"exposure\" and they're often associated with job promotions and salary raises, yet many young professionals (myself included) have a misconception as to HOW we should go about becoming more visible in the workplace. \n\nBurnout is also a very real issue nowadays so how should we go about saying \"no\" to others (especially senior stakeholders) without inadvertently damaging a work relationship? \n\nFinally, I share a bad habit I picked up in college: assuming all networking events needed to have a purpose - to benefit me. When in reality keeping an open mind and being genuinely curious about others' work may open doors you never even considered of previously! \n\nTIMESTAMPS\n00:00 Intro\n00:21 Build Credibility with Colleagues\n01:45 Influence Without Authority\n03:08 Visibility in the Workplace\n04:50 How to Say \"No\"\n06:28 Network with an Open Mind\n07:52 Bonus Surprise :)\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGmail Tips and Tricks - https://youtu.be/DPWVEL4UNi0\nHarvard Business Review Article - https://hbr.org/2008/02/exerting-influence-without-aut\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#career #professional #workplace", "5 Things I Wish I Knew Before Joining FAANG!", "f45448f2-6ab2-4ee0-a189-000f91962b21", false, "Im7O5zkQIwY", 1, [], 485, false, "https://www.youtube.com/watch?v=Im7O5zkQIwY", 143, "/downloads/Jeff Su/2021-06-29 5 Things I Wish I Knew Before Joining FAANG!/5 Things I Wish I Knew Before Joining FAANG! [Im7O5zkQIwY].mp4", false, false, 99, ~U[2021-06-29 13:00:06Z], ~U[2026-04-23 14:47:26Z], ~U[2026-04-23 14:47:26Z], "👨🏻\u200D🎓 Having been in the \"corporate life\" for the past 7 years, I recently looked back at some of the mistakes, learnings, and takeaways from this period of my life and in this video, I share the 5 Lessons from the First Years of My Career!\n\nFirst, I learned how to quickly build credibility with colleagues even when I had relatively little work experience. I also observed colleagues who seemed to be able to influence others effectively even when they didn't hold a senior job title. \n\nI have also regularly come across terms such as \"visibility,\" \"presence,\" and \"exposure\" and they're often associated with job promotions and salary raises, yet many young professionals (myself included) have a misconception as to HOW we should go about becoming more visible in the workplace. \n\nBurnout is also a very real issue nowadays so how should we go about saying \"no\" to others (especially senior stakeholders) without inadvertently damaging a work relationship? \n\nFinally, I share a bad habit I picked up in college: assuming all networking events needed to have a purpose - to benefit me. When in reality keeping an open mind and being genuinely curious about others' work may open doors you never even considered of previously! \n\nTIMESTAMPS\n00:00 Intro\n00:21 Build Credibility with Colleagues\n01:45 Influence Without Authority\n03:08 Visibility in the Workplace\n04:50 How to Say \"No\"\n06:28 Network with an Open Mind\n07:52 Bonus Surprise :)\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGmail Tips and Tricks - https://youtu.be/DPWVEL4UNi0\nHarvard Business Review Article - https://hbr.org/2008/02/exerting-influence-without-aut\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#career #professional #workplace", "5 Things I Wish I Knew Before Joining FAANG!", "Im7O5zkQIwY", 1, 485, false, "https://www.youtube.com/watch?v=Im7O5zkQIwY", "/downloads/Jeff Su/2021-06-29 5 Things I Wish I Knew Before Joining FAANG!/5 Things I Wish I Knew Before Joining FAANG! [Im7O5zkQIwY].mp4", false, ~U[2021-06-29 13:00:06Z]] 16:47:26.432 [debug] QUERY OK source="sources" db=0.4ms idle=966.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:47:26.433 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:26.433 [debug] QUERY OK source="media_items" db=0.3ms idle=6.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [143] 16:47:26.434 [info] Kicking off download for media item #143 (Im7O5zkQIwY) 16:47:26.437 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [147, 143, ~U[2026-04-23 14:47:26Z], ~U[2026-04-23 14:47:26Z]] 16:47:26.437 [debug] Current batch of media processed. Will check again in 1000ms 16:47:27.437 [debug] Current batch of media processed. Will check again in 1000ms 16:47:28.438 [debug] Current batch of media processed. Will check again in 1000ms 16:47:29.439 [debug] Current batch of media processed. Will check again in 1000ms 16:47:30.441 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=056\n\n🌐 Over 60% of people in the world use Google Chrome as their main browser, so there's a good chance this video on the Top 8 Productivity Tips for Google Chrome is applicable to you 👍🏻\n\nIf you use a lot of Chrome extensions for work, did you know you could actually connect them to keyboard shortcuts of your choosing? Talk about an increase in productivity\n\nOR - if you don't want your work Chrome extensions in your personal Chrome account, you could create a Chrome User Profile that is COMPLETELY separate from your work Google account. This helped me become more efficient since I didn't have to toggle between 2 different browsers. \n\nWorkflow-wise, I like to keep related websites, links, online documents (i.e. for a single project) together in the same Bookmarks folder for easy access. I also like to keep the tabs I know I use all the time pinned to the left (Gmail, Calendar, Keep, Drive). \n\nAnd of course, we can't forget about Custom Search Engines on Chrome! You can literally search within any website - that has a search function built in - from the Google Chrome address bar, how cool is that?! 🤯\n\nTIMESTAMPS\n00:00 Chrome Extension Shortcut Trick\n01:00 Bookmark Related Tabs Together\n02:00 Create Chrome User Profiles\n03:49 Add Custom Search Engines\n05:31 Use a Focused Work Window\n06:05 Quickly Find Specific Tabs\n06:56 Manage Tabs Efficiently\n07:34 Best Chrome Keyboard Shortcuts\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nChrome extension keyboard shortcuts - chrome://extensions/shortcuts\nGoogle Chrome User Profile article - https://www.makeuseof.com/tag/custom-chrome-browser-profiles/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#chrome #productivity #tipsandtricks", "duration" => 499, "filename" => "/downloads/Jeff Su/2021-06-22 Top 8 Productivity Tips for Google Chrome/Top 8 Productivity Tips for Google Chrome [KXY-2fIAksY].mp4", "id" => "KXY-2fIAksY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KXY-2fIAksY", "playlist_index" => 144, "timestamp" => 1624366815, "title" => "Top 8 Productivity Tips for Google Chrome", "upload_date" => "20210622"} 16:47:30.442 [debug] QUERY OK source="sources" db=0.3ms idle=968.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:30.442 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=171.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:30.443 [debug] QUERY OK source="media_items" db=0.6ms idle=172.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-06-22 13:00:15Z], 1] 16:47:30.446 [debug] QUERY OK source="media_items" db=2.0ms idle=173.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=056\n\n🌐 Over 60% of people in the world use Google Chrome as their main browser, so there's a good chance this video on the Top 8 Productivity Tips for Google Chrome is applicable to you 👍🏻\n\nIf you use a lot of Chrome extensions for work, did you know you could actually connect them to keyboard shortcuts of your choosing? Talk about an increase in productivity\n\nOR - if you don't want your work Chrome extensions in your personal Chrome account, you could create a Chrome User Profile that is COMPLETELY separate from your work Google account. This helped me become more efficient since I didn't have to toggle between 2 different browsers. \n\nWorkflow-wise, I like to keep related websites, links, online documents (i.e. for a single project) together in the same Bookmarks folder for easy access. I also like to keep the tabs I know I use all the time pinned to the left (Gmail, Calendar, Keep, Drive). \n\nAnd of course, we can't forget about Custom Search Engines on Chrome! You can literally search within any website - that has a search function built in - from the Google Chrome address bar, how cool is that?! 🤯\n\nTIMESTAMPS\n00:00 Chrome Extension Shortcut Trick\n01:00 Bookmark Related Tabs Together\n02:00 Create Chrome User Profiles\n03:49 Add Custom Search Engines\n05:31 Use a Focused Work Window\n06:05 Quickly Find Specific Tabs\n06:56 Manage Tabs Efficiently\n07:34 Best Chrome Keyboard Shortcuts\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nChrome extension keyboard shortcuts - chrome://extensions/shortcuts\nGoogle Chrome User Profile article - https://www.makeuseof.com/tag/custom-chrome-browser-profiles/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#chrome #productivity #tipsandtricks", "Top 8 Productivity Tips for Google Chrome", "9eeb6981-da47-48f1-8495-152a9bb39a4d", false, "KXY-2fIAksY", 1, [], 499, false, "https://www.youtube.com/watch?v=KXY-2fIAksY", 144, "/downloads/Jeff Su/2021-06-22 Top 8 Productivity Tips for Google Chrome/Top 8 Productivity Tips for Google Chrome [KXY-2fIAksY].mp4", false, false, 99, ~U[2021-06-22 13:00:15Z], ~U[2026-04-23 14:47:30Z], ~U[2026-04-23 14:47:30Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=056\n\n🌐 Over 60% of people in the world use Google Chrome as their main browser, so there's a good chance this video on the Top 8 Productivity Tips for Google Chrome is applicable to you 👍🏻\n\nIf you use a lot of Chrome extensions for work, did you know you could actually connect them to keyboard shortcuts of your choosing? Talk about an increase in productivity\n\nOR - if you don't want your work Chrome extensions in your personal Chrome account, you could create a Chrome User Profile that is COMPLETELY separate from your work Google account. This helped me become more efficient since I didn't have to toggle between 2 different browsers. \n\nWorkflow-wise, I like to keep related websites, links, online documents (i.e. for a single project) together in the same Bookmarks folder for easy access. I also like to keep the tabs I know I use all the time pinned to the left (Gmail, Calendar, Keep, Drive). \n\nAnd of course, we can't forget about Custom Search Engines on Chrome! You can literally search within any website - that has a search function built in - from the Google Chrome address bar, how cool is that?! 🤯\n\nTIMESTAMPS\n00:00 Chrome Extension Shortcut Trick\n01:00 Bookmark Related Tabs Together\n02:00 Create Chrome User Profiles\n03:49 Add Custom Search Engines\n05:31 Use a Focused Work Window\n06:05 Quickly Find Specific Tabs\n06:56 Manage Tabs Efficiently\n07:34 Best Chrome Keyboard Shortcuts\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nChrome extension keyboard shortcuts - chrome://extensions/shortcuts\nGoogle Chrome User Profile article - https://www.makeuseof.com/tag/custom-chrome-browser-profiles/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#chrome #productivity #tipsandtricks", "Top 8 Productivity Tips for Google Chrome", "KXY-2fIAksY", 1, 499, false, "https://www.youtube.com/watch?v=KXY-2fIAksY", "/downloads/Jeff Su/2021-06-22 Top 8 Productivity Tips for Google Chrome/Top 8 Productivity Tips for Google Chrome [KXY-2fIAksY].mp4", false, ~U[2021-06-22 13:00:15Z]] 16:47:30.447 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=176.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:30.447 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:30.448 [debug] QUERY OK source="media_items" db=0.3ms idle=5.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [144] 16:47:30.448 [info] Kicking off download for media item #144 (KXY-2fIAksY) 16:47:30.451 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [148, 144, ~U[2026-04-23 14:47:30Z], ~U[2026-04-23 14:47:30Z]] 16:47:30.451 [debug] Current batch of media processed. Will check again in 1000ms 16:47:31.452 [debug] Current batch of media processed. Will check again in 1000ms 16:47:32.453 [debug] Current batch of media processed. Will check again in 1000ms 16:47:33.455 [debug] Current batch of media processed. Will check again in 1000ms 16:47:34.456 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=055\n\nPurchase the Editable Google Doc file: https://jeffsu.gumroad.com/l/DCulQJ\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n📮 A good cover letter complements your resume by telling a story about why you deserve that first round interview. In this video, I share 3 Practical Tips on how to Write an Amazing Cover Letter, and even include a free sample template for you to download.\n\nFor those of you who have never written a cover letter, or perhaps it's been a while since you wrote one, it could be difficult to start, since there are really no standardized template. A cover letter for an internship would be different than that for a full time job. And sometimes, the job application says submitting a cover letter is \"optional\" so should you even bother? 🤔\n\nI walk you through step-by-step on how to write an amazing cover letter and even provide an example cover letter for you to reference:\n\n1️⃣ Hook the reader in by mentioning a connection with the company\n2️⃣ Be purposeful about the information you include in your cover letter body paragraphs\n3️⃣ Use a simple cover letter template\n\nNow that you have an amazing cover letter, check out my video on how to write an incredible resume and best of luck in your job search 😁\n\nTIMESTAMPS\n00:00 Intro\n00:51 Hook the Reader \n03:48 Be Purposeful \n05:32 Use a Simple Template\n06:16 Secret Power Tip\n06:45 Template Download\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Teal - https://get.tealhq.com/jeffsu\n\nRESOURCES I MENTION IN THE VIDEO\nCover Letter Mistakes You MUST Avoid - https://youtu.be/xudcyY06PiI\nBest Informational Interview Questions to ask during Coffee Chat - https://youtu.be/4b2iagdHw8M\nWrite an Incredible Resume video - https://youtu.be/Tt08KmFfIYQ\nG2 Website - https://www.g2.com/\nCapterra Website - https://www.capterra.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#coverletter #jobsearch #success", "duration" => 445, "filename" => "/downloads/Jeff Su/2021-06-15 Write an Amazing Cover Letter: 3 Golden Rules (Template included)/Write an Amazing Cover Letter: 3 Golden Rules (Template included) [NUhDP30IRKk].mp4", "id" => "NUhDP30IRKk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NUhDP30IRKk", "playlist_index" => 145, "timestamp" => 1623762025, "title" => "Write an Amazing Cover Letter: 3 Golden Rules (Template included)", "upload_date" => "20210615"} 16:47:34.457 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=975.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:34.458 [debug] QUERY OK source="sources" db=0.2ms idle=186.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:34.459 [debug] QUERY OK source="media_items" db=0.7ms idle=187.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-06-15 13:00:25Z], 1] 16:47:34.462 [debug] QUERY OK source="media_items" db=2.2ms idle=188.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=055\n\nPurchase the Editable Google Doc file: https://jeffsu.gumroad.com/l/DCulQJ\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n📮 A good cover letter complements your resume by telling a story about why you deserve that first round interview. In this video, I share 3 Practical Tips on how to Write an Amazing Cover Letter, and even include a free sample template for you to download.\n\nFor those of you who have never written a cover letter, or perhaps it's been a while since you wrote one, it could be difficult to start, since there are really no standardized template. A cover letter for an internship would be different than that for a full time job. And sometimes, the job application says submitting a cover letter is \"optional\" so should you even bother? 🤔\n\nI walk you through step-by-step on how to write an amazing cover letter and even provide an example cover letter for you to reference:\n\n1️⃣ Hook the reader in by mentioning a connection with the company\n2️⃣ Be purposeful about the information you include in your cover letter body paragraphs\n3️⃣ Use a simple cover letter template\n\nNow that you have an amazing cover letter, check out my video on how to write an incredible resume and best of luck in your job search 😁\n\nTIMESTAMPS\n00:00 Intro\n00:51 Hook the Reader \n03:48 Be Purposeful \n05:32 Use a Simple Template\n06:16 Secret Power Tip\n06:45 Template Download\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Teal - https://get.tealhq.com/jeffsu\n\nRESOURCES I MENTION IN THE VIDEO\nCover Letter Mistakes You MUST Avoid - https://youtu.be/xudcyY06PiI\nBest Informational Interview Questions to ask during Coffee Chat - https://youtu.be/4b2iagdHw8M\nWrite an Incredible Resume video - https://youtu.be/Tt08KmFfIYQ\nG2 Website - https://www.g2.com/\nCapterra Website - https://www.capterra.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#coverletter #jobsearch #success", "Write an Amazing Cover Letter: 3 Golden Rules (Template included)", "b92fad5c-9ea0-480e-afa9-6966cf184257", false, "NUhDP30IRKk", 1, [], 445, false, "https://www.youtube.com/watch?v=NUhDP30IRKk", 145, "/downloads/Jeff Su/2021-06-15 Write an Amazing Cover Letter: 3 Golden Rules (Template included)/Write an Amazing Cover Letter: 3 Golden Rules (Template included) [NUhDP30IRKk].mp4", false, false, 99, ~U[2021-06-15 13:00:25Z], ~U[2026-04-23 14:47:34Z], ~U[2026-04-23 14:47:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=055\n\nPurchase the Editable Google Doc file: https://jeffsu.gumroad.com/l/DCulQJ\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n📮 A good cover letter complements your resume by telling a story about why you deserve that first round interview. In this video, I share 3 Practical Tips on how to Write an Amazing Cover Letter, and even include a free sample template for you to download.\n\nFor those of you who have never written a cover letter, or perhaps it's been a while since you wrote one, it could be difficult to start, since there are really no standardized template. A cover letter for an internship would be different than that for a full time job. And sometimes, the job application says submitting a cover letter is \"optional\" so should you even bother? 🤔\n\nI walk you through step-by-step on how to write an amazing cover letter and even provide an example cover letter for you to reference:\n\n1️⃣ Hook the reader in by mentioning a connection with the company\n2️⃣ Be purposeful about the information you include in your cover letter body paragraphs\n3️⃣ Use a simple cover letter template\n\nNow that you have an amazing cover letter, check out my video on how to write an incredible resume and best of luck in your job search 😁\n\nTIMESTAMPS\n00:00 Intro\n00:51 Hook the Reader \n03:48 Be Purposeful \n05:32 Use a Simple Template\n06:16 Secret Power Tip\n06:45 Template Download\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Teal - https://get.tealhq.com/jeffsu\n\nRESOURCES I MENTION IN THE VIDEO\nCover Letter Mistakes You MUST Avoid - https://youtu.be/xudcyY06PiI\nBest Informational Interview Questions to ask during Coffee Chat - https://youtu.be/4b2iagdHw8M\nWrite an Incredible Resume video - https://youtu.be/Tt08KmFfIYQ\nG2 Website - https://www.g2.com/\nCapterra Website - https://www.capterra.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#coverletter #jobsearch #success", "Write an Amazing Cover Letter: 3 Golden Rules (Template included)", "NUhDP30IRKk", 1, 445, false, "https://www.youtube.com/watch?v=NUhDP30IRKk", "/downloads/Jeff Su/2021-06-15 Write an Amazing Cover Letter: 3 Golden Rules (Template included)/Write an Amazing Cover Letter: 3 Golden Rules (Template included) [NUhDP30IRKk].mp4", false, ~U[2021-06-15 13:00:25Z]] 16:47:34.463 [debug] QUERY OK source="sources" db=0.3ms idle=191.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:47:34.463 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 16:47:34.464 [debug] QUERY OK source="media_items" db=0.3ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [145] 16:47:34.464 [info] Kicking off download for media item #145 (NUhDP30IRKk) 16:47:34.468 [debug] QUERY OK source="tasks" db=0.2ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [149, 145, ~U[2026-04-23 14:47:34Z], ~U[2026-04-23 14:47:34Z]] 16:47:34.468 [debug] Current batch of media processed. Will check again in 1000ms 16:47:35.468 [debug] Current batch of media processed. Will check again in 1000ms 16:47:36.469 [debug] Current batch of media processed. Will check again in 1000ms 16:47:37.473 [debug] Current batch of media processed. Will check again in 1000ms 16:47:38.475 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🤫 Who knew you could be productive while on YouTube? In this video I share 7 Productivity Secrets for YOUTUBE You Need to Know, including tips like intentionally managing your home feed so YouTube recommends you less \"sticky content.\" \n\nA not-so-secret trick I love to use is to turn on YouTube Incognito Mode using the CMD+SHIFT+N shortcut and watching my guilty pleasures (e.g. Hearthstone gameplay) while eating. I do this since I don't want my regular YouTube recommendations to be skewed.\n\nOther YouTube Tips and Tricks include using the Find Function (CMD+F) with the Transcribe feature to quickly jump to specific segments of YouTube videos. Another tip I use all the time is to copy the video URL at the current time, so when I send it to my colleagues, they can open up the video at that exact time! \n\nFinally, you can even search within YouTube channels for \"subset\" of topics using the magnifying glass on the channel page. With these tips, hopefully you can prove to others that you can still be productive even while on YouTube! \n\nTIMESTAMPS\n00:00 Skit\n00:40 Incognito mode to protect recommendations\n01:20 Intentionally manage your home feed\n02:04 Insert audio clips into presentations\n03:41 Best YouTube keyboard shortcuts\n05:20 Find + Transcribe function\n06:09 Hyperlink video at specific time\n07:04 Perform targeted search\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Drive Tips for Productivity - https://youtu.be/xhEr6ONZF6A\nGoogle Slides Tips for Productivity - https://youtu.be/iU5iweN2IOM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#youtube #productivity #secrets", "duration" => 496, "filename" => "/downloads/Jeff Su/2021-06-08 7 Productivity Secrets for Watching YouTube Videos!/7 Productivity Secrets for Watching YouTube Videos! [5wewhjpsO3c].mp4", "id" => "5wewhjpsO3c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5wewhjpsO3c", "playlist_index" => 146, "timestamp" => 1623159000, "title" => "7 Productivity Secrets for Watching YouTube Videos!", "upload_date" => "20210608"} 16:47:38.476 [debug] QUERY OK source="sources" db=0.3ms idle=986.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:38.476 [debug] QUERY OK source="sources" db=0.2ms idle=205.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:38.477 [debug] QUERY OK source="media_items" db=0.7ms idle=205.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-06-08 13:30:00Z], 1] 16:47:38.480 [debug] QUERY OK source="media_items" db=1.9ms idle=207.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🤫 Who knew you could be productive while on YouTube? In this video I share 7 Productivity Secrets for YOUTUBE You Need to Know, including tips like intentionally managing your home feed so YouTube recommends you less \"sticky content.\" \n\nA not-so-secret trick I love to use is to turn on YouTube Incognito Mode using the CMD+SHIFT+N shortcut and watching my guilty pleasures (e.g. Hearthstone gameplay) while eating. I do this since I don't want my regular YouTube recommendations to be skewed.\n\nOther YouTube Tips and Tricks include using the Find Function (CMD+F) with the Transcribe feature to quickly jump to specific segments of YouTube videos. Another tip I use all the time is to copy the video URL at the current time, so when I send it to my colleagues, they can open up the video at that exact time! \n\nFinally, you can even search within YouTube channels for \"subset\" of topics using the magnifying glass on the channel page. With these tips, hopefully you can prove to others that you can still be productive even while on YouTube! \n\nTIMESTAMPS\n00:00 Skit\n00:40 Incognito mode to protect recommendations\n01:20 Intentionally manage your home feed\n02:04 Insert audio clips into presentations\n03:41 Best YouTube keyboard shortcuts\n05:20 Find + Transcribe function\n06:09 Hyperlink video at specific time\n07:04 Perform targeted search\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Drive Tips for Productivity - https://youtu.be/xhEr6ONZF6A\nGoogle Slides Tips for Productivity - https://youtu.be/iU5iweN2IOM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#youtube #productivity #secrets", "7 Productivity Secrets for Watching YouTube Videos!", "931c1b25-a777-427a-bac1-030639fd80c5", false, "5wewhjpsO3c", 1, [], 496, false, "https://www.youtube.com/watch?v=5wewhjpsO3c", 146, "/downloads/Jeff Su/2021-06-08 7 Productivity Secrets for Watching YouTube Videos!/7 Productivity Secrets for Watching YouTube Videos! [5wewhjpsO3c].mp4", false, false, 99, ~U[2021-06-08 13:30:00Z], ~U[2026-04-23 14:47:38Z], ~U[2026-04-23 14:47:38Z], "🤫 Who knew you could be productive while on YouTube? In this video I share 7 Productivity Secrets for YOUTUBE You Need to Know, including tips like intentionally managing your home feed so YouTube recommends you less \"sticky content.\" \n\nA not-so-secret trick I love to use is to turn on YouTube Incognito Mode using the CMD+SHIFT+N shortcut and watching my guilty pleasures (e.g. Hearthstone gameplay) while eating. I do this since I don't want my regular YouTube recommendations to be skewed.\n\nOther YouTube Tips and Tricks include using the Find Function (CMD+F) with the Transcribe feature to quickly jump to specific segments of YouTube videos. Another tip I use all the time is to copy the video URL at the current time, so when I send it to my colleagues, they can open up the video at that exact time! \n\nFinally, you can even search within YouTube channels for \"subset\" of topics using the magnifying glass on the channel page. With these tips, hopefully you can prove to others that you can still be productive even while on YouTube! \n\nTIMESTAMPS\n00:00 Skit\n00:40 Incognito mode to protect recommendations\n01:20 Intentionally manage your home feed\n02:04 Insert audio clips into presentations\n03:41 Best YouTube keyboard shortcuts\n05:20 Find + Transcribe function\n06:09 Hyperlink video at specific time\n07:04 Perform targeted search\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Drive Tips for Productivity - https://youtu.be/xhEr6ONZF6A\nGoogle Slides Tips for Productivity - https://youtu.be/iU5iweN2IOM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#youtube #productivity #secrets", "7 Productivity Secrets for Watching YouTube Videos!", "5wewhjpsO3c", 1, 496, false, "https://www.youtube.com/watch?v=5wewhjpsO3c", "/downloads/Jeff Su/2021-06-08 7 Productivity Secrets for Watching YouTube Videos!/7 Productivity Secrets for Watching YouTube Videos! [5wewhjpsO3c].mp4", false, ~U[2021-06-08 13:30:00Z]] 16:47:38.481 [debug] QUERY OK source="sources" db=0.2ms idle=210.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:47:38.482 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:38.482 [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 [146] 16:47:38.482 [info] Kicking off download for media item #146 (5wewhjpsO3c) 16:47:38.485 [debug] QUERY OK source="tasks" db=0.2ms idle=3.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [150, 146, ~U[2026-04-23 14:47:38Z], ~U[2026-04-23 14:47:38Z]] 16:47:38.486 [debug] Current batch of media processed. Will check again in 1000ms 16:47:39.486 [debug] Current batch of media processed. Will check again in 1000ms 16:47:40.487 [debug] Current batch of media processed. Will check again in 1000ms 16:47:41.489 [debug] Current batch of media processed. Will check again in 1000ms 16:47:42.489 [debug] Current batch of media processed. Will check again in 1000ms 16:47:43.491 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🤯 It's been exactly 1 year since I uploaded my first ever video here on YouTube. Whether you came across my videos today or sometime within the past year...thank you. \n\nI hope you found some sort of value and I promise I'm going to continue making useful content for all of you, so...let's get started 😁\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#youtubeversary #1year #thankyou", "duration" => 134, "filename" => "/downloads/Jeff Su/2021-06-01 Thank you, for watching/Thank you, for watching [d_IfQJP3aGU].mp4", "id" => "d_IfQJP3aGU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=d_IfQJP3aGU", "playlist_index" => 147, "timestamp" => 1622553301, "title" => "Thank you, for watching", "upload_date" => "20210601"} 16:47:43.492 [debug] QUERY OK source="sources" db=1.1ms idle=1220.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:43.494 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1222.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:43.495 [debug] QUERY OK source="media_items" db=1.1ms idle=1223.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-06-01 13:15:01Z], 1] 16:47:43.499 [debug] QUERY OK source="media_items" db=3.0ms idle=1225.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🤯 It's been exactly 1 year since I uploaded my first ever video here on YouTube. Whether you came across my videos today or sometime within the past year...thank you. \n\nI hope you found some sort of value and I promise I'm going to continue making useful content for all of you, so...let's get started 😁\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#youtubeversary #1year #thankyou", "Thank you, for watching", "ce1d84ca-f1b2-4359-9627-857bea0d58c9", false, "d_IfQJP3aGU", 1, [], 134, false, "https://www.youtube.com/watch?v=d_IfQJP3aGU", 147, "/downloads/Jeff Su/2021-06-01 Thank you, for watching/Thank you, for watching [d_IfQJP3aGU].mp4", false, false, 99, ~U[2021-06-01 13:15:01Z], ~U[2026-04-23 14:47:43Z], ~U[2026-04-23 14:47:43Z], "🤯 It's been exactly 1 year since I uploaded my first ever video here on YouTube. Whether you came across my videos today or sometime within the past year...thank you. \n\nI hope you found some sort of value and I promise I'm going to continue making useful content for all of you, so...let's get started 😁\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#youtubeversary #1year #thankyou", "Thank you, for watching", "d_IfQJP3aGU", 1, 134, false, "https://www.youtube.com/watch?v=d_IfQJP3aGU", "/downloads/Jeff Su/2021-06-01 Thank you, for watching/Thank you, for watching [d_IfQJP3aGU].mp4", false, ~U[2021-06-01 13:15:01Z]] 16:47:43.501 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=1001.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:43.502 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.2ms idle=7.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:43.504 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=7.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [147] 16:47:43.504 [info] Kicking off download for media item #147 (d_IfQJP3aGU) 16:47:43.509 [debug] QUERY OK source="tasks" db=0.3ms idle=6.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [151, 147, ~U[2026-04-23 14:47:43Z], ~U[2026-04-23 14:47:43Z]] 16:47:43.509 [debug] Current batch of media processed. Will check again in 1000ms 16:47:43.655 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=e2_HXKNIzaM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/5d/81/5d81a431eb871e1f8216376d977b78d0b842baf51867809972a210c5b45b68ad.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:47:43.691 [debug] Running yt-dlp command for action: download_thumbnail 16:47:43.692 [debug] QUERY OK source="settings" db=0.2ms idle=188.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:43.693 [debug] QUERY OK source="settings" db=0.1ms idle=186.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:43.693 [debug] QUERY OK source="settings" db=0.1ms idle=185.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:43.693 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=e2_HXKNIzaM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/32/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/74/c1/74c1d68a805e6a8af8b5292df3154dc3dba67aa5ca6f77f38a4520bec9b1af51.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:47:44.510 [debug] Current batch of media processed. Will check again in 1000ms 16:47:45.511 [debug] Current batch of media processed. Will check again in 1000ms 16:47:46.134 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=j63bBK_ct-M --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0b/8e/0b8ef93a3ad8725b8792509386456af7671a01c5fb2147bade41e162c1f5b563.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:47:46.173 [debug] Running yt-dlp command for action: download_thumbnail 16:47:46.174 [debug] QUERY OK source="settings" db=0.2ms idle=903.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:46.175 [debug] QUERY OK source="settings" db=0.8ms idle=903.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:46.176 [debug] QUERY OK source="settings" db=0.8ms idle=904.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:46.177 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=j63bBK_ct-M --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/31/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/07/ff/07ff53b19cdd0c4cb4075c714e19c4dea24d5afed43f7cd47338fbaef47bdbd7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:47:46.522 [debug] Current batch of media processed. Will check again in 1000ms 16:47:47.522 [debug] Current batch of media processed. Will check again in 1000ms 16:47:48.276 [info] {"source":"oban","duration":998,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:47:48.524 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "📡 Everyone knows that \"communications\" is an essential soft skill, but what exactly does that actually mean, and how does one get better at it? In this video I share the 1 tip to improve your communication skills at work in order to help you build credibility with clients, peers, and managers.\n\nMultiple studies have shown time and time again that employers value communication skills in their workforce - be it new or experienced hires - since there are real consequences if communications break down in corporate environments.\n\nIn this video I share a realistic situation that most, if not all, working professionals would face at work, and what a strong communicator would do in that situation. The Bottom Line Up Front method is used by management consultants and product marketers alike and now it goes by many other names, like Top Down Communication and The Pyramid Principle. \n\nThis video shows you the power of being a strong, professional communicator at work, share specific examples so you can identify the situations when you encounter them, and the one tip you can use to improve communication skills at work.\n\nTIMESTAMPS\n00:00 Intro\n00:46 Importance of communication skills\n02:02 Realistic example we all face at work\n03:39 Why BLUF is so powerful \n04:22 How you can practice\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nFirm Learning's video on communication - https://youtu.be/ppokRtCeuyI\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#BLUF #communication #productivityatwork", "duration" => 400, "filename" => "/downloads/Jeff Su/2021-05-25 The 1 Tip to Improve Your Communication Skills at Work/The 1 Tip to Improve Your Communication Skills at Work [8bZGi3yz4qg].mp4", "id" => "8bZGi3yz4qg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8bZGi3yz4qg", "playlist_index" => 148, "timestamp" => 1621951202, "title" => "The 1 Tip to Improve Your Communication Skills at Work", "upload_date" => "20210525"} 16:47:48.526 [debug] QUERY OK source="sources" db=1.3ms idle=1253.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:48.526 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1255.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:48.530 [debug] QUERY OK source="media_items" db=2.3ms queue=0.3ms idle=1000.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-05-25 14:00:02Z], 1] 16:47:48.535 [debug] QUERY OK source="media_items" db=4.6ms idle=253.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📡 Everyone knows that \"communications\" is an essential soft skill, but what exactly does that actually mean, and how does one get better at it? In this video I share the 1 tip to improve your communication skills at work in order to help you build credibility with clients, peers, and managers.\n\nMultiple studies have shown time and time again that employers value communication skills in their workforce - be it new or experienced hires - since there are real consequences if communications break down in corporate environments.\n\nIn this video I share a realistic situation that most, if not all, working professionals would face at work, and what a strong communicator would do in that situation. The Bottom Line Up Front method is used by management consultants and product marketers alike and now it goes by many other names, like Top Down Communication and The Pyramid Principle. \n\nThis video shows you the power of being a strong, professional communicator at work, share specific examples so you can identify the situations when you encounter them, and the one tip you can use to improve communication skills at work.\n\nTIMESTAMPS\n00:00 Intro\n00:46 Importance of communication skills\n02:02 Realistic example we all face at work\n03:39 Why BLUF is so powerful \n04:22 How you can practice\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nFirm Learning's video on communication - https://youtu.be/ppokRtCeuyI\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#BLUF #communication #productivityatwork", "The 1 Tip to Improve Your Communication Skills at Work", "9f9288e3-7af5-4f37-9ff3-04c8a9d37ae1", false, "8bZGi3yz4qg", 1, [], 400, false, "https://www.youtube.com/watch?v=8bZGi3yz4qg", 148, "/downloads/Jeff Su/2021-05-25 The 1 Tip to Improve Your Communication Skills at Work/The 1 Tip to Improve Your Communication Skills at Work [8bZGi3yz4qg].mp4", false, false, 99, ~U[2021-05-25 14:00:02Z], ~U[2026-04-23 14:47:48Z], ~U[2026-04-23 14:47:48Z], "📡 Everyone knows that \"communications\" is an essential soft skill, but what exactly does that actually mean, and how does one get better at it? In this video I share the 1 tip to improve your communication skills at work in order to help you build credibility with clients, peers, and managers.\n\nMultiple studies have shown time and time again that employers value communication skills in their workforce - be it new or experienced hires - since there are real consequences if communications break down in corporate environments.\n\nIn this video I share a realistic situation that most, if not all, working professionals would face at work, and what a strong communicator would do in that situation. The Bottom Line Up Front method is used by management consultants and product marketers alike and now it goes by many other names, like Top Down Communication and The Pyramid Principle. \n\nThis video shows you the power of being a strong, professional communicator at work, share specific examples so you can identify the situations when you encounter them, and the one tip you can use to improve communication skills at work.\n\nTIMESTAMPS\n00:00 Intro\n00:46 Importance of communication skills\n02:02 Realistic example we all face at work\n03:39 Why BLUF is so powerful \n04:22 How you can practice\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nFirm Learning's video on communication - https://youtu.be/ppokRtCeuyI\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#BLUF #communication #productivityatwork", "The 1 Tip to Improve Your Communication Skills at Work", "8bZGi3yz4qg", 1, 400, false, "https://www.youtube.com/watch?v=8bZGi3yz4qg", "/downloads/Jeff Su/2021-05-25 The 1 Tip to Improve Your Communication Skills at Work/The 1 Tip to Improve Your Communication Skills at Work [8bZGi3yz4qg].mp4", false, ~U[2021-05-25 14:00:02Z]] 16:47:48.536 [debug] QUERY OK source="sources" db=0.4ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:48.538 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=10.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:48.539 [debug] QUERY OK source="media_items" db=1.0ms idle=8.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [148] 16:47:48.539 [info] Kicking off download for media item #148 (8bZGi3yz4qg) 16:47:48.542 [debug] QUERY OK source="tasks" db=0.2ms idle=5.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [152, 148, ~U[2026-04-23 14:47:48Z], ~U[2026-04-23 14:47:48Z]] 16:47:48.543 [debug] Current batch of media processed. Will check again in 1000ms 16:47:49.543 [debug] Current batch of media processed. Will check again in 1000ms 16:47:50.506 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=e2_HXKNIzaM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/32/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/74/c1/74c1d68a805e6a8af8b5292df3154dc3dba67aa5ca6f77f38a4520bec9b1af51.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:47:50.507 [debug] QUERY OK db=0.1ms idle=972.4ms begin [] 16:47:50.509 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:47:43Z], "/downloads/Jeff Su/2025-01-07 How to Negotiate a Higher Salary: 3 Evidence-Based Tips!/How to Negotiate a Higher Salary: 3 Evidence-Based Tips! [e2_HXKNIzaM].mp4", "/downloads/Jeff Su/2025-01-07 How to Negotiate a Higher Salary: 3 Evidence-Based Tips!/How to Negotiate a Higher Salary: 3 Evidence-Based Tips! [e2_HXKNIzaM].info.json", "/downloads/Jeff Su/2025-01-07 How to Negotiate a Higher Salary: 3 Evidence-Based Tips!/How to Negotiate a Higher Salary: 3 Evidence-Based Tips! [e2_HXKNIzaM].nfo", "/downloads/Jeff Su/2025-01-07 How to Negotiate a Higher Salary: 3 Evidence-Based Tips!/How to Negotiate a Higher Salary: 3 Evidence-Based Tips! [e2_HXKNIzaM]-thumb.jpg", ~U[2026-04-23 14:47:50Z], 32] 16:47:50.510 [debug] QUERY OK source="media_metadata" db=0.9ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/32/metadata.json.gz", "/config/metadata/media_items/32/thumbnail.jpg", 32, ~U[2026-04-23 14:47:50Z], ~U[2026-04-23 14:47:50Z]] 16:47:50.511 [debug] QUERY OK db=1.2ms commit [] 16:47:50.514 [debug] QUERY OK source="media_items" db=1.4ms idle=241.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [25493042, ~U[2026-04-23 14:47:50Z], 32] 16:47:50.514 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:47:50.515 [info] {"args":{"id":32},"id":36,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":33838147,"event":"job:stop","queue_time":462675142,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:47:50.522 [info] {"args":{"id":33},"id":37,"meta":{},"system_time":1776955670522220657,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:47:50.524 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=251.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" = ?) [33] 16:47:50.525 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:47:50.525 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=13.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:47:50.526 [debug] QUERY OK source="media_profiles" db=0.2ms idle=12.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:50.527 [debug] QUERY OK source="media_items" db=0.3ms idle=11.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [33] 16:47:50.528 [debug] QUERY OK source="media_metadata" db=0.1ms idle=6.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [33] 16:47:50.528 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:50.529 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:47:50.531 [debug] QUERY OK source="settings" db=1.1ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:50.532 [debug] Running yt-dlp command for action: get_downloadable_status 16:47:50.541 [debug] QUERY OK source="settings" db=2.9ms queue=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 [] 16:47:50.544 [debug] QUERY OK source="settings" db=2.8ms queue=0.1ms idle=12.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:50.545 [debug] Current batch of media processed. Will check again in 1000ms 16:47:50.547 [debug] QUERY OK source="settings" db=2.3ms queue=0.7ms idle=14.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:50.547 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=EOmgC3-hznM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fb/4f/fb4f375f277c75972817256bd7ed307a29f9eeb252bda69dca27594699e12d03.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:47:51.546 [debug] Current batch of media processed. Will check again in 1000ms 16:47:52.548 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=051\n\n💡 I basically view Google Keep as a place to store all my \"off-email\" thoughts, ideas and to-do's; so in this video, I share with you the 8 Tips I use to KEEP Track of Things Productively 😉 (you can expect a lot more puns in this video)\n\nThere are no \"right\" or \"wrong\" ways to use Google Keep, but when used effectively, this tool is great for productivity at work. So how do you use Google Keep efficiently? First you want to get familiar with the label, color, and archive feature and functions. \n\nThe most important Google Keep tip: after every single note you take, make sure you label it appropriately (according to your needs) and color-code it to remind yourself what action (if any) you need to take. This is the best way I've found to keep my Google Keep notes clean and organized!\n\nAfter mastering these 8 tips, you're going to be using Google Keep notes like a pro and increase your productivity with this tool like no other! Enjoy 😁\n\nTIMESTAMPS\n00:00 Related Notes\n00:58 My Google Keep Setup\n01:47 Quickly Create Notes or Lists\n02:19 Manage Google Keep Labels\n03:59 Search Notes by Color\n04:46 Easily Access Pinned Notes\n05:33 Manage Checklists\n06:27 Capture and Store Business Cards\n07:29 Make Bulk Edits to Keep Notes\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\n\nRed - https://keep.google.com/u/0/#search/color%3Dred\nYellow - https://keep.google.com/u/0/#search/color%3Dyellow\nBlue - https://keep.google.com/u/0/#search/color%3Dblue\nDark Blue - https://keep.google.com/u/0/#search/color%3Dcerulean\nGray - https://keep.google.com/u/0/#search/color%3Dgray\nTeal - https://keep.google.com/u/0/#search/color%3Dteal\nGreen - https://keep.google.com/u/0/#search/color%3Dgreen\nOrange - https://keep.google.com/u/0/#search/color%3Dorange\nPurple - https://keep.google.com/u/0/#search/color%3Dpurple\nPink - https://keep.google.com/u/0/#search/color%3Dpink\nBrown - https://keep.google.com/u/0/#search/color%3Dbrown\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleKeep #notes #productivityatwork", "duration" => 492, "filename" => "/downloads/Jeff Su/2021-05-18 8 Tips to KEEP Track of Things Productively!/8 Tips to KEEP Track of Things Productively! [-jCyuBLLcvs].mp4", "id" => "-jCyuBLLcvs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-jCyuBLLcvs", "playlist_index" => 149, "timestamp" => 1621342800, "title" => "8 Tips to KEEP Track of Things Productively!", "upload_date" => "20210518"} 16:47:52.552 [debug] QUERY OK source="sources" db=3.5ms idle=277.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:52.553 [debug] QUERY OK source="sources" db=0.3ms idle=281.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:52.554 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=j63bBK_ct-M --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/31/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/07/ff/07ff53b19cdd0c4cb4075c714e19c4dea24d5afed43f7cd47338fbaef47bdbd7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:47:52.555 [debug] QUERY OK db=0.0ms queue=0.1ms idle=283.8ms begin [] 16:47:52.555 [debug] QUERY OK source="media_items" db=1.7ms idle=282.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-05-18 13:00:00Z], 1] 16:47:52.557 [debug] QUERY OK source="media_items" db=1.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:47:46Z], "/downloads/Jeff Su/2025-01-21 You're Not Behind: Become AI-Native (without the overwhelm)/You're Not Behind: Become AI-Native (without the overwhelm) [j63bBK_ct-M].mp4", "/downloads/Jeff Su/2025-01-21 You're Not Behind: Become AI-Native (without the overwhelm)/You're Not Behind: Become AI-Native (without the overwhelm) [j63bBK_ct-M].info.json", "/downloads/Jeff Su/2025-01-21 You're Not Behind: Become AI-Native (without the overwhelm)/You're Not Behind: Become AI-Native (without the overwhelm) [j63bBK_ct-M].nfo", "/downloads/Jeff Su/2025-01-21 You're Not Behind: Become AI-Native (without the overwhelm)/You're Not Behind: Become AI-Native (without the overwhelm) [j63bBK_ct-M]-thumb.jpg", ~U[2026-04-23 14:47:52Z], 31] 16:47:52.558 [debug] QUERY OK source="media_metadata" db=0.9ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/31/metadata.json.gz", "/config/metadata/media_items/31/thumbnail.jpg", 31, ~U[2026-04-23 14:47:52Z], ~U[2026-04-23 14:47:52Z]] 16:47:52.559 [debug] QUERY OK db=0.2ms commit [] 16:47:52.561 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=7.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [30598569, ~U[2026-04-23 14:47:52Z], 31] 16:47:52.561 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:47:52.562 [info] {"args":{"id":31},"id":35,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":42272867,"event":"job:stop","queue_time":460287796,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:47:52.568 [debug] QUERY OK source="media_items" db=11.8ms queue=0.5ms idle=3.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=051\n\n💡 I basically view Google Keep as a place to store all my \"off-email\" thoughts, ideas and to-do's; so in this video, I share with you the 8 Tips I use to KEEP Track of Things Productively 😉 (you can expect a lot more puns in this video)\n\nThere are no \"right\" or \"wrong\" ways to use Google Keep, but when used effectively, this tool is great for productivity at work. So how do you use Google Keep efficiently? First you want to get familiar with the label, color, and archive feature and functions. \n\nThe most important Google Keep tip: after every single note you take, make sure you label it appropriately (according to your needs) and color-code it to remind yourself what action (if any) you need to take. This is the best way I've found to keep my Google Keep notes clean and organized!\n\nAfter mastering these 8 tips, you're going to be using Google Keep notes like a pro and increase your productivity with this tool like no other! Enjoy 😁\n\nTIMESTAMPS\n00:00 Related Notes\n00:58 My Google Keep Setup\n01:47 Quickly Create Notes or Lists\n02:19 Manage Google Keep Labels\n03:59 Search Notes by Color\n04:46 Easily Access Pinned Notes\n05:33 Manage Checklists\n06:27 Capture and Store Business Cards\n07:29 Make Bulk Edits to Keep Notes\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\n\nRed - https://keep.google.com/u/0/#search/color%3Dred\nYellow - https://keep.google.com/u/0/#search/color%3Dyellow\nBlue - https://keep.google.com/u/0/#search/color%3Dblue\nDark Blue - https://keep.google.com/u/0/#search/color%3Dcerulean\nGray - https://keep.google.com/u/0/#search/color%3Dgray\nTeal - https://keep.google.com/u/0/#search/color%3Dteal\nGreen - https://keep.google.com/u/0/#search/color%3Dgreen\nOrange - https://keep.google.com/u/0/#search/color%3Dorange\nPurple - https://keep.google.com/u/0/#search/color%3Dpurple\nPink - https://keep.google.com/u/0/#search/color%3Dpink\nBrown - https://keep.google.com/u/0/#search/color%3Dbrown\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleKeep #notes #productivityatwork", "8 Tips to KEEP Track of Things Productively!", "2aaeddb8-e808-48a5-9f51-cbcc3f7bdc6e", false, "-jCyuBLLcvs", 1, [], 492, false, "https://www.youtube.com/watch?v=-jCyuBLLcvs", 149, "/downloads/Jeff Su/2021-05-18 8 Tips to KEEP Track of Things Productively!/8 Tips to KEEP Track of Things Productively! [-jCyuBLLcvs].mp4", false, false, 99, ~U[2021-05-18 13:00:00Z], ~U[2026-04-23 14:47:52Z], ~U[2026-04-23 14:47:52Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=051\n\n💡 I basically view Google Keep as a place to store all my \"off-email\" thoughts, ideas and to-do's; so in this video, I share with you the 8 Tips I use to KEEP Track of Things Productively 😉 (you can expect a lot more puns in this video)\n\nThere are no \"right\" or \"wrong\" ways to use Google Keep, but when used effectively, this tool is great for productivity at work. So how do you use Google Keep efficiently? First you want to get familiar with the label, color, and archive feature and functions. \n\nThe most important Google Keep tip: after every single note you take, make sure you label it appropriately (according to your needs) and color-code it to remind yourself what action (if any) you need to take. This is the best way I've found to keep my Google Keep notes clean and organized!\n\nAfter mastering these 8 tips, you're going to be using Google Keep notes like a pro and increase your productivity with this tool like no other! Enjoy 😁\n\nTIMESTAMPS\n00:00 Related Notes\n00:58 My Google Keep Setup\n01:47 Quickly Create Notes or Lists\n02:19 Manage Google Keep Labels\n03:59 Search Notes by Color\n04:46 Easily Access Pinned Notes\n05:33 Manage Checklists\n06:27 Capture and Store Business Cards\n07:29 Make Bulk Edits to Keep Notes\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\n\nRed - https://keep.google.com/u/0/#search/color%3Dred\nYellow - https://keep.google.com/u/0/#search/color%3Dyellow\nBlue - https://keep.google.com/u/0/#search/color%3Dblue\nDark Blue - https://keep.google.com/u/0/#search/color%3Dcerulean\nGray - https://keep.google.com/u/0/#search/color%3Dgray\nTeal - https://keep.google.com/u/0/#search/color%3Dteal\nGreen - https://keep.google.com/u/0/#search/color%3Dgreen\nOrange - https://keep.google.com/u/0/#search/color%3Dorange\nPurple - https://keep.google.com/u/0/#search/color%3Dpurple\nPink - https://keep.google.com/u/0/#search/color%3Dpink\nBrown - https://keep.google.com/u/0/#search/color%3Dbrown\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleKeep #notes #productivityatwork", "8 Tips to KEEP Track of Things Productively!", "-jCyuBLLc (truncated) 16:47:52.569 [info] {"args":{"id":34},"id":38,"meta":{},"system_time":1776955672569367068,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:47:52.570 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:52.570 [debug] QUERY OK source="media_profiles" db=0.1ms idle=8.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] 16:47:52.571 [debug] QUERY OK source="media_items" db=1.2ms idle=8.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" = ?) [34] 16:47:52.571 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:47:52.571 [debug] QUERY OK source="media_items" db=0.5ms 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 [149] 16:47:52.571 [info] Kicking off download for media item #149 (-jCyuBLLcvs) 16:47:52.572 [debug] QUERY OK source="sources" db=0.9ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:52.573 [debug] QUERY OK source="media_profiles" db=0.6ms 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] 16:47:52.576 [debug] QUERY OK source="media_items" db=2.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 [34] 16:47:52.578 [debug] QUERY OK source="media_metadata" db=1.0ms idle=4.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" = ?) [34] 16:47:52.579 [debug] QUERY OK source="tasks" db=1.4ms queue=0.3ms idle=4.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [153, 149, ~U[2026-04-23 14:47:52Z], ~U[2026-04-23 14:47:52Z]] 16:47:52.579 [debug] Current batch of media processed. Will check again in 1000ms 16:47:52.579 [debug] QUERY OK source="media_profiles" db=0.4ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:47:52.580 [debug] QUERY OK source="settings" db=0.1ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:52.580 [debug] QUERY OK source="settings" db=0.2ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:52.581 [debug] Running yt-dlp command for action: get_downloadable_status 16:47:52.582 [debug] QUERY OK source="settings" db=0.2ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:52.582 [debug] QUERY OK source="settings" db=0.3ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:52.583 [debug] QUERY OK source="settings" db=0.4ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:52.583 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=aKDqz07y2Mw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/12/02/12022356500059a96f6b77f7a4277346f10495015927d31ab3f60b297b15faaf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:47:53.579 [debug] Current batch of media processed. Will check again in 1000ms 16:47:54.580 [debug] Current batch of media processed. Will check again in 1000ms 16:47:55.581 [debug] Current batch of media processed. Will check again in 1000ms 16:47:56.583 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🎯 Download Todoist for free - https://geni.us/jefftodoist\n\n🧠 Science has shown that at most we can hold 2-4 tasks in our minds at any given time. In this video, I share the Todoist, Notion, and Google Calendar workflow I follow everyday that helps me remember everything I need to do and most importantly, get things done! \n\nSo how do I never forget a single task? Simple. CPR. \n\n1️⃣ Capture: Write down thoughts and ideas the instant they formulate in your mind (I use Todoist, but any to-do app will do) \n\n2️⃣ Process: Place those thoughts and ideas in their corresponding buckets \n\n3️⃣ Review: Figure out which ones to act on, which ones to archive\n\nSince reading David Allen's book Getting Things Done, I have adopted a version of his Getting Things Done (GTD) system that works wonders for me. While I am nowhere close to perfect, I have noticed the only tasks I do forget now are the ones I do not capture down immediately\n\nSo this method definitely works if you are curious on how to be more productive, how to concentrate more (at school or at work). Or you might simply wanted to learn how to use Todoist and Notion, and curious about the Todoist and Notion workflows I use in my GTD system!\n\nTIMESTAMPS\n00:00 Intro\n00:53 Capture \n01:29 Capture example\n03:11 Process\n05:27 Review \n06:40 Summary\n\nRESOURCES I MENTION IN THE VIDEO\nNotion Weekly Agenda Video - https://youtu.be/sZB8OZoSIyU\nTake Notes on Notion Video - https://youtu.be/vYKyTNlUHCo\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎯 Todoist - https://geni.us/jefftodoist\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#GTD #productivity #Todoist", "duration" => 439, "filename" => "/downloads/Jeff Su/2021-05-11 How I Never Forget a Single Task (Todoist + Notion Workflow)/How I Never Forget a Single Task (Todoist + Notion Workflow) [bP8wTapHsbc].mp4", "id" => "bP8wTapHsbc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bP8wTapHsbc", "playlist_index" => 150, "timestamp" => 1620738901, "title" => "How I Never Forget a Single Task (Todoist + Notion Workflow)", "upload_date" => "20210511"} 16:47:56.584 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=312.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:47:56.584 [debug] QUERY OK source="sources" db=0.1ms idle=313.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:47:56.585 [debug] QUERY OK source="media_items" db=0.8ms idle=314.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-05-11 13:15:01Z], 1] 16:47:56.588 [debug] QUERY OK source="media_items" db=1.8ms idle=315.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🎯 Download Todoist for free - https://geni.us/jefftodoist\n\n🧠 Science has shown that at most we can hold 2-4 tasks in our minds at any given time. In this video, I share the Todoist, Notion, and Google Calendar workflow I follow everyday that helps me remember everything I need to do and most importantly, get things done! \n\nSo how do I never forget a single task? Simple. CPR. \n\n1️⃣ Capture: Write down thoughts and ideas the instant they formulate in your mind (I use Todoist, but any to-do app will do) \n\n2️⃣ Process: Place those thoughts and ideas in their corresponding buckets \n\n3️⃣ Review: Figure out which ones to act on, which ones to archive\n\nSince reading David Allen's book Getting Things Done, I have adopted a version of his Getting Things Done (GTD) system that works wonders for me. While I am nowhere close to perfect, I have noticed the only tasks I do forget now are the ones I do not capture down immediately\n\nSo this method definitely works if you are curious on how to be more productive, how to concentrate more (at school or at work). Or you might simply wanted to learn how to use Todoist and Notion, and curious about the Todoist and Notion workflows I use in my GTD system!\n\nTIMESTAMPS\n00:00 Intro\n00:53 Capture \n01:29 Capture example\n03:11 Process\n05:27 Review \n06:40 Summary\n\nRESOURCES I MENTION IN THE VIDEO\nNotion Weekly Agenda Video - https://youtu.be/sZB8OZoSIyU\nTake Notes on Notion Video - https://youtu.be/vYKyTNlUHCo\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎯 Todoist - https://geni.us/jefftodoist\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#GTD #productivity #Todoist", "How I Never Forget a Single Task (Todoist + Notion Workflow)", "be1a6423-ac66-444e-8d6f-e26be1eae36d", false, "bP8wTapHsbc", 1, [], 439, false, "https://www.youtube.com/watch?v=bP8wTapHsbc", 150, "/downloads/Jeff Su/2021-05-11 How I Never Forget a Single Task (Todoist + Notion Workflow)/How I Never Forget a Single Task (Todoist + Notion Workflow) [bP8wTapHsbc].mp4", false, false, 99, ~U[2021-05-11 13:15:01Z], ~U[2026-04-23 14:47:56Z], ~U[2026-04-23 14:47:56Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🎯 Download Todoist for free - https://geni.us/jefftodoist\n\n🧠 Science has shown that at most we can hold 2-4 tasks in our minds at any given time. In this video, I share the Todoist, Notion, and Google Calendar workflow I follow everyday that helps me remember everything I need to do and most importantly, get things done! \n\nSo how do I never forget a single task? Simple. CPR. \n\n1️⃣ Capture: Write down thoughts and ideas the instant they formulate in your mind (I use Todoist, but any to-do app will do) \n\n2️⃣ Process: Place those thoughts and ideas in their corresponding buckets \n\n3️⃣ Review: Figure out which ones to act on, which ones to archive\n\nSince reading David Allen's book Getting Things Done, I have adopted a version of his Getting Things Done (GTD) system that works wonders for me. While I am nowhere close to perfect, I have noticed the only tasks I do forget now are the ones I do not capture down immediately\n\nSo this method definitely works if you are curious on how to be more productive, how to concentrate more (at school or at work). Or you might simply wanted to learn how to use Todoist and Notion, and curious about the Todoist and Notion workflows I use in my GTD system!\n\nTIMESTAMPS\n00:00 Intro\n00:53 Capture \n01:29 Capture example\n03:11 Process\n05:27 Review \n06:40 Summary\n\nRESOURCES I MENTION IN THE VIDEO\nNotion Weekly Agenda Video - https://youtu.be/sZB8OZoSIyU\nTake Notes on Notion Video - https://youtu.be/vYKyTNlUHCo\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎯 Todoist - https://geni.us/jefftodoist\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#GTD #productivity #Todoist", "How I Never Forget a Single Task (Todoist + Notion Workflow)", "bP8wTapHsbc", 1, 439, false, "https://www.youtube.com/watch?v=bP8wTapHsbc", "/downloads/Jeff Su/2021-05-11 How I Never Forget a Single Task (Todoist + Notion Workflow)/How I Never Forget a Single Task (Todoist + Notion Workflow) [bP8wTapHsbc].mp4", false, ~U[2021-05-11 13:15:01Z]] 16:47:56.589 [debug] QUERY OK source="sources" db=0.2ms idle=28.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:47:56.589 [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] 16:47:56.590 [debug] QUERY OK source="media_items" db=0.2ms idle=5.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [150] 16:47:56.590 [info] Kicking off download for media item #150 (bP8wTapHsbc) 16:47:56.593 [debug] QUERY OK source="tasks" db=0.2ms idle=3.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [154, 150, ~U[2026-04-23 14:47:56Z], ~U[2026-04-23 14:47:56Z]] 16:47:56.593 [debug] Current batch of media processed. Will check again in 1000ms 16:47:57.521 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=EOmgC3-hznM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fb/4f/fb4f375f277c75972817256bd7ed307a29f9eeb252bda69dca27594699e12d03.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:47:57.521 [debug] Running yt-dlp command for action: download 16:47:57.521 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=931.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:57.522 [debug] QUERY OK source="settings" db=0.1ms idle=931.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:57.522 [debug] QUERY OK source="settings" db=0.1ms idle=929.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:57.522 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=EOmgC3-hznM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/ca/d1/cad13270c98873d4d40eb1a652c5ff5dd17bec981060d27ef2db1fe3d14fdad9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:47:57.593 [debug] Current batch of media processed. Will check again in 1000ms 16:47:58.595 [debug] Current batch of media processed. Will check again in 1000ms 16:47:59.595 [debug] Current batch of media processed. Will check again in 1000ms 16:47:59.600 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=aKDqz07y2Mw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/12/02/12022356500059a96f6b77f7a4277346f10495015927d31ab3f60b297b15faaf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:47:59.600 [debug] Running yt-dlp command for action: download 16:47:59.601 [debug] QUERY OK source="settings" db=0.3ms idle=1033.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:59.601 [debug] QUERY OK source="settings" db=0.1ms idle=330.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:59.601 [debug] QUERY OK source="settings" db=0.1ms idle=330.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:47:59.602 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=aKDqz07y2Mw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a7/6b/a76b160857b4fa7cdf829dd1ff97ae699074cc13d00fd26781867402e52a1471.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:48:00.217 [info] {"source":"oban","duration":493,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:48:00.597 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Grab my Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=49\n\n🧑🏻\u200D💼 Let's get one thing clear: taking notes for work is not - and should not be - the same as taking notes for personal or academic use. In this note-taking tutorial for professionals, I draw from my experiences as Product Marketer and as a former Management Consultant and share exactly how to take notes for work.\n\nNot only do I share the note-taking technique I developed specifically for work over the past 7 years, I also provide you with templates so you can implement these professional note-taking concepts immediately. Whether you manage projects as a product marketer or management consultant, you are under a lot of time pressure to take accurate notes. \n\nYou will still benefit from this video even if you are a student looking for note-taking techniques on how to study in college because while other YouTube videos teach you how to take pretty notes, the note-taking method in this video is action-oriented, it pushes you to get work done. \n\nLet's dive in ✍️\n\nTIMESTAMPS\n00:00 Intro\n00:09 Why work notes are different\n01:08 Guiding principles\n02:25 Meeting notes for myself\n05:03 Meeting notes for 1 team\n07:52 Meeting notes for multiple teams\n09:15 Download templates\n\nRESOURCES I MENTION IN THE VIDEO\nGrab my Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=49\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#takeNotesForWork #notetaking #productivity", "duration" => 584, "filename" => "/downloads/Jeff Su/2021-05-04 How to Take Notes for Work | Note-taking Tutorial for Professionals/How to Take Notes for Work | Note-taking Tutorial for Professionals [T0qhJdHLJTc].mp4", "id" => "T0qhJdHLJTc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=T0qhJdHLJTc", "playlist_index" => 151, "timestamp" => 1620133222, "title" => "How to Take Notes for Work | Note-taking Tutorial for Professionals", "upload_date" => "20210504"} 16:48:00.598 [debug] QUERY OK source="sources" db=0.4ms idle=996.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:00.599 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=997.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:00.600 [debug] QUERY OK source="media_items" db=0.9ms idle=998.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-05-04 13:00:22Z], 1] 16:48:00.605 [debug] QUERY OK source="media_items" db=2.8ms idle=384.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=49\n\n🧑🏻\u200D💼 Let's get one thing clear: taking notes for work is not - and should not be - the same as taking notes for personal or academic use. In this note-taking tutorial for professionals, I draw from my experiences as Product Marketer and as a former Management Consultant and share exactly how to take notes for work.\n\nNot only do I share the note-taking technique I developed specifically for work over the past 7 years, I also provide you with templates so you can implement these professional note-taking concepts immediately. Whether you manage projects as a product marketer or management consultant, you are under a lot of time pressure to take accurate notes. \n\nYou will still benefit from this video even if you are a student looking for note-taking techniques on how to study in college because while other YouTube videos teach you how to take pretty notes, the note-taking method in this video is action-oriented, it pushes you to get work done. \n\nLet's dive in ✍️\n\nTIMESTAMPS\n00:00 Intro\n00:09 Why work notes are different\n01:08 Guiding principles\n02:25 Meeting notes for myself\n05:03 Meeting notes for 1 team\n07:52 Meeting notes for multiple teams\n09:15 Download templates\n\nRESOURCES I MENTION IN THE VIDEO\nGrab my Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=49\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#takeNotesForWork #notetaking #productivity", "How to Take Notes for Work | Note-taking Tutorial for Professionals", "d30cca75-9f5a-4da4-b77e-3f9d677b06c1", false, "T0qhJdHLJTc", 1, [], 584, false, "https://www.youtube.com/watch?v=T0qhJdHLJTc", 151, "/downloads/Jeff Su/2021-05-04 How to Take Notes for Work | Note-taking Tutorial for Professionals/How to Take Notes for Work | Note-taking Tutorial for Professionals [T0qhJdHLJTc].mp4", false, false, 99, ~U[2021-05-04 13:00:22Z], ~U[2026-04-23 14:48:00Z], ~U[2026-04-23 14:48:00Z], "Grab my Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=49\n\n🧑🏻\u200D💼 Let's get one thing clear: taking notes for work is not - and should not be - the same as taking notes for personal or academic use. In this note-taking tutorial for professionals, I draw from my experiences as Product Marketer and as a former Management Consultant and share exactly how to take notes for work.\n\nNot only do I share the note-taking technique I developed specifically for work over the past 7 years, I also provide you with templates so you can implement these professional note-taking concepts immediately. Whether you manage projects as a product marketer or management consultant, you are under a lot of time pressure to take accurate notes. \n\nYou will still benefit from this video even if you are a student looking for note-taking techniques on how to study in college because while other YouTube videos teach you how to take pretty notes, the note-taking method in this video is action-oriented, it pushes you to get work done. \n\nLet's dive in ✍️\n\nTIMESTAMPS\n00:00 Intro\n00:09 Why work notes are different\n01:08 Guiding principles\n02:25 Meeting notes for myself\n05:03 Meeting notes for 1 team\n07:52 Meeting notes for multiple teams\n09:15 Download templates\n\nRESOURCES I MENTION IN THE VIDEO\nGrab my Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=49\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#takeNotesForWork #notetaking #productivity", "How to Take Notes for Work | Note-taking Tutorial for Professionals", "T0qhJdHLJTc", 1, 584, false, "https://www.youtube.com/watch?v=T0qhJdHLJTc", "/downloads/Jeff Su/2021-05-04 How to Take Notes for Work | Note-taking Tutorial for Professionals/How to Take Notes for Work | Note-taking Tutorial for Professionals [T0qhJdHLJTc].mp4", false, ~U[2021-05-04 13:00:22Z]] 16:48:00.606 [debug] QUERY OK source="sources" db=1.0ms idle=34.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:00.607 [debug] QUERY OK source="media_profiles" db=0.4ms idle=8.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:48:00.608 [debug] QUERY OK source="media_items" db=0.5ms idle=8.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [151] 16:48:00.608 [info] Kicking off download for media item #151 (T0qhJdHLJTc) 16:48:00.612 [debug] QUERY OK source="tasks" db=0.4ms idle=5.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [155, 151, ~U[2026-04-23 14:48:00Z], ~U[2026-04-23 14:48:00Z]] 16:48:00.612 [debug] Current batch of media processed. Will check again in 1000ms 16:48:01.612 [debug] Current batch of media processed. Will check again in 1000ms 16:48:02.613 [debug] Current batch of media processed. Will check again in 1000ms 16:48:03.614 [debug] Current batch of media processed. Will check again in 1000ms 16:48:04.616 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=048\n\n👨🏻\u200D💻 If you're anything like me, you love yourself a sexy Google Sheets or Microsoft Excel spreadsheet. In this video I share the Top 10 Google Sheets Tips for Productive Professionals so you can increase your efficiency at work and come off as more professional at the same time!\n\nIf you're trying to increase productivity at work, then getting better at creating, managing, and sharing Google Sheets or Excel spreadsheets should probably be top of mind for you. While you don't have to know crazy advanced formulas and Google Sheets functions to impress others, making sure you get the basics right will allow you utilize more \"fancy\" tips and tricks. For example yes you can create drop-down menus using the Data Validation feature but you can also use \"Insert, Checkboxes\" to upgrade the look and feel of your spreadsheet.\n\nOr if you're pressed for time you can use the \"Organization Chart\" feature to quickly create an org chart directly in Google Sheets and paste the linked image into Google Slides. \n\nHope you enjoy this video made specifically for productive students and professionals and please let me know if you notice an increase in efficiency and/or productivity! 🌟\n\nTIMESTAMPS\n00:00 Create Filtered View\n02:30 Link to Custom Range\n02:54 Protect and Lock Ranges\n03:39 Show Edit History\n04:34 Create Org Chart Quickly\n05:37 Turn Off Notifications\n06:10 Best Formatting Tips\n07:39 Copy Tab Quickly\n08:26 Remove Duplicates\n09:10 Convert Currencies\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Docs Video - https://youtu.be/UDJkGkzTUYw\nGoogle Finance Formula instructions - https://support.google.com/docs/answer/3093281?hl=en\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleSheets #excel #productivity", "duration" => 615, "filename" => "/downloads/Jeff Su/2021-04-27 Top 10 Google Sheets Tips for Productive Professionals!/Top 10 Google Sheets Tips for Productive Professionals! [yCmsOc8JzcY].mp4", "id" => "yCmsOc8JzcY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yCmsOc8JzcY", "playlist_index" => 152, "timestamp" => 1619528420, "title" => "Top 10 Google Sheets Tips for Productive Professionals!", "upload_date" => "20210427"} 16:48:04.618 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=345.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:04.620 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=348.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:04.623 [debug] QUERY OK source="media_items" db=2.8ms queue=0.1ms idle=349.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-04-27 13:00:20Z], 1] 16:48:05.941 [debug] QUERY OK source="media_items" db=1313.6ms queue=0.9ms idle=354.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=048\n\n👨🏻\u200D💻 If you're anything like me, you love yourself a sexy Google Sheets or Microsoft Excel spreadsheet. In this video I share the Top 10 Google Sheets Tips for Productive Professionals so you can increase your efficiency at work and come off as more professional at the same time!\n\nIf you're trying to increase productivity at work, then getting better at creating, managing, and sharing Google Sheets or Excel spreadsheets should probably be top of mind for you. While you don't have to know crazy advanced formulas and Google Sheets functions to impress others, making sure you get the basics right will allow you utilize more \"fancy\" tips and tricks. For example yes you can create drop-down menus using the Data Validation feature but you can also use \"Insert, Checkboxes\" to upgrade the look and feel of your spreadsheet.\n\nOr if you're pressed for time you can use the \"Organization Chart\" feature to quickly create an org chart directly in Google Sheets and paste the linked image into Google Slides. \n\nHope you enjoy this video made specifically for productive students and professionals and please let me know if you notice an increase in efficiency and/or productivity! 🌟\n\nTIMESTAMPS\n00:00 Create Filtered View\n02:30 Link to Custom Range\n02:54 Protect and Lock Ranges\n03:39 Show Edit History\n04:34 Create Org Chart Quickly\n05:37 Turn Off Notifications\n06:10 Best Formatting Tips\n07:39 Copy Tab Quickly\n08:26 Remove Duplicates\n09:10 Convert Currencies\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Docs Video - https://youtu.be/UDJkGkzTUYw\nGoogle Finance Formula instructions - https://support.google.com/docs/answer/3093281?hl=en\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleSheets #excel #productivity", "Top 10 Google Sheets Tips for Productive Professionals!", "d4bfc72e-cbe4-417b-b523-1c820465ebd3", false, "yCmsOc8JzcY", 1, [], 615, false, "https://www.youtube.com/watch?v=yCmsOc8JzcY", 152, "/downloads/Jeff Su/2021-04-27 Top 10 Google Sheets Tips for Productive Professionals!/Top 10 Google Sheets Tips for Productive Professionals! [yCmsOc8JzcY].mp4", false, false, 99, ~U[2021-04-27 13:00:20Z], ~U[2026-04-23 14:48:04Z], ~U[2026-04-23 14:48:04Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=048\n\n👨🏻\u200D💻 If you're anything like me, you love yourself a sexy Google Sheets or Microsoft Excel spreadsheet. In this video I share the Top 10 Google Sheets Tips for Productive Professionals so you can increase your efficiency at work and come off as more professional at the same time!\n\nIf you're trying to increase productivity at work, then getting better at creating, managing, and sharing Google Sheets or Excel spreadsheets should probably be top of mind for you. While you don't have to know crazy advanced formulas and Google Sheets functions to impress others, making sure you get the basics right will allow you utilize more \"fancy\" tips and tricks. For example yes you can create drop-down menus using the Data Validation feature but you can also use \"Insert, Checkboxes\" to upgrade the look and feel of your spreadsheet.\n\nOr if you're pressed for time you can use the \"Organization Chart\" feature to quickly create an org chart directly in Google Sheets and paste the linked image into Google Slides. \n\nHope you enjoy this video made specifically for productive students and professionals and please let me know if you notice an increase in efficiency and/or productivity! 🌟\n\nTIMESTAMPS\n00:00 Create Filtered View\n02:30 Link to Custom Range\n02:54 Protect and Lock Ranges\n03:39 Show Edit History\n04:34 Create Org Chart Quickly\n05:37 Turn Off Notifications\n06:10 Best Formatting Tips\n07:39 Copy Tab Quickly\n08:26 Remove Duplicates\n09:10 Convert Currencies\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Docs Video - https://youtu.be/UDJkGkzTUYw\nGoogle Finance Formula instructions - https://support.google.com/docs/answer/3093281?hl=en\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleSheets #excel #productivity", "Top 10 Google Sheets Tips for Productive Professionals!", "yCmsOc8JzcY", 1, 615, false, "https://www.youtube.com/watch?v=yCmsOc8JzcY", "/downloads/Jeff Su/2021-04-27 Top 10 Google Sheets Tips for Productive Professionals!/Top 10 Google Sheets Tips for Productive Professionals! [yCmsOc8JzcY].mp4", false, ~U[2021-04-27 13:00:20Z]] 16:48:05.942 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=1322.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:05.943 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=1323.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] 16:48:05.944 [debug] QUERY OK source="media_items" db=0.4ms idle=1320.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 [152] 16:48:05.944 [info] Kicking off download for media item #152 (yCmsOc8JzcY) 16:48:06.012 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=68.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [156, 152, ~U[2026-04-23 14:48:06Z], ~U[2026-04-23 14:48:06Z]] 16:48:06.012 [debug] Current batch of media processed. Will check again in 1000ms 16:48:07.012 [debug] Current batch of media processed. Will check again in 1000ms 16:48:08.014 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=000\n\n📝 The less friction you experience, the more effective the note-taking system - Productivity Nerd Jeff Su\n\nOne of the biggest issues with our default note-taking method is that it's very hard to \"re-surface\" relevant notes when the situation actually calls for it (we've all forgotten about notes we've taken in the past), so in this video I share How to Take Notes Productively and even include a Notion Template I've been using for the past few months that solves this problem! \n\nEffective note-taking systems pass the \"Before,\" \"During,\" and \"After\" tests:\n1️⃣ Before - How easy is it to start taking the note?\n2️⃣ During - How quickly can we get our thoughts down on paper?\n3️⃣ After - Are we able to resurface relevant notes when we need them?\n\nWhile I personally don't think the application itself matters all that much, I've found Notion to have the features that check all 3 of these boxes. Whether you're a student or working professional, this Notion note-taking video (more of a tutorial if I'm being honest) may give you some inspiration on how you can optimize your current note-taking process ✌🏻\n\nTIMESTAMPS\n00:00 Intro\n00:40 Effective note-taking systems\n03:01 My Notion setup\n09:11 Notion template\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nMy Notion notes template: https://www.jeffsu.org/my-note-taking-template-for-notion/\nThomas Frank's note-taking video: https://youtu.be/qj9HeT-IaEg\nBe Productive at Life Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#takingNotes #productivity #Notion", "duration" => 628, "filename" => "/downloads/Jeff Su/2021-04-20 How to Take Notes Productively (Notion Template Included)/How to Take Notes Productively (Notion Template Included) [vYKyTNlUHCo].mp4", "id" => "vYKyTNlUHCo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=vYKyTNlUHCo", "playlist_index" => 153, "timestamp" => 1618923620, "title" => "How to Take Notes Productively (Notion Template Included)", "upload_date" => "20210420"} 16:48:08.015 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=743.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:48:08.016 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=744.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:08.017 [debug] QUERY OK source="media_items" db=0.6ms idle=745.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-04-20 13:00:20Z], 1] 16:48:08.020 [debug] QUERY OK source="media_items" db=2.3ms idle=746.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=000\n\n📝 The less friction you experience, the more effective the note-taking system - Productivity Nerd Jeff Su\n\nOne of the biggest issues with our default note-taking method is that it's very hard to \"re-surface\" relevant notes when the situation actually calls for it (we've all forgotten about notes we've taken in the past), so in this video I share How to Take Notes Productively and even include a Notion Template I've been using for the past few months that solves this problem! \n\nEffective note-taking systems pass the \"Before,\" \"During,\" and \"After\" tests:\n1️⃣ Before - How easy is it to start taking the note?\n2️⃣ During - How quickly can we get our thoughts down on paper?\n3️⃣ After - Are we able to resurface relevant notes when we need them?\n\nWhile I personally don't think the application itself matters all that much, I've found Notion to have the features that check all 3 of these boxes. Whether you're a student or working professional, this Notion note-taking video (more of a tutorial if I'm being honest) may give you some inspiration on how you can optimize your current note-taking process ✌🏻\n\nTIMESTAMPS\n00:00 Intro\n00:40 Effective note-taking systems\n03:01 My Notion setup\n09:11 Notion template\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nMy Notion notes template: https://www.jeffsu.org/my-note-taking-template-for-notion/\nThomas Frank's note-taking video: https://youtu.be/qj9HeT-IaEg\nBe Productive at Life Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#takingNotes #productivity #Notion", "How to Take Notes Productively (Notion Template Included)", "4fc87d2b-51f0-4f99-89e2-67b831bc2c89", false, "vYKyTNlUHCo", 1, [], 628, false, "https://www.youtube.com/watch?v=vYKyTNlUHCo", 153, "/downloads/Jeff Su/2021-04-20 How to Take Notes Productively (Notion Template Included)/How to Take Notes Productively (Notion Template Included) [vYKyTNlUHCo].mp4", false, false, 99, ~U[2021-04-20 13:00:20Z], ~U[2026-04-23 14:48:08Z], ~U[2026-04-23 14:48:08Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=000\n\n📝 The less friction you experience, the more effective the note-taking system - Productivity Nerd Jeff Su\n\nOne of the biggest issues with our default note-taking method is that it's very hard to \"re-surface\" relevant notes when the situation actually calls for it (we've all forgotten about notes we've taken in the past), so in this video I share How to Take Notes Productively and even include a Notion Template I've been using for the past few months that solves this problem! \n\nEffective note-taking systems pass the \"Before,\" \"During,\" and \"After\" tests:\n1️⃣ Before - How easy is it to start taking the note?\n2️⃣ During - How quickly can we get our thoughts down on paper?\n3️⃣ After - Are we able to resurface relevant notes when we need them?\n\nWhile I personally don't think the application itself matters all that much, I've found Notion to have the features that check all 3 of these boxes. Whether you're a student or working professional, this Notion note-taking video (more of a tutorial if I'm being honest) may give you some inspiration on how you can optimize your current note-taking process ✌🏻\n\nTIMESTAMPS\n00:00 Intro\n00:40 Effective note-taking systems\n03:01 My Notion setup\n09:11 Notion template\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nMy Notion notes template: https://www.jeffsu.org/my-note-taking-template-for-notion/\nThomas Frank's note-taking video: https://youtu.be/qj9HeT-IaEg\nBe Productive at Life Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#takingNotes #productivity #Notion", "How to Take Notes Productively (Notion Template Included)", "vYKyTNlUHCo", 1, 628, false, "https://www.youtube.com/watch?v=vYKyTNlUHCo", "/downloads/Jeff Su/2021-04-20 How to Take Notes Productively (Notion Template Included)/How to Take Notes Productively (Notion Template Included) [vYKyTNlUHCo].mp4", false, ~U[2021-04-20 13:00:20Z]] 16:48:08.021 [debug] QUERY OK source="sources" db=0.3ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:08.022 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:48:08.024 [debug] QUERY OK source="media_items" db=2.1ms idle=6.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [153] 16:48:08.024 [info] Kicking off download for media item #153 (vYKyTNlUHCo) 16:48:08.028 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=6.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [157, 153, ~U[2026-04-23 14:48:08Z], ~U[2026-04-23 14:48:08Z]] 16:48:08.028 [debug] Current batch of media processed. Will check again in 1000ms 16:48:09.028 [debug] Current batch of media processed. Will check again in 1000ms 16:48:10.030 [debug] Current batch of media processed. Will check again in 1000ms 16:48:11.030 [debug] Current batch of media processed. Will check again in 1000ms 16:48:12.032 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Get a copy of my Google Slides template here 👉🏻 https://www.jeffsu.org/google-slides/\n\n🧑🏻\u200D🏫 A good presentation captures the attention of the audience when the speaker goes on stage. A brilliant presentation knows the process actually begins during the preparation phase. In this video I walk you through 12 of the Best Google Slides Tips for Creating BRILLIANT Presentations, so open up a doc by typing [slides.new](http://slides.new) into your browser and let's begin! \n\nTo make it as realistic as possible, I go through the 3 phases of the Google Slides lifecycle: Creation, Collaboration, and Presentation. I share tips and tricks for each stage and provide relevant examples for each feature and function that I share. \n\nWhether you're a student using Google Slides individually, or using G Suite and Google Workspace as a working professional, I'm sure there might be one or two new Google Slides productivity tips and tricks you can pick up. So let's get started! \n\nTIMESTAMPS\n00:00 Intro\n00:29 Find & Insert Images\n01:20 Crop to Specific Shape\n02:18 Re-Size Textbox\n03:20 Format Paint X2\n03:49 Master Slides\n04:50 Search for Slides Files Only\n05:38 Send Slides in Presentation Mode\n06:20 Make Clean Copy\n07:04 Free Bonus Resource!\n07:16 Skip & Re-Order Slides\n07:46 Navigate to Specific Slide\n08:30 \"L\" for Laser Pointer\n08:43 Include Q&A in Presentation\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGet a copy of my Google Slides template: https://www.jeffsu.org/google-slides/\nGoogle Docs video - https://youtu.be/UDJkGkzTUYw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleSlides #productivity #presentwithConfidence", "duration" => 588, "filename" => "/downloads/Jeff Su/2021-04-13 TOP 12 Google Slides Tips for Productivity!/TOP 12 Google Slides Tips for Productivity! [iU5iweN2IOM].mp4", "id" => "iU5iweN2IOM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=iU5iweN2IOM", "playlist_index" => 154, "timestamp" => 1618318830, "title" => "TOP 12 Google Slides Tips for Productivity!", "upload_date" => "20210413"} 16:48:12.034 [debug] QUERY OK source="sources" db=1.0ms idle=761.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:12.034 [debug] QUERY OK source="sources" db=0.2ms idle=763.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:12.035 [debug] QUERY OK source="media_items" db=0.7ms idle=763.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-04-13 13:00:30Z], 1] 16:48:12.039 [debug] QUERY OK source="media_items" db=1.9ms idle=765.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Get a copy of my Google Slides template here 👉🏻 https://www.jeffsu.org/google-slides/\n\n🧑🏻\u200D🏫 A good presentation captures the attention of the audience when the speaker goes on stage. A brilliant presentation knows the process actually begins during the preparation phase. In this video I walk you through 12 of the Best Google Slides Tips for Creating BRILLIANT Presentations, so open up a doc by typing [slides.new](http://slides.new) into your browser and let's begin! \n\nTo make it as realistic as possible, I go through the 3 phases of the Google Slides lifecycle: Creation, Collaboration, and Presentation. I share tips and tricks for each stage and provide relevant examples for each feature and function that I share. \n\nWhether you're a student using Google Slides individually, or using G Suite and Google Workspace as a working professional, I'm sure there might be one or two new Google Slides productivity tips and tricks you can pick up. So let's get started! \n\nTIMESTAMPS\n00:00 Intro\n00:29 Find & Insert Images\n01:20 Crop to Specific Shape\n02:18 Re-Size Textbox\n03:20 Format Paint X2\n03:49 Master Slides\n04:50 Search for Slides Files Only\n05:38 Send Slides in Presentation Mode\n06:20 Make Clean Copy\n07:04 Free Bonus Resource!\n07:16 Skip & Re-Order Slides\n07:46 Navigate to Specific Slide\n08:30 \"L\" for Laser Pointer\n08:43 Include Q&A in Presentation\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGet a copy of my Google Slides template: https://www.jeffsu.org/google-slides/\nGoogle Docs video - https://youtu.be/UDJkGkzTUYw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleSlides #productivity #presentwithConfidence", "TOP 12 Google Slides Tips for Productivity!", "eef5e27b-17ce-480a-857e-ae7dd0883abe", false, "iU5iweN2IOM", 1, [], 588, false, "https://www.youtube.com/watch?v=iU5iweN2IOM", 154, "/downloads/Jeff Su/2021-04-13 TOP 12 Google Slides Tips for Productivity!/TOP 12 Google Slides Tips for Productivity! [iU5iweN2IOM].mp4", false, false, 99, ~U[2021-04-13 13:00:30Z], ~U[2026-04-23 14:48:12Z], ~U[2026-04-23 14:48:12Z], "Get a copy of my Google Slides template here 👉🏻 https://www.jeffsu.org/google-slides/\n\n🧑🏻\u200D🏫 A good presentation captures the attention of the audience when the speaker goes on stage. A brilliant presentation knows the process actually begins during the preparation phase. In this video I walk you through 12 of the Best Google Slides Tips for Creating BRILLIANT Presentations, so open up a doc by typing [slides.new](http://slides.new) into your browser and let's begin! \n\nTo make it as realistic as possible, I go through the 3 phases of the Google Slides lifecycle: Creation, Collaboration, and Presentation. I share tips and tricks for each stage and provide relevant examples for each feature and function that I share. \n\nWhether you're a student using Google Slides individually, or using G Suite and Google Workspace as a working professional, I'm sure there might be one or two new Google Slides productivity tips and tricks you can pick up. So let's get started! \n\nTIMESTAMPS\n00:00 Intro\n00:29 Find & Insert Images\n01:20 Crop to Specific Shape\n02:18 Re-Size Textbox\n03:20 Format Paint X2\n03:49 Master Slides\n04:50 Search for Slides Files Only\n05:38 Send Slides in Presentation Mode\n06:20 Make Clean Copy\n07:04 Free Bonus Resource!\n07:16 Skip & Re-Order Slides\n07:46 Navigate to Specific Slide\n08:30 \"L\" for Laser Pointer\n08:43 Include Q&A in Presentation\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGet a copy of my Google Slides template: https://www.jeffsu.org/google-slides/\nGoogle Docs video - https://youtu.be/UDJkGkzTUYw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleSlides #productivity #presentwithConfidence", "TOP 12 Google Slides Tips for Productivity!", "iU5iweN2IOM", 1, 588, false, "https://www.youtube.com/watch?v=iU5iweN2IOM", "/downloads/Jeff Su/2021-04-13 TOP 12 Google Slides Tips for Productivity!/TOP 12 Google Slides Tips for Productivity! [iU5iweN2IOM].mp4", false, ~U[2021-04-13 13:00:30Z]] 16:48:12.039 [debug] QUERY OK source="sources" db=0.2ms idle=442.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:12.040 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:48:12.042 [debug] QUERY OK source="media_items" db=2.0ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [154] 16:48:12.043 [info] Kicking off download for media item #154 (iU5iweN2IOM) 16:48:12.046 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=6.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [158, 154, ~U[2026-04-23 14:48:12Z], ~U[2026-04-23 14:48:12Z]] 16:48:12.046 [debug] Current batch of media processed. Will check again in 1000ms 16:48:13.047 [debug] Current batch of media processed. Will check again in 1000ms 16:48:14.048 [debug] Current batch of media processed. Will check again in 1000ms 16:48:15.049 [debug] Current batch of media processed. Will check again in 1000ms 16:48:16.051 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=046\n\n📑 It's easy to view Google Docs as just an online version of Microsoft Word, when in reality it's so much more! In this video I share the Top 10 Google Doc Tips for Productivity so you can unleash the full potential of this collaboration tool. \n\nBeing productive not only means getting work done faster, but it also means making few to no mistakes. This is why Version History is such a powerful feature since it lets you revert back to an earlier \"saved\" copy of your work. \"Set it and forget it\" functions like changing the default font and auto-replacing text also plays a huge role in speeding up your workflow. \n\n🔑 Of course, a key selling point of Google Docs is the share-ability. Did you know by changing a few words within the URL you could \"force\" others to preview, make a copy, or download the document directly? Talk about user-friendliness! \n\nWhether you're a student 👨🏻\u200D🎓 or working professional 🧑\u200D💻, these top 10 Google Doc tips for productivity will at the very least make the process of using this tool more enjoyable! \n\nTIMESTAMPS\n0:00 Intro\n00:33 Version History\n01:36 Set New Default Font\n02:20 Auto Replace Text\n03:34 Change Capitalization Quickly\n04:04 Visualize Ideas using Drawings\n05:25 Keep Viewers Anonymous\n06:06 Make Copy Directly\n07:03 Download PDF Directly\n07:55 Embed Doc within Email\n08:34 Use Pre-Made Templates\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Calendar video - https://youtu.be/4GqqptRI4Do\nNotion templates - https://www.jeffsu.org/notion/\nMy workout routine template - https://docs.google.com/spreadsheets/d/1n3de5JlZMFej6QexlhYJ37mkuNSlU7jZ_VOiRs4eGog/copy#gid=1808286209\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleDocs #productivity #collaboration", "duration" => 563, "filename" => "/downloads/Jeff Su/2021-04-06 Top 10 Google Doc Tips for Productivity!/Top 10 Google Doc Tips for Productivity! [UDJkGkzTUYw].mp4", "id" => "UDJkGkzTUYw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UDJkGkzTUYw", "playlist_index" => 155, "timestamp" => 1617714008, "title" => "Top 10 Google Doc Tips for Productivity!", "upload_date" => "20210406"} 16:48:16.052 [debug] QUERY OK source="sources" db=0.3ms idle=780.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:16.052 [debug] QUERY OK source="sources" db=0.2ms idle=781.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:16.053 [debug] QUERY OK source="media_items" db=0.8ms idle=781.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-04-06 13:00:08Z], 1] 16:48:16.057 [debug] QUERY OK source="media_items" db=2.5ms idle=783.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=046\n\n📑 It's easy to view Google Docs as just an online version of Microsoft Word, when in reality it's so much more! In this video I share the Top 10 Google Doc Tips for Productivity so you can unleash the full potential of this collaboration tool. \n\nBeing productive not only means getting work done faster, but it also means making few to no mistakes. This is why Version History is such a powerful feature since it lets you revert back to an earlier \"saved\" copy of your work. \"Set it and forget it\" functions like changing the default font and auto-replacing text also plays a huge role in speeding up your workflow. \n\n🔑 Of course, a key selling point of Google Docs is the share-ability. Did you know by changing a few words within the URL you could \"force\" others to preview, make a copy, or download the document directly? Talk about user-friendliness! \n\nWhether you're a student 👨🏻\u200D🎓 or working professional 🧑\u200D💻, these top 10 Google Doc tips for productivity will at the very least make the process of using this tool more enjoyable! \n\nTIMESTAMPS\n0:00 Intro\n00:33 Version History\n01:36 Set New Default Font\n02:20 Auto Replace Text\n03:34 Change Capitalization Quickly\n04:04 Visualize Ideas using Drawings\n05:25 Keep Viewers Anonymous\n06:06 Make Copy Directly\n07:03 Download PDF Directly\n07:55 Embed Doc within Email\n08:34 Use Pre-Made Templates\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Calendar video - https://youtu.be/4GqqptRI4Do\nNotion templates - https://www.jeffsu.org/notion/\nMy workout routine template - https://docs.google.com/spreadsheets/d/1n3de5JlZMFej6QexlhYJ37mkuNSlU7jZ_VOiRs4eGog/copy#gid=1808286209\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleDocs #productivity #collaboration", "Top 10 Google Doc Tips for Productivity!", "79ab2e6d-fe76-4898-bb37-f61c4aa6d73d", false, "UDJkGkzTUYw", 1, [], 563, false, "https://www.youtube.com/watch?v=UDJkGkzTUYw", 155, "/downloads/Jeff Su/2021-04-06 Top 10 Google Doc Tips for Productivity!/Top 10 Google Doc Tips for Productivity! [UDJkGkzTUYw].mp4", false, false, 99, ~U[2021-04-06 13:00:08Z], ~U[2026-04-23 14:48:16Z], ~U[2026-04-23 14:48:16Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=046\n\n📑 It's easy to view Google Docs as just an online version of Microsoft Word, when in reality it's so much more! In this video I share the Top 10 Google Doc Tips for Productivity so you can unleash the full potential of this collaboration tool. \n\nBeing productive not only means getting work done faster, but it also means making few to no mistakes. This is why Version History is such a powerful feature since it lets you revert back to an earlier \"saved\" copy of your work. \"Set it and forget it\" functions like changing the default font and auto-replacing text also plays a huge role in speeding up your workflow. \n\n🔑 Of course, a key selling point of Google Docs is the share-ability. Did you know by changing a few words within the URL you could \"force\" others to preview, make a copy, or download the document directly? Talk about user-friendliness! \n\nWhether you're a student 👨🏻\u200D🎓 or working professional 🧑\u200D💻, these top 10 Google Doc tips for productivity will at the very least make the process of using this tool more enjoyable! \n\nTIMESTAMPS\n0:00 Intro\n00:33 Version History\n01:36 Set New Default Font\n02:20 Auto Replace Text\n03:34 Change Capitalization Quickly\n04:04 Visualize Ideas using Drawings\n05:25 Keep Viewers Anonymous\n06:06 Make Copy Directly\n07:03 Download PDF Directly\n07:55 Embed Doc within Email\n08:34 Use Pre-Made Templates\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Calendar video - https://youtu.be/4GqqptRI4Do\nNotion templates - https://www.jeffsu.org/notion/\nMy workout routine template - https://docs.google.com/spreadsheets/d/1n3de5JlZMFej6QexlhYJ37mkuNSlU7jZ_VOiRs4eGog/copy#gid=1808286209\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleDocs #productivity #collaboration", "Top 10 Google Doc Tips for Productivity!", "UDJkGkzTUYw", 1, 563, false, "https://www.youtube.com/watch?v=UDJkGkzTUYw", "/downloads/Jeff Su/2021-04-06 Top 10 Google Doc Tips for Productivity!/Top 10 Google Doc Tips for Productivity! [UDJkGkzTUYw].mp4", false, ~U[2021-04-06 13:00:08Z]] 16:48:16.058 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=453.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:16.059 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:48:16.059 [debug] QUERY OK source="media_items" db=0.4ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [155] 16:48:16.060 [info] Kicking off download for media item #155 (UDJkGkzTUYw) 16:48:16.063 [debug] QUERY OK source="tasks" db=0.3ms idle=4.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [159, 155, ~U[2026-04-23 14:48:16Z], ~U[2026-04-23 14:48:16Z]] 16:48:16.064 [debug] Current batch of media processed. Will check again in 1000ms 16:48:17.064 [debug] Current batch of media processed. Will check again in 1000ms 16:48:17.604 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=aKDqz07y2Mw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a7/6b/a76b160857b4fa7cdf829dd1ff97ae699074cc13d00fd26781867402e52a1471.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:48:17.646 [debug] Running yt-dlp command for action: download_thumbnail 16:48:17.648 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:48:17.649 [debug] QUERY OK source="settings" db=0.6ms idle=377.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:17.650 [debug] QUERY OK source="settings" db=0.5ms idle=378.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:17.650 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=aKDqz07y2Mw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/34/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/e0/f8/e0f8eb5931592bfe585aa2db41b32269fcfc74a39cd7030747331579d9026c57.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:48:18.065 [debug] Current batch of media processed. Will check again in 1000ms 16:48:18.278 [info] {"source":"oban","duration":915,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:48:19.066 [debug] Current batch of media processed. Will check again in 1000ms 16:48:20.068 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "💼 Come with me on my first ever business trip of 2021! I travel to Beijing for an offline event (for those of you unfamiliar with the term, \"offline\" is when people actually come together and meet each other in person) and I was glad to be able to see clients, partners, and of course, my lovely colleagues 😁\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nTrip Template: https://www.jeffsu.org/notion/\nTravel like a Product Marketer: https://geni.us/mytravel\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#vlog #businesstrip #travel", "duration" => 427, "filename" => "/downloads/Jeff Su/2021-03-30 A Productive Business Trip to Beijing (as a Product Marketer)/A Productive Business Trip to Beijing (as a Product Marketer) [oeiCU99kujo].mp4", "id" => "oeiCU99kujo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oeiCU99kujo", "playlist_index" => 156, "timestamp" => 1617109216, "title" => "A Productive Business Trip to Beijing (as a Product Marketer)", "upload_date" => "20210330"} 16:48:20.069 [debug] QUERY OK source="sources" db=0.4ms idle=1450.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:20.069 [debug] QUERY OK source="sources" db=0.3ms idle=798.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:20.071 [debug] QUERY OK source="media_items" db=0.9ms idle=799.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-30 13:00:16Z], 1] 16:48:20.073 [debug] QUERY OK source="media_items" db=1.6ms idle=800.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["💼 Come with me on my first ever business trip of 2021! I travel to Beijing for an offline event (for those of you unfamiliar with the term, \"offline\" is when people actually come together and meet each other in person) and I was glad to be able to see clients, partners, and of course, my lovely colleagues 😁\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nTrip Template: https://www.jeffsu.org/notion/\nTravel like a Product Marketer: https://geni.us/mytravel\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#vlog #businesstrip #travel", "A Productive Business Trip to Beijing (as a Product Marketer)", "8c6adf7e-734c-4a68-a0a2-1ecb91f8bb45", false, "oeiCU99kujo", 1, [], 427, false, "https://www.youtube.com/watch?v=oeiCU99kujo", 156, "/downloads/Jeff Su/2021-03-30 A Productive Business Trip to Beijing (as a Product Marketer)/A Productive Business Trip to Beijing (as a Product Marketer) [oeiCU99kujo].mp4", false, false, 99, ~U[2021-03-30 13:00:16Z], ~U[2026-04-23 14:48:20Z], ~U[2026-04-23 14:48:20Z], "💼 Come with me on my first ever business trip of 2021! I travel to Beijing for an offline event (for those of you unfamiliar with the term, \"offline\" is when people actually come together and meet each other in person) and I was glad to be able to see clients, partners, and of course, my lovely colleagues 😁\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nTrip Template: https://www.jeffsu.org/notion/\nTravel like a Product Marketer: https://geni.us/mytravel\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#vlog #businesstrip #travel", "A Productive Business Trip to Beijing (as a Product Marketer)", "oeiCU99kujo", 1, 427, false, "https://www.youtube.com/watch?v=oeiCU99kujo", "/downloads/Jeff Su/2021-03-30 A Productive Business Trip to Beijing (as a Product Marketer)/A Productive Business Trip to Beijing (as a Product Marketer) [oeiCU99kujo].mp4", false, ~U[2021-03-30 13:00:16Z]] 16:48:20.074 [debug] QUERY OK source="sources" db=0.2ms idle=453.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:20.074 [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] 16:48:20.075 [debug] QUERY OK source="media_items" db=0.3ms idle=5.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [156] 16:48:20.075 [info] Kicking off download for media item #156 (oeiCU99kujo) 16:48:20.079 [debug] QUERY OK source="tasks" db=0.3ms idle=4.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [160, 156, ~U[2026-04-23 14:48:20Z], ~U[2026-04-23 14:48:20Z]] 16:48:20.079 [debug] Current batch of media processed. Will check again in 1000ms 16:48:21.079 [debug] Current batch of media processed. Will check again in 1000ms 16:48:22.080 [debug] Current batch of media processed. Will check again in 1000ms 16:48:22.790 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=EOmgC3-hznM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/ca/d1/cad13270c98873d4d40eb1a652c5ff5dd17bec981060d27ef2db1fe3d14fdad9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:48:22.828 [debug] Running yt-dlp command for action: download_thumbnail 16:48:22.830 [debug] QUERY OK source="settings" db=0.3ms idle=1559.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:22.831 [debug] QUERY OK source="settings" db=0.5ms idle=1559.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:22.831 [debug] QUERY OK source="settings" db=0.4ms idle=1560.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:22.832 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=EOmgC3-hznM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/33/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4a/a5/4aa5a388f519f706bc9ecb708647155c44e4be92c271d19b68e5dbdc638cbccf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:48:23.082 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The compliment I receive the most at work - other than my charming smile 😉 - is how I'm able to navigate my work laptop almost entirely using my keyboard. In this video, I share the Best Keyboard Shortcuts for Productivity that you can (and should) use as a student or working professional! \n\n⌨️ Learning little-known, rarely used, keyboard shortcuts is not very helpful. So not only do I go through common (i.e. impactful) Mac keyboard shortcuts application across platforms, but also app-specific ones in Gmail, Google Docs, Sheets, Slides, and Chrome! \n\nGetting used to these keyboard combinations should take a week or less and once you're familiar with all the shortcuts from how to hyperlink to add rows and columns in Google Sheets, you'll be impressing your colleagues in no time with these seemingly crazy computer hacks and tricks 🤯\n\nTIMESTAMPS\n00:00 Intro\n00:48 Keyboard Shortcuts for All Applications\n03:25 Google Docs Shortcuts\n04:45 Gmail Shortcuts\n07:14 Google Sheets Shortcuts\n08:36 Google Slides Shortcuts\n08:55 Google Chrome Shortcuts\n09:58 Software & Hardware\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\nAlfred App - https://geni.us/alfred-app\nMagic Trackpad 2 - https://geni.us/desk-apple-trackpad-2\nMX Master 3 - https://geni.us/office-mxmaster3\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#keyboardshortcuts #productivity", "duration" => 720, "filename" => "/downloads/Jeff Su/2021-03-23 Best MacBook Keyboard Shortcuts for Productivity!/Best MacBook Keyboard Shortcuts for Productivity! [gCnSozvvMMM].mp4", "id" => "gCnSozvvMMM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gCnSozvvMMM", "playlist_index" => 157, "timestamp" => 1616508010, "title" => "Best MacBook Keyboard Shortcuts for Productivity!", "upload_date" => "20210323"} 16:48:23.083 [debug] QUERY OK source="sources" db=0.9ms idle=1458.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:23.084 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=457.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:23.086 [debug] QUERY OK source="media_items" db=1.0ms idle=254.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-23 14:00:10Z], 1] 16:48:23.089 [debug] QUERY OK source="media_items" db=2.1ms idle=255.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The compliment I receive the most at work - other than my charming smile 😉 - is how I'm able to navigate my work laptop almost entirely using my keyboard. In this video, I share the Best Keyboard Shortcuts for Productivity that you can (and should) use as a student or working professional! \n\n⌨️ Learning little-known, rarely used, keyboard shortcuts is not very helpful. So not only do I go through common (i.e. impactful) Mac keyboard shortcuts application across platforms, but also app-specific ones in Gmail, Google Docs, Sheets, Slides, and Chrome! \n\nGetting used to these keyboard combinations should take a week or less and once you're familiar with all the shortcuts from how to hyperlink to add rows and columns in Google Sheets, you'll be impressing your colleagues in no time with these seemingly crazy computer hacks and tricks 🤯\n\nTIMESTAMPS\n00:00 Intro\n00:48 Keyboard Shortcuts for All Applications\n03:25 Google Docs Shortcuts\n04:45 Gmail Shortcuts\n07:14 Google Sheets Shortcuts\n08:36 Google Slides Shortcuts\n08:55 Google Chrome Shortcuts\n09:58 Software & Hardware\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\nAlfred App - https://geni.us/alfred-app\nMagic Trackpad 2 - https://geni.us/desk-apple-trackpad-2\nMX Master 3 - https://geni.us/office-mxmaster3\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#keyboardshortcuts #productivity", "Best MacBook Keyboard Shortcuts for Productivity!", "d815a1de-74eb-4f21-b460-61655e219860", false, "gCnSozvvMMM", 1, [], 720, false, "https://www.youtube.com/watch?v=gCnSozvvMMM", 157, "/downloads/Jeff Su/2021-03-23 Best MacBook Keyboard Shortcuts for Productivity!/Best MacBook Keyboard Shortcuts for Productivity! [gCnSozvvMMM].mp4", false, false, 99, ~U[2021-03-23 14:00:10Z], ~U[2026-04-23 14:48:23Z], ~U[2026-04-23 14:48:23Z], "The compliment I receive the most at work - other than my charming smile 😉 - is how I'm able to navigate my work laptop almost entirely using my keyboard. In this video, I share the Best Keyboard Shortcuts for Productivity that you can (and should) use as a student or working professional! \n\n⌨️ Learning little-known, rarely used, keyboard shortcuts is not very helpful. So not only do I go through common (i.e. impactful) Mac keyboard shortcuts application across platforms, but also app-specific ones in Gmail, Google Docs, Sheets, Slides, and Chrome! \n\nGetting used to these keyboard combinations should take a week or less and once you're familiar with all the shortcuts from how to hyperlink to add rows and columns in Google Sheets, you'll be impressing your colleagues in no time with these seemingly crazy computer hacks and tricks 🤯\n\nTIMESTAMPS\n00:00 Intro\n00:48 Keyboard Shortcuts for All Applications\n03:25 Google Docs Shortcuts\n04:45 Gmail Shortcuts\n07:14 Google Sheets Shortcuts\n08:36 Google Slides Shortcuts\n08:55 Google Chrome Shortcuts\n09:58 Software & Hardware\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\nAlfred App - https://geni.us/alfred-app\nMagic Trackpad 2 - https://geni.us/desk-apple-trackpad-2\nMX Master 3 - https://geni.us/office-mxmaster3\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#keyboardshortcuts #productivity", "Best MacBook Keyboard Shortcuts for Productivity!", "gCnSozvvMMM", 1, 720, false, "https://www.youtube.com/watch?v=gCnSozvvMMM", "/downloads/Jeff Su/2021-03-23 Best MacBook Keyboard Shortcuts for Productivity!/Best MacBook Keyboard Shortcuts for Productivity! [gCnSozvvMMM].mp4", false, ~U[2021-03-23 14:00:10Z]] 16:48:23.090 [debug] QUERY OK source="sources" db=0.5ms idle=257.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:23.091 [debug] QUERY OK source="media_profiles" db=0.3ms idle=7.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:48:23.093 [debug] QUERY OK source="media_items" db=1.6ms idle=6.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [157] 16:48:23.093 [info] Kicking off download for media item #157 (gCnSozvvMMM) 16:48:23.099 [debug] QUERY OK source="tasks" db=0.3ms idle=8.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [161, 157, ~U[2026-04-23 14:48:23Z], ~U[2026-04-23 14:48:23Z]] 16:48:23.099 [debug] Current batch of media processed. Will check again in 1000ms 16:48:24.099 [debug] Current batch of media processed. Will check again in 1000ms 16:48:25.101 [debug] Current batch of media processed. Will check again in 1000ms 16:48:26.101 [debug] Current batch of media processed. Will check again in 1000ms 16:48:26.605 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=aKDqz07y2Mw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/34/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/e0/f8/e0f8eb5931592bfe585aa2db41b32269fcfc74a39cd7030747331579d9026c57.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:48:26.605 [debug] QUERY OK db=0.1ms idle=972.6ms begin [] 16:48:26.607 [debug] QUERY OK source="media_items" db=1.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:48:17Z], "/downloads/Jeff Su/2024-11-26 Google Keep: Top 11 Tips for Insane Digital Organization!/Google Keep: Top 11 Tips for Insane Digital Organization! [aKDqz07y2Mw].mp4", "/downloads/Jeff Su/2024-11-26 Google Keep: Top 11 Tips for Insane Digital Organization!/Google Keep: Top 11 Tips for Insane Digital Organization! [aKDqz07y2Mw].info.json", "/downloads/Jeff Su/2024-11-26 Google Keep: Top 11 Tips for Insane Digital Organization!/Google Keep: Top 11 Tips for Insane Digital Organization! [aKDqz07y2Mw].nfo", "/downloads/Jeff Su/2024-11-26 Google Keep: Top 11 Tips for Insane Digital Organization!/Google Keep: Top 11 Tips for Insane Digital Organization! [aKDqz07y2Mw]-thumb.jpg", ~U[2026-04-23 14:48:26Z], 34] 16:48:26.609 [debug] QUERY OK source="media_metadata" db=1.0ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/34/metadata.json.gz", "/config/metadata/media_items/34/thumbnail.jpg", 34, ~U[2026-04-23 14:48:26Z], ~U[2026-04-23 14:48:26Z]] 16:48:26.609 [debug] QUERY OK db=0.4ms commit [] 16:48:26.611 [debug] QUERY OK source="media_items" db=1.5ms idle=339.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [20951572, ~U[2026-04-23 14:48:26Z], 34] 16:48:26.611 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:48:26.612 [info] {"args":{"id":34},"id":38,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":34042665,"event":"job:stop","queue_time":490567829,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:48:26.620 [info] {"args":{"id":35},"id":39,"meta":{},"system_time":1776955706620249657,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:48:26.621 [debug] QUERY OK source="media_items" db=0.5ms idle=349.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" = ?) [35] 16:48:26.621 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:48:26.622 [debug] QUERY OK source="sources" db=0.3ms idle=12.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:26.623 [debug] QUERY OK source="media_profiles" db=0.4ms idle=10.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] 16:48:26.626 [debug] QUERY OK source="media_items" db=2.5ms idle=10.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 [35] 16:48:26.627 [debug] QUERY OK source="media_metadata" db=0.2ms idle=7.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [35] 16:48:26.627 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:48:26.628 [debug] QUERY OK source="settings" db=0.4ms idle=6.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:26.629 [debug] QUERY OK source="settings" db=0.3ms idle=6.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:26.630 [debug] Running yt-dlp command for action: get_downloadable_status 16:48:26.631 [debug] QUERY OK source="settings" db=0.3ms idle=5.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:26.632 [debug] QUERY OK source="settings" db=0.3ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:26.632 [debug] QUERY OK source="settings" db=0.3ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:26.632 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=N0hod3YFCy4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f5/b1/f5b1b109500c56495a960a9923417b8a7af173333195a81eaea312f3e1880624.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:48:27.102 [debug] Current batch of media processed. Will check again in 1000ms 16:48:28.104 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=042\n\n☁️ If you currently only use Google Drive as an online file management system, you have yet to unlock 90% of what this powerful tool can offer! In this video, not only do I share the Top 9 Google Drive Tips for Productivity, but I also walk you through common yet frustrating scenarios you probably run into on a daily basis at school or at work. \n\n💡 Being productive on Google Drive means you find your file faster, and more importantly, you find the right files in a more efficient way. Tips and tricks like dragging to create a file duplicate means you can share files while keeping your own Drive organized, searching in your Drive directly from your browser's address bar means you never have to wait for Drive to load and open again, and pulling out text from images and PDFs cuts down on a massive amount of potential workload \n\nThese are the 9 Top Productivity Tips for Google Drive that I personally think every user must know when working with this amazing tool! Let's get productive!\n\nTIMESTAMPS\n00:00 Intro\n00:10 Drag to create shortcut\n01:22 Search from address bar\n02:32 Use \"Search Within\" function\n03:20 Use Advance Search\n04:05 Pull out text\n04:49 Enable offline sync\n05:25 3 Keyboard shortcuts\n06:59 Change default apps\n07:29 Star documents the right way\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🔎 Google Drive Search string: https://drive.google.com/drive/u/0/search?q=%s\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleDrive #productivity #productivityatwork", "duration" => 526, "filename" => "/downloads/Jeff Su/2021-03-16 Top 9 Google Drive Tips for Productivity!/Top 9 Google Drive Tips for Productivity! [xhEr6ONZF6A].mp4", "id" => "xhEr6ONZF6A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xhEr6ONZF6A", "playlist_index" => 158, "timestamp" => 1615899619, "title" => "Top 9 Google Drive Tips for Productivity!", "upload_date" => "20210316"} 16:48:28.109 [debug] QUERY OK source="sources" db=4.1ms queue=0.1ms idle=1473.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:28.112 [debug] QUERY OK source="sources" db=3.1ms queue=0.1ms idle=1477.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:28.116 [debug] QUERY OK source="media_items" db=3.5ms idle=1480.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-16 13:00:19Z], 1] 16:48:28.127 [debug] QUERY OK source="media_items" db=9.6ms idle=1481.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=042\n\n☁️ If you currently only use Google Drive as an online file management system, you have yet to unlock 90% of what this powerful tool can offer! In this video, not only do I share the Top 9 Google Drive Tips for Productivity, but I also walk you through common yet frustrating scenarios you probably run into on a daily basis at school or at work. \n\n💡 Being productive on Google Drive means you find your file faster, and more importantly, you find the right files in a more efficient way. Tips and tricks like dragging to create a file duplicate means you can share files while keeping your own Drive organized, searching in your Drive directly from your browser's address bar means you never have to wait for Drive to load and open again, and pulling out text from images and PDFs cuts down on a massive amount of potential workload \n\nThese are the 9 Top Productivity Tips for Google Drive that I personally think every user must know when working with this amazing tool! Let's get productive!\n\nTIMESTAMPS\n00:00 Intro\n00:10 Drag to create shortcut\n01:22 Search from address bar\n02:32 Use \"Search Within\" function\n03:20 Use Advance Search\n04:05 Pull out text\n04:49 Enable offline sync\n05:25 3 Keyboard shortcuts\n06:59 Change default apps\n07:29 Star documents the right way\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🔎 Google Drive Search string: https://drive.google.com/drive/u/0/search?q=%s\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleDrive #productivity #productivityatwork", "Top 9 Google Drive Tips for Productivity!", "b14a8b6a-d2e4-45f5-83b2-35e1c9d1d9aa", false, "xhEr6ONZF6A", 1, [], 526, false, "https://www.youtube.com/watch?v=xhEr6ONZF6A", 158, "/downloads/Jeff Su/2021-03-16 Top 9 Google Drive Tips for Productivity!/Top 9 Google Drive Tips for Productivity! [xhEr6ONZF6A].mp4", false, false, 99, ~U[2021-03-16 13:00:19Z], ~U[2026-04-23 14:48:28Z], ~U[2026-04-23 14:48:28Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=042\n\n☁️ If you currently only use Google Drive as an online file management system, you have yet to unlock 90% of what this powerful tool can offer! In this video, not only do I share the Top 9 Google Drive Tips for Productivity, but I also walk you through common yet frustrating scenarios you probably run into on a daily basis at school or at work. \n\n💡 Being productive on Google Drive means you find your file faster, and more importantly, you find the right files in a more efficient way. Tips and tricks like dragging to create a file duplicate means you can share files while keeping your own Drive organized, searching in your Drive directly from your browser's address bar means you never have to wait for Drive to load and open again, and pulling out text from images and PDFs cuts down on a massive amount of potential workload \n\nThese are the 9 Top Productivity Tips for Google Drive that I personally think every user must know when working with this amazing tool! Let's get productive!\n\nTIMESTAMPS\n00:00 Intro\n00:10 Drag to create shortcut\n01:22 Search from address bar\n02:32 Use \"Search Within\" function\n03:20 Use Advance Search\n04:05 Pull out text\n04:49 Enable offline sync\n05:25 3 Keyboard shortcuts\n06:59 Change default apps\n07:29 Star documents the right way\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🔎 Google Drive Search string: https://drive.google.com/drive/u/0/search?q=%s\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleDrive #productivity #productivityatwork", "Top 9 Google Drive Tips for Productivity!", "xhEr6ONZF6A", 1, 526, false, "https://www.youtube.com/watch?v=xhEr6ONZF6A", "/downloads/Jeff Su/2021-03-16 Top 9 Google Drive Tips for Productivity!/Top 9 Google Drive Tips for Productivity! [xhEr6ONZF6A].mp4", false, ~U[2021-03-16 13:00:19Z]] 16:48:28.129 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=490.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:28.131 [debug] QUERY OK source="media_profiles" db=2.0ms idle=20.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] 16:48:28.134 [debug] QUERY OK source="media_items" db=1.9ms idle=19.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 [158] 16:48:28.134 [info] Kicking off download for media item #158 (xhEr6ONZF6A) 16:48:28.138 [debug] QUERY OK source="tasks" db=0.2ms idle=8.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [162, 158, ~U[2026-04-23 14:48:28Z], ~U[2026-04-23 14:48:28Z]] 16:48:28.138 [debug] Current batch of media processed. Will check again in 1000ms 16:48:28.979 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=EOmgC3-hznM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/33/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4a/a5/4aa5a388f519f706bc9ecb708647155c44e4be92c271d19b68e5dbdc638cbccf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:48:28.980 [debug] QUERY OK db=0.0ms idle=845.7ms begin [] 16:48:28.981 [debug] QUERY OK source="media_items" db=0.7ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:48:22Z], "/downloads/Jeff Su/2024-12-10 Learn 80% of NotebookLM in Under 13 Minutes!/Learn 80% of NotebookLM in Under 13 Minutes! [EOmgC3-hznM].mp4", "/downloads/Jeff Su/2024-12-10 Learn 80% of NotebookLM in Under 13 Minutes!/Learn 80% of NotebookLM in Under 13 Minutes! [EOmgC3-hznM].info.json", "/downloads/Jeff Su/2024-12-10 Learn 80% of NotebookLM in Under 13 Minutes!/Learn 80% of NotebookLM in Under 13 Minutes! [EOmgC3-hznM].nfo", "/downloads/Jeff Su/2024-12-10 Learn 80% of NotebookLM in Under 13 Minutes!/Learn 80% of NotebookLM in Under 13 Minutes! [EOmgC3-hznM]-thumb.jpg", ~U[2026-04-23 14:48:28Z], 33] 16:48:28.982 [debug] QUERY OK source="media_metadata" db=0.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/33/metadata.json.gz", "/config/metadata/media_items/33/thumbnail.jpg", 33, ~U[2026-04-23 14:48:28Z], ~U[2026-04-23 14:48:28Z]] 16:48:28.983 [debug] QUERY OK db=0.5ms commit [] 16:48:28.985 [debug] QUERY OK source="media_items" db=1.4ms idle=846.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [41638108, ~U[2026-04-23 14:48:28Z], 33] 16:48:28.985 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:48:28.986 [info] {"args":{"id":33},"id":37,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":38463497,"event":"job:stop","queue_time":492520828,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:48:28.993 [info] {"args":{"id":36},"id":40,"meta":{},"system_time":1776955708993212036,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:48:28.994 [debug] QUERY OK source="media_items" db=0.3ms idle=354.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" = ?) [36] 16:48:28.994 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:48:28.994 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=11.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:28.995 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:48:28.996 [debug] QUERY OK source="media_items" db=0.3ms idle=9.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [36] 16:48:28.997 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [36] 16:48:28.997 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:48:28.998 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:28.998 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:28.998 [debug] Running yt-dlp command for action: get_downloadable_status 16:48:28.999 [debug] QUERY OK source="settings" db=0.1ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:28.999 [debug] QUERY OK source="settings" db=0.2ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:29.000 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:48:29.000 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=v-9CVpuoIEo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ca/4e/ca4ec84ef76e53f876ac56f3d4ebe1501977e0ef047e57e8cb523e39bde38ec4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:48:29.138 [debug] Current batch of media processed. Will check again in 1000ms 16:48:30.147 [debug] Current batch of media processed. Will check again in 1000ms 16:48:31.148 [debug] Current batch of media processed. Will check again in 1000ms 16:48:32.149 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=000\n\n📔 My Agenda Planner Template: https://www.jeffsu.org/plan-a-productive-day-on-notion/\n\nEver since I started using this agenda planner on Notion every morning, I've been able to start to day more focused, with a clearer idea of the things I need to do throughout the day. In this video I share how to Plan a Productive Day using Notion and I also share my Free Template so you can follow along as well 🤓\n\nAs nerdy as it sounds, because this Notion template looks so pretty and organized (spoiler: I stole the original design from Notion Templates Library) I actually look forward to inputting my to-do's and action items at the beginning of every day. Checking off each to-do as I complete them throughout the day also brings me quite a bit of satisfaction, no matter how \"small\" the task! \n\nMy agenda planner is roughly split into 3 sections:\n1. I write down the \"Highlight\" of the day (a concept I learned from reading \"Make Time\"), something I'm grateful for, and something I want to let go of \n2. A high-level overview of my work-streams, so I can see at a glance what milestones I need to hit throughout the week\n3. Where I actually write down my daily and weekly to-do's and action items, and I check in periodically throughout the day to make sure I'm on track to finishing those tasks each day\n\nTIMESTAMPS\n00:00 Intro\n01:07 Agenda Master Page\n02:14 Current Week Agenda\n02:53 \"Make Time\" Section\n04:13 Each Day of the Week\n04:44 Workstream Section\n05:48 Input & Review Section\n\nRESOURCES I MENTION IN THE VIDEO\n📔 My Agenda Planner Template: https://www.jeffsu.org/plan-a-productive-day-on-notion/\n💌 Gmail Filters video: https://youtu.be/_vhfAn0wb10\n📽 Ali's Notion video: https://youtu.be/uJgv0XQOehs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\n\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notion #agendaplanner #productivity", "duration" => 459, "filename" => "/downloads/Jeff Su/2021-03-09 Plan a Productive Day using Notion (Free Template)!/Plan a Productive Day using Notion (Free Template)! [sZB8OZoSIyU].mp4", "id" => "sZB8OZoSIyU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=sZB8OZoSIyU", "playlist_index" => 159, "timestamp" => 1615294814, "title" => "Plan a Productive Day using Notion (Free Template)!", "upload_date" => "20210309"} 16:48:32.150 [debug] QUERY OK source="sources" db=0.3ms idle=1877.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:32.151 [debug] QUERY OK source="sources" db=0.3ms idle=1878.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:32.152 [debug] QUERY OK source="media_items" db=0.8ms idle=1878.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-09 13:00:14Z], 1] 16:48:32.155 [debug] QUERY OK source="media_items" db=2.0ms idle=1508.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=000\n\n📔 My Agenda Planner Template: https://www.jeffsu.org/plan-a-productive-day-on-notion/\n\nEver since I started using this agenda planner on Notion every morning, I've been able to start to day more focused, with a clearer idea of the things I need to do throughout the day. In this video I share how to Plan a Productive Day using Notion and I also share my Free Template so you can follow along as well 🤓\n\nAs nerdy as it sounds, because this Notion template looks so pretty and organized (spoiler: I stole the original design from Notion Templates Library) I actually look forward to inputting my to-do's and action items at the beginning of every day. Checking off each to-do as I complete them throughout the day also brings me quite a bit of satisfaction, no matter how \"small\" the task! \n\nMy agenda planner is roughly split into 3 sections:\n1. I write down the \"Highlight\" of the day (a concept I learned from reading \"Make Time\"), something I'm grateful for, and something I want to let go of \n2. A high-level overview of my work-streams, so I can see at a glance what milestones I need to hit throughout the week\n3. Where I actually write down my daily and weekly to-do's and action items, and I check in periodically throughout the day to make sure I'm on track to finishing those tasks each day\n\nTIMESTAMPS\n00:00 Intro\n01:07 Agenda Master Page\n02:14 Current Week Agenda\n02:53 \"Make Time\" Section\n04:13 Each Day of the Week\n04:44 Workstream Section\n05:48 Input & Review Section\n\nRESOURCES I MENTION IN THE VIDEO\n📔 My Agenda Planner Template: https://www.jeffsu.org/plan-a-productive-day-on-notion/\n💌 Gmail Filters video: https://youtu.be/_vhfAn0wb10\n📽 Ali's Notion video: https://youtu.be/uJgv0XQOehs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\n\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notion #agendaplanner #productivity", "Plan a Productive Day using Notion (Free Template)!", "2fb39627-cf66-4097-8e9c-f2acc451414a", false, "sZB8OZoSIyU", 1, [], 459, false, "https://www.youtube.com/watch?v=sZB8OZoSIyU", 159, "/downloads/Jeff Su/2021-03-09 Plan a Productive Day using Notion (Free Template)!/Plan a Productive Day using Notion (Free Template)! [sZB8OZoSIyU].mp4", false, false, 99, ~U[2021-03-09 13:00:14Z], ~U[2026-04-23 14:48:32Z], ~U[2026-04-23 14:48:32Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=000\n\n📔 My Agenda Planner Template: https://www.jeffsu.org/plan-a-productive-day-on-notion/\n\nEver since I started using this agenda planner on Notion every morning, I've been able to start to day more focused, with a clearer idea of the things I need to do throughout the day. In this video I share how to Plan a Productive Day using Notion and I also share my Free Template so you can follow along as well 🤓\n\nAs nerdy as it sounds, because this Notion template looks so pretty and organized (spoiler: I stole the original design from Notion Templates Library) I actually look forward to inputting my to-do's and action items at the beginning of every day. Checking off each to-do as I complete them throughout the day also brings me quite a bit of satisfaction, no matter how \"small\" the task! \n\nMy agenda planner is roughly split into 3 sections:\n1. I write down the \"Highlight\" of the day (a concept I learned from reading \"Make Time\"), something I'm grateful for, and something I want to let go of \n2. A high-level overview of my work-streams, so I can see at a glance what milestones I need to hit throughout the week\n3. Where I actually write down my daily and weekly to-do's and action items, and I check in periodically throughout the day to make sure I'm on track to finishing those tasks each day\n\nTIMESTAMPS\n00:00 Intro\n01:07 Agenda Master Page\n02:14 Current Week Agenda\n02:53 \"Make Time\" Section\n04:13 Each Day of the Week\n04:44 Workstream Section\n05:48 Input & Review Section\n\nRESOURCES I MENTION IN THE VIDEO\n📔 My Agenda Planner Template: https://www.jeffsu.org/plan-a-productive-day-on-notion/\n💌 Gmail Filters video: https://youtu.be/_vhfAn0wb10\n📽 Ali's Notion video: https://youtu.be/uJgv0XQOehs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\n\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notion #agendaplanner #productivity", "Plan a Productive Day using Notion (Free Template)!", "sZB8OZoSIyU", 1, 459, false, "https://www.youtube.com/watch?v=sZB8OZoSIyU", "/downloads/Jeff Su/2021-03-09 Plan a Productive Day using Notion (Free Template)!/Plan a Productive Day using Notion (Free Template)! [sZB8OZoSIyU].mp4", false, ~U[2021-03-09 13:00:14Z]] 16:48:32.156 [debug] QUERY OK source="sources" db=1.1ms idle=509.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:32.157 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:48:32.158 [debug] QUERY OK source="media_items" db=0.4ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [159] 16:48:32.158 [info] Kicking off download for media item #159 (sZB8OZoSIyU) 16:48:32.161 [debug] QUERY OK source="tasks" db=0.2ms idle=4.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [163, 159, ~U[2026-04-23 14:48:32Z], ~U[2026-04-23 14:48:32Z]] 16:48:32.161 [debug] Current batch of media processed. Will check again in 1000ms 16:48:32.855 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=N0hod3YFCy4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f5/b1/f5b1b109500c56495a960a9923417b8a7af173333195a81eaea312f3e1880624.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:48:32.858 [debug] Running yt-dlp command for action: download 16:48:32.860 [debug] QUERY OK source="settings" db=1.7ms queue=0.1ms idle=700.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:32.861 [debug] QUERY OK source="settings" db=0.3ms idle=700.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:32.861 [debug] QUERY OK source="settings" db=0.1ms idle=700.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:32.862 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=N0hod3YFCy4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/2d/38/2d3846a450124fe31518500f5696e7bee38ab63614637574710343fdb310ca1e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:48:33.162 [debug] Current batch of media processed. Will check again in 1000ms 16:48:34.163 [debug] Current batch of media processed. Will check again in 1000ms 16:48:34.979 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=v-9CVpuoIEo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ca/4e/ca4ec84ef76e53f876ac56f3d4ebe1501977e0ef047e57e8cb523e39bde38ec4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:48:34.979 [debug] Running yt-dlp command for action: download 16:48:34.980 [debug] QUERY OK source="settings" db=0.3ms idle=1327.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:34.980 [debug] QUERY OK source="settings" db=0.2ms idle=708.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:34.980 [debug] QUERY OK source="settings" db=0.1ms idle=708.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:34.981 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=v-9CVpuoIEo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/08/0f/080f38d4d7be595c34b7d4a6e79d6e380e47786b25b8f09312b6ce19d9002c6f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:48:35.164 [debug] Current batch of media processed. Will check again in 1000ms 16:48:36.166 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=040\n\n📩 In an age of distractions, we should control what emails get surfaced in our gmail inbox, and which ones should be de-prioritized. In this video I share 6 of the BEST Gmail Filters for Productivity at work, with tips ranging from simple calendar notification filters to advanced tricks like combining filters with gmail templates\n\nAdopting these hacks will help you become more productive at work since it only takes a one-time setup but the benefits will continue, well, forever. Find out how to color-code your gmail inbox using labels combined with filters, and how to use the \"*\" search operator as a wildcard. \n\nUsing these gmail rules and filters will not just help you become more efficient at work and school, but will also help you make fewer mistakes since it takes the manual labor out of the equation. Let's become (even) more productive together 🙌\n\nTIMESTAMPS\n00:00 Intro\n00:41 Filter Comments from Google Drive\n02:14 Combine Filters & Templates\n04:36 Archive Calendar Notifications\n05:26 Filter Out Spam\n07:22 Color Code Your Inbox\n07:55 Transfer Filters \n08:27 Surprise Gift\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋 Get my Gmail filters - https://www.jeffsu.org/gmail/\n\nInbox Zero Tutorial - https://youtu.be/9ql1CQfxWxQ\nIncrease Your Productivity at Work Playlist - https://youtube.com/playlist?list=PLo-kPya_Ww2y8zKNUJLVbxEoLUHYk6k2i\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #filters #productivity #work", "duration" => 539, "filename" => "/downloads/Jeff Su/2021-03-03 Top 6 Gmail Filters for Productivity!/Top 6 Gmail Filters for Productivity! [_vhfAn0wb10].mp4", "id" => "_vhfAn0wb10", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_vhfAn0wb10", "playlist_index" => 160, "timestamp" => 1614733210, "title" => "Top 6 Gmail Filters for Productivity!", "upload_date" => "20210303"} 16:48:36.167 [debug] QUERY OK source="sources" db=0.3ms idle=1512.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:36.168 [debug] QUERY OK source="sources" db=0.5ms idle=1187.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:36.169 [debug] QUERY OK source="media_items" db=1.0ms idle=1187.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-03 01:00:10Z], 1] 16:48:36.173 [debug] QUERY OK source="media_items" db=2.3ms idle=1189.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=040\n\n📩 In an age of distractions, we should control what emails get surfaced in our gmail inbox, and which ones should be de-prioritized. In this video I share 6 of the BEST Gmail Filters for Productivity at work, with tips ranging from simple calendar notification filters to advanced tricks like combining filters with gmail templates\n\nAdopting these hacks will help you become more productive at work since it only takes a one-time setup but the benefits will continue, well, forever. Find out how to color-code your gmail inbox using labels combined with filters, and how to use the \"*\" search operator as a wildcard. \n\nUsing these gmail rules and filters will not just help you become more efficient at work and school, but will also help you make fewer mistakes since it takes the manual labor out of the equation. Let's become (even) more productive together 🙌\n\nTIMESTAMPS\n00:00 Intro\n00:41 Filter Comments from Google Drive\n02:14 Combine Filters & Templates\n04:36 Archive Calendar Notifications\n05:26 Filter Out Spam\n07:22 Color Code Your Inbox\n07:55 Transfer Filters \n08:27 Surprise Gift\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋 Get my Gmail filters - https://www.jeffsu.org/gmail/\n\nInbox Zero Tutorial - https://youtu.be/9ql1CQfxWxQ\nIncrease Your Productivity at Work Playlist - https://youtube.com/playlist?list=PLo-kPya_Ww2y8zKNUJLVbxEoLUHYk6k2i\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #filters #productivity #work", "Top 6 Gmail Filters for Productivity!", "328f5e91-101b-4e81-851b-1196fe1ac975", false, "_vhfAn0wb10", 1, [], 539, false, "https://www.youtube.com/watch?v=_vhfAn0wb10", 160, "/downloads/Jeff Su/2021-03-03 Top 6 Gmail Filters for Productivity!/Top 6 Gmail Filters for Productivity! [_vhfAn0wb10].mp4", false, false, 99, ~U[2021-03-03 01:00:10Z], ~U[2026-04-23 14:48:36Z], ~U[2026-04-23 14:48:36Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=040\n\n📩 In an age of distractions, we should control what emails get surfaced in our gmail inbox, and which ones should be de-prioritized. In this video I share 6 of the BEST Gmail Filters for Productivity at work, with tips ranging from simple calendar notification filters to advanced tricks like combining filters with gmail templates\n\nAdopting these hacks will help you become more productive at work since it only takes a one-time setup but the benefits will continue, well, forever. Find out how to color-code your gmail inbox using labels combined with filters, and how to use the \"*\" search operator as a wildcard. \n\nUsing these gmail rules and filters will not just help you become more efficient at work and school, but will also help you make fewer mistakes since it takes the manual labor out of the equation. Let's become (even) more productive together 🙌\n\nTIMESTAMPS\n00:00 Intro\n00:41 Filter Comments from Google Drive\n02:14 Combine Filters & Templates\n04:36 Archive Calendar Notifications\n05:26 Filter Out Spam\n07:22 Color Code Your Inbox\n07:55 Transfer Filters \n08:27 Surprise Gift\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋 Get my Gmail filters - https://www.jeffsu.org/gmail/\n\nInbox Zero Tutorial - https://youtu.be/9ql1CQfxWxQ\nIncrease Your Productivity at Work Playlist - https://youtube.com/playlist?list=PLo-kPya_Ww2y8zKNUJLVbxEoLUHYk6k2i\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #filters #productivity #work", "Top 6 Gmail Filters for Productivity!", "_vhfAn0wb10", 1, 539, false, "https://www.youtube.com/watch?v=_vhfAn0wb10", "/downloads/Jeff Su/2021-03-03 Top 6 Gmail Filters for Productivity!/Top 6 Gmail Filters for Productivity! [_vhfAn0wb10].mp4", false, ~U[2021-03-03 01:00:10Z]] 16:48:36.173 [debug] QUERY OK source="sources" db=0.4ms idle=517.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:36.174 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=7.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:48:36.176 [debug] QUERY OK source="media_items" db=0.9ms idle=7.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [160] 16:48:36.176 [info] Kicking off download for media item #160 (_vhfAn0wb10) 16:48:36.182 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=7.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [164, 160, ~U[2026-04-23 14:48:36Z], ~U[2026-04-23 14:48:36Z]] 16:48:36.182 [debug] Current batch of media processed. Will check again in 1000ms 16:48:37.183 [debug] Current batch of media processed. Will check again in 1000ms 16:48:38.184 [debug] Current batch of media processed. Will check again in 1000ms 16:48:39.186 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=039\n\n📧 Gmail is a powerhouse of a tool so in this video I share my Top 7 Gmail Tips for Productivity that will help you get things done faster while make fewer mistakes\n\nWhether you're a student using gmail for school, or working professional using gmail for work, there are many productivity tips and tricks for gmail that you are able to leverage 💡\n\n\"Good\" Gmail productivity hacks should focus on helping you achieve your objectives in a timely and efficient manner. For example using the \"Schedule Send\" function to recap your conversations while the content is still fresh in your mind but schedule it to send for the day after\n\nOther new gmail features include \"templates\" and using the plus \"+\" sign to create infinite gmail aliases; all these tips and tricks are designed to increase your productivity when using gmail! \n\nSo open up your gmail account, start this video, and let's be more productive together 😁\n\nTIMESTAMPS\n00:00 Intro\n00:39 Use \"Schedule Send\" Productively\n01:38 Use * as Search Operator\n02:35 Show Labels Only When Unread\n03:07 Easy Way to Create Filters\n04:01 Create Infinite Aliases\n05:11 Gmail Templates\n05:44 Search Another Person's Gmail\n06:50 Bonus Tip!\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero | Step-by-step Instructions - https://youtu.be/9ql1CQfxWxQ\n8 Google Calendar Tips for Productivity - https://youtu.be/4GqqptRI4Do\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #productivity #career", "duration" => 462, "filename" => "/downloads/Jeff Su/2021-02-24 Top 7 Gmail Tips for Productivity 📧/Top 7 Gmail Tips for Productivity 📧 [DPWVEL4UNi0].mp4", "id" => "DPWVEL4UNi0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DPWVEL4UNi0", "playlist_index" => 161, "timestamp" => 1614124802, "title" => "Top 7 Gmail Tips for Productivity 📧", "upload_date" => "20210224"} 16:48:39.188 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=1914.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:39.188 [debug] QUERY OK source="sources" db=0.2ms idle=1916.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:39.189 [debug] QUERY OK source="media_items" db=0.7ms idle=1917.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-24 00:00:02Z], 1] 16:48:39.193 [debug] QUERY OK source="media_items" db=2.0ms idle=1530.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=039\n\n📧 Gmail is a powerhouse of a tool so in this video I share my Top 7 Gmail Tips for Productivity that will help you get things done faster while make fewer mistakes\n\nWhether you're a student using gmail for school, or working professional using gmail for work, there are many productivity tips and tricks for gmail that you are able to leverage 💡\n\n\"Good\" Gmail productivity hacks should focus on helping you achieve your objectives in a timely and efficient manner. For example using the \"Schedule Send\" function to recap your conversations while the content is still fresh in your mind but schedule it to send for the day after\n\nOther new gmail features include \"templates\" and using the plus \"+\" sign to create infinite gmail aliases; all these tips and tricks are designed to increase your productivity when using gmail! \n\nSo open up your gmail account, start this video, and let's be more productive together 😁\n\nTIMESTAMPS\n00:00 Intro\n00:39 Use \"Schedule Send\" Productively\n01:38 Use * as Search Operator\n02:35 Show Labels Only When Unread\n03:07 Easy Way to Create Filters\n04:01 Create Infinite Aliases\n05:11 Gmail Templates\n05:44 Search Another Person's Gmail\n06:50 Bonus Tip!\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero | Step-by-step Instructions - https://youtu.be/9ql1CQfxWxQ\n8 Google Calendar Tips for Productivity - https://youtu.be/4GqqptRI4Do\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #productivity #career", "Top 7 Gmail Tips for Productivity 📧", "2728f36b-08fe-4bd4-8fd2-0cc4f8d7c7df", false, "DPWVEL4UNi0", 1, [], 462, false, "https://www.youtube.com/watch?v=DPWVEL4UNi0", 161, "/downloads/Jeff Su/2021-02-24 Top 7 Gmail Tips for Productivity 📧/Top 7 Gmail Tips for Productivity 📧 [DPWVEL4UNi0].mp4", false, false, 99, ~U[2021-02-24 00:00:02Z], ~U[2026-04-23 14:48:39Z], ~U[2026-04-23 14:48:39Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=039\n\n📧 Gmail is a powerhouse of a tool so in this video I share my Top 7 Gmail Tips for Productivity that will help you get things done faster while make fewer mistakes\n\nWhether you're a student using gmail for school, or working professional using gmail for work, there are many productivity tips and tricks for gmail that you are able to leverage 💡\n\n\"Good\" Gmail productivity hacks should focus on helping you achieve your objectives in a timely and efficient manner. For example using the \"Schedule Send\" function to recap your conversations while the content is still fresh in your mind but schedule it to send for the day after\n\nOther new gmail features include \"templates\" and using the plus \"+\" sign to create infinite gmail aliases; all these tips and tricks are designed to increase your productivity when using gmail! \n\nSo open up your gmail account, start this video, and let's be more productive together 😁\n\nTIMESTAMPS\n00:00 Intro\n00:39 Use \"Schedule Send\" Productively\n01:38 Use * as Search Operator\n02:35 Show Labels Only When Unread\n03:07 Easy Way to Create Filters\n04:01 Create Infinite Aliases\n05:11 Gmail Templates\n05:44 Search Another Person's Gmail\n06:50 Bonus Tip!\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero | Step-by-step Instructions - https://youtu.be/9ql1CQfxWxQ\n8 Google Calendar Tips for Productivity - https://youtu.be/4GqqptRI4Do\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #productivity #career", "Top 7 Gmail Tips for Productivity 📧", "DPWVEL4UNi0", 1, 462, false, "https://www.youtube.com/watch?v=DPWVEL4UNi0", "/downloads/Jeff Su/2021-02-24 Top 7 Gmail Tips for Productivity 📧/Top 7 Gmail Tips for Productivity 📧 [DPWVEL4UNi0].mp4", false, ~U[2021-02-24 00:00:02Z]] 16:48:39.194 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=530.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:39.195 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 16:48:39.196 [debug] QUERY OK source="media_items" db=0.5ms idle=7.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [161] 16:48:39.196 [info] Kicking off download for media item #161 (DPWVEL4UNi0) 16:48:39.201 [debug] QUERY OK source="tasks" db=0.3ms idle=5.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [165, 161, ~U[2026-04-23 14:48:39Z], ~U[2026-04-23 14:48:39Z]] 16:48:39.201 [debug] Current batch of media processed. Will check again in 1000ms 16:48:40.201 [debug] Current batch of media processed. Will check again in 1000ms 16:48:41.203 [debug] Current batch of media processed. Will check again in 1000ms 16:48:42.203 [debug] Current batch of media processed. Will check again in 1000ms 16:48:43.204 [debug] Current batch of media processed. Will check again in 1000ms 16:48:44.206 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Apparently adding \"productive\" in video titles is a thing now so here is my Productive Two Days in the life vlog: Chinese New Year Edition! 🧧\n\n❄️ But because I still want to be a special snowflake I decided to film TWO days instead of one. And for those of you celebrating outside of China, Happy Lunar New Year as well! \n\nThis is the first time in many years where I wasn't able to see my family during Chinese New Year's but I was extremely lucky to be temporarily \"adopted\" by some friends so I wouldn't be all alone during this festive holiday. \n\nI had a fun time chatting with family Chinese New Year's Eve, and hanging out with friends and colleagues in the evenings. \n\nFor those of you celebrating this holiday I hope you had fun, and everyone else - You're missing out on Red Packets 😉\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#CNY", "duration" => 332, "filename" => "/downloads/Jeff Su/2021-02-15 Productive TWO DAYS In The Life: Chinese New Year Edition/Productive TWO DAYS In The Life: Chinese New Year Edition [Qhtz_BX625Q].mp4", "id" => "Qhtz_BX625Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Qhtz_BX625Q", "playlist_index" => 162, "timestamp" => 1613350802, "title" => "Productive TWO DAYS In The Life: Chinese New Year Edition", "upload_date" => "20210215"} 16:48:44.207 [debug] QUERY OK source="sources" db=1.0ms idle=1934.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:44.208 [debug] QUERY OK source="sources" db=0.5ms idle=1936.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:44.209 [debug] QUERY OK source="media_items" db=0.8ms idle=1936.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-15 01:00:02Z], 1] 16:48:44.212 [debug] QUERY OK source="media_items" db=1.9ms idle=1539.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Apparently adding \"productive\" in video titles is a thing now so here is my Productive Two Days in the life vlog: Chinese New Year Edition! 🧧\n\n❄️ But because I still want to be a special snowflake I decided to film TWO days instead of one. And for those of you celebrating outside of China, Happy Lunar New Year as well! \n\nThis is the first time in many years where I wasn't able to see my family during Chinese New Year's but I was extremely lucky to be temporarily \"adopted\" by some friends so I wouldn't be all alone during this festive holiday. \n\nI had a fun time chatting with family Chinese New Year's Eve, and hanging out with friends and colleagues in the evenings. \n\nFor those of you celebrating this holiday I hope you had fun, and everyone else - You're missing out on Red Packets 😉\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#CNY", "Productive TWO DAYS In The Life: Chinese New Year Edition", "b582310c-27fb-4b64-9d0a-1ea3e8d2d1bd", false, "Qhtz_BX625Q", 1, [], 332, false, "https://www.youtube.com/watch?v=Qhtz_BX625Q", 162, "/downloads/Jeff Su/2021-02-15 Productive TWO DAYS In The Life: Chinese New Year Edition/Productive TWO DAYS In The Life: Chinese New Year Edition [Qhtz_BX625Q].mp4", false, false, 99, ~U[2021-02-15 01:00:02Z], ~U[2026-04-23 14:48:44Z], ~U[2026-04-23 14:48:44Z], "Apparently adding \"productive\" in video titles is a thing now so here is my Productive Two Days in the life vlog: Chinese New Year Edition! 🧧\n\n❄️ But because I still want to be a special snowflake I decided to film TWO days instead of one. And for those of you celebrating outside of China, Happy Lunar New Year as well! \n\nThis is the first time in many years where I wasn't able to see my family during Chinese New Year's but I was extremely lucky to be temporarily \"adopted\" by some friends so I wouldn't be all alone during this festive holiday. \n\nI had a fun time chatting with family Chinese New Year's Eve, and hanging out with friends and colleagues in the evenings. \n\nFor those of you celebrating this holiday I hope you had fun, and everyone else - You're missing out on Red Packets 😉\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#CNY", "Productive TWO DAYS In The Life: Chinese New Year Edition", "Qhtz_BX625Q", 1, 332, false, "https://www.youtube.com/watch?v=Qhtz_BX625Q", "/downloads/Jeff Su/2021-02-15 Productive TWO DAYS In The Life: Chinese New Year Edition/Productive TWO DAYS In The Life: Chinese New Year Edition [Qhtz_BX625Q].mp4", false, ~U[2021-02-15 01:00:02Z]] 16:48:44.214 [debug] QUERY OK source="sources" db=1.2ms idle=540.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:44.215 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=7.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:48:44.216 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=7.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [162] 16:48:44.217 [info] Kicking off download for media item #162 (Qhtz_BX625Q) 16:48:44.222 [debug] QUERY OK source="tasks" db=0.4ms queue=0.2ms idle=6.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [166, 162, ~U[2026-04-23 14:48:44Z], ~U[2026-04-23 14:48:44Z]] 16:48:44.222 [debug] Current batch of media processed. Will check again in 1000ms 16:48:45.222 [debug] Current batch of media processed. Will check again in 1000ms 16:48:46.223 [debug] Current batch of media processed. Will check again in 1000ms 16:48:47.225 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=037\n\nGet my Consulting Resume template: https://www.jeffsu.org/consulting-resume/\n\n🌟 Most resume advice from the internet is subjective since there is no \"one-size-fits-all.\" But using Austin Belcak's analysis of 125,484 resumes, I share 5 Golden Rules on how to Write an Incredible Resume in 2021.\n\nWhether you're making a resume for your first job, or improving upon a good resume you already have been using for years, it's very important to get the basics principles right before moving on to fancier resume writing tips. \n\n🤔 So how do write a resume or make a strong CV? Make sure your LinkedIn profile is added to your resume, match relevant keywords by using a Word Cloud on the job description, include measurable results to differentiate yourself from others, keep your resume between 475-600 words in length, and avoid buzzwords at all costs! Who knew writing a good resume would be so simple? 😉\n\nAll jokes aside, this video contains practical resume writing tips following each one of Austin's findings, and I walk you through each of the 5 Golden Rules so you know the do's and dont's about writing a resume 💯\n\nTIMESTAMPS\n00:00 Intro\n00:57 Quick Disclaimer\n01:06 The 5 Key Learnings\n01:59 Add LinkedIn Profile\n03:21 Include the \"Right\" Keywords\n04:41 Add Measurable Results\n06:02 The Right Length\n07:05 Buzzwords and Clichés\n07:55 Quick Summary\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Teal - https://get.tealhq.com/jeffsu\n\nRESOURCES I MENTION IN THE VIDEO\nMy LinkedIn Tips & Tricks Playlist - https://www.youtube.com/watch?v=BcfGWi8Qywk&list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nAustin's Study - https://cultivatedculture.com/resume-statistics/\nUdemy Report - https://business.udemy.com/resources/5-workplace-learning-trends-2020/\nCNBC Summary of Soft Skills - https://www.cnbc.com/2019/11/21/10-top-soft-skills-to-master-for-2020-if-you-want-a-raise-promotion-or-new-job.html\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#resumeTips #incredibleResume #jeffsu", "duration" => 517, "filename" => "/downloads/Jeff Su/2021-02-10 Write an Incredible Resume: 5 Golden Rules!/Write an Incredible Resume: 5 Golden Rules! [Tt08KmFfIYQ].mp4", "id" => "Tt08KmFfIYQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Tt08KmFfIYQ", "playlist_index" => 163, "timestamp" => 1612918803, "title" => "Write an Incredible Resume: 5 Golden Rules!", "upload_date" => "20210210"} 16:48:47.226 [debug] QUERY OK source="sources" db=0.4ms idle=1953.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:47.227 [debug] QUERY OK source="sources" db=0.3ms idle=1954.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:47.228 [debug] QUERY OK source="media_items" db=0.8ms idle=1955.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-10 01:00:03Z], 1] 16:48:47.241 [debug] QUERY OK source="media_items" db=11.5ms idle=1552.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=037\n\nGet my Consulting Resume template: https://www.jeffsu.org/consulting-resume/\n\n🌟 Most resume advice from the internet is subjective since there is no \"one-size-fits-all.\" But using Austin Belcak's analysis of 125,484 resumes, I share 5 Golden Rules on how to Write an Incredible Resume in 2021.\n\nWhether you're making a resume for your first job, or improving upon a good resume you already have been using for years, it's very important to get the basics principles right before moving on to fancier resume writing tips. \n\n🤔 So how do write a resume or make a strong CV? Make sure your LinkedIn profile is added to your resume, match relevant keywords by using a Word Cloud on the job description, include measurable results to differentiate yourself from others, keep your resume between 475-600 words in length, and avoid buzzwords at all costs! Who knew writing a good resume would be so simple? 😉\n\nAll jokes aside, this video contains practical resume writing tips following each one of Austin's findings, and I walk you through each of the 5 Golden Rules so you know the do's and dont's about writing a resume 💯\n\nTIMESTAMPS\n00:00 Intro\n00:57 Quick Disclaimer\n01:06 The 5 Key Learnings\n01:59 Add LinkedIn Profile\n03:21 Include the \"Right\" Keywords\n04:41 Add Measurable Results\n06:02 The Right Length\n07:05 Buzzwords and Clichés\n07:55 Quick Summary\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Teal - https://get.tealhq.com/jeffsu\n\nRESOURCES I MENTION IN THE VIDEO\nMy LinkedIn Tips & Tricks Playlist - https://www.youtube.com/watch?v=BcfGWi8Qywk&list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nAustin's Study - https://cultivatedculture.com/resume-statistics/\nUdemy Report - https://business.udemy.com/resources/5-workplace-learning-trends-2020/\nCNBC Summary of Soft Skills - https://www.cnbc.com/2019/11/21/10-top-soft-skills-to-master-for-2020-if-you-want-a-raise-promotion-or-new-job.html\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#resumeTips #incredibleResume #jeffsu", "Write an Incredible Resume: 5 Golden Rules!", "8b37e954-2d9f-4196-b280-ed8bb8b90f4a", false, "Tt08KmFfIYQ", 1, [], 517, false, "https://www.youtube.com/watch?v=Tt08KmFfIYQ", 163, "/downloads/Jeff Su/2021-02-10 Write an Incredible Resume: 5 Golden Rules!/Write an Incredible Resume: 5 Golden Rules! [Tt08KmFfIYQ].mp4", false, false, 99, ~U[2021-02-10 01:00:03Z], ~U[2026-04-23 14:48:47Z], ~U[2026-04-23 14:48:47Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=037\n\nGet my Consulting Resume template: https://www.jeffsu.org/consulting-resume/\n\n🌟 Most resume advice from the internet is subjective since there is no \"one-size-fits-all.\" But using Austin Belcak's analysis of 125,484 resumes, I share 5 Golden Rules on how to Write an Incredible Resume in 2021.\n\nWhether you're making a resume for your first job, or improving upon a good resume you already have been using for years, it's very important to get the basics principles right before moving on to fancier resume writing tips. \n\n🤔 So how do write a resume or make a strong CV? Make sure your LinkedIn profile is added to your resume, match relevant keywords by using a Word Cloud on the job description, include measurable results to differentiate yourself from others, keep your resume between 475-600 words in length, and avoid buzzwords at all costs! Who knew writing a good resume would be so simple? 😉\n\nAll jokes aside, this video contains practical resume writing tips following each one of Austin's findings, and I walk you through each of the 5 Golden Rules so you know the do's and dont's about writing a resume 💯\n\nTIMESTAMPS\n00:00 Intro\n00:57 Quick Disclaimer\n01:06 The 5 Key Learnings\n01:59 Add LinkedIn Profile\n03:21 Include the \"Right\" Keywords\n04:41 Add Measurable Results\n06:02 The Right Length\n07:05 Buzzwords and Clichés\n07:55 Quick Summary\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Teal - https://get.tealhq.com/jeffsu\n\nRESOURCES I MENTION IN THE VIDEO\nMy LinkedIn Tips & Tricks Playlist - https://www.youtube.com/watch?v=BcfGWi8Qywk&list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nAustin's Study - https://cultivatedculture.com/resume-statistics/\nUdemy Report - https://business.udemy.com/resources/5-workplace-learning-trends-2020/\nCNBC Summary of Soft Skills - https://www.cnbc.com/2019/11/21/10-top-soft-skills-to-master-for-2020-if-you-want-a-raise-promotion-or-new-job.html\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#resumeTips #incredibleResume #jeffsu", "Write an Incredible Resume: 5 Golden Rules!", "Tt08KmFfIYQ", 1, 517, false, "https://www.youtube.com/watch?v=Tt08KmFfIYQ", "/downloads/Jeff Su/2021-02-10 Write an Incredible Resume: 5 Golden Rules!/Write an Incredible Resume: 5 Golden Rules! [Tt08KmFfIYQ].mp4", false, ~U[2021-02-10 01:00:03Z]] 16:48:47.243 [debug] QUERY OK source="sources" db=1.3ms idle=563.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:47.244 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.1ms idle=16.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] 16:48:47.247 [debug] QUERY OK source="media_items" db=1.8ms idle=17.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 [163] 16:48:47.247 [info] Kicking off download for media item #163 (Tt08KmFfIYQ) 16:48:47.251 [debug] QUERY OK source="tasks" db=0.3ms idle=7.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [167, 163, ~U[2026-04-23 14:48:47Z], ~U[2026-04-23 14:48:47Z]] 16:48:47.251 [debug] Current batch of media processed. Will check again in 1000ms 16:48:48.251 [debug] Current batch of media processed. Will check again in 1000ms 16:48:48.280 [info] {"source":"oban","duration":863,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:48:49.252 [debug] Current batch of media processed. Will check again in 1000ms 16:48:50.253 [debug] Current batch of media processed. Will check again in 1000ms 16:48:51.254 [debug] Current batch of media processed. Will check again in 1000ms 16:48:52.256 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nTaking control of interview questions is not something job seekers are comfortable with, so in this video, I share 3 advanced tips to do just that for the interview question Tell Me About a Time You Failed along with a strong Sample Answer 💪\n\n💡 Tell Me About a Time You Failed, or Tell Me About a time You Made a Mistake, are both trying to figure out how self-aware you are, whether you're able to admit to mistakes, and your willingness to improve. However, many candidates fail to see that \"failure\" or \"mistakes\" are extremely ambiguous, it's often up to the interviewees themselves to define what a failure or mistake means to THEM \n\nI also share a real example from when I joined the Product Marketing team so you can see how I would answer \"tell me about a time you failed\" in real life. As you will see in my example mistake, I am very honest about what transpired, I take full responsibility, and most importantly, I share learnings and what I would do next time in a similar situation ✅\n\nTIMESTAMPS\n00:00 Intro\n00:43 The Basics\n01:20 Pro Tip #1 - Define Failure\n02:27 Pro Tip #2 - Focus on One Thing\n03:15 Pro Tip #3 - End with a Learning\n04:02 Sample Answer\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nCARL Interview Method - https://youtu.be/gZ2354BH0a0\nCommon Interview Questions and Answers - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#failure #interviewtips #jobSearch", "duration" => 381, "filename" => "/downloads/Jeff Su/2021-02-02 Tell Me About a Time You Failed (Sample Answer included)/Tell Me About a Time You Failed (Sample Answer included) [yidXECtZCOg].mp4", "id" => "yidXECtZCOg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yidXECtZCOg", "playlist_index" => 164, "timestamp" => 1612228504, "title" => "Tell Me About a Time You Failed (Sample Answer included)", "upload_date" => "20210202"} 16:48:52.257 [debug] QUERY OK source="sources" db=0.5ms idle=1984.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:52.257 [debug] QUERY OK source="sources" db=0.2ms idle=1985.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:52.259 [debug] QUERY OK source="media_items" db=0.9ms idle=1986.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-02 01:15:04Z], 1] 16:48:52.262 [debug] QUERY OK source="media_items" db=2.2ms idle=1573.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nTaking control of interview questions is not something job seekers are comfortable with, so in this video, I share 3 advanced tips to do just that for the interview question Tell Me About a Time You Failed along with a strong Sample Answer 💪\n\n💡 Tell Me About a Time You Failed, or Tell Me About a time You Made a Mistake, are both trying to figure out how self-aware you are, whether you're able to admit to mistakes, and your willingness to improve. However, many candidates fail to see that \"failure\" or \"mistakes\" are extremely ambiguous, it's often up to the interviewees themselves to define what a failure or mistake means to THEM \n\nI also share a real example from when I joined the Product Marketing team so you can see how I would answer \"tell me about a time you failed\" in real life. As you will see in my example mistake, I am very honest about what transpired, I take full responsibility, and most importantly, I share learnings and what I would do next time in a similar situation ✅\n\nTIMESTAMPS\n00:00 Intro\n00:43 The Basics\n01:20 Pro Tip #1 - Define Failure\n02:27 Pro Tip #2 - Focus on One Thing\n03:15 Pro Tip #3 - End with a Learning\n04:02 Sample Answer\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nCARL Interview Method - https://youtu.be/gZ2354BH0a0\nCommon Interview Questions and Answers - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#failure #interviewtips #jobSearch", "Tell Me About a Time You Failed (Sample Answer included)", "57a999b0-92d7-4f7b-bc6d-9377c60d0297", false, "yidXECtZCOg", 1, [], 381, false, "https://www.youtube.com/watch?v=yidXECtZCOg", 164, "/downloads/Jeff Su/2021-02-02 Tell Me About a Time You Failed (Sample Answer included)/Tell Me About a Time You Failed (Sample Answer included) [yidXECtZCOg].mp4", false, false, 99, ~U[2021-02-02 01:15:04Z], ~U[2026-04-23 14:48:52Z], ~U[2026-04-23 14:48:52Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nTaking control of interview questions is not something job seekers are comfortable with, so in this video, I share 3 advanced tips to do just that for the interview question Tell Me About a Time You Failed along with a strong Sample Answer 💪\n\n💡 Tell Me About a Time You Failed, or Tell Me About a time You Made a Mistake, are both trying to figure out how self-aware you are, whether you're able to admit to mistakes, and your willingness to improve. However, many candidates fail to see that \"failure\" or \"mistakes\" are extremely ambiguous, it's often up to the interviewees themselves to define what a failure or mistake means to THEM \n\nI also share a real example from when I joined the Product Marketing team so you can see how I would answer \"tell me about a time you failed\" in real life. As you will see in my example mistake, I am very honest about what transpired, I take full responsibility, and most importantly, I share learnings and what I would do next time in a similar situation ✅\n\nTIMESTAMPS\n00:00 Intro\n00:43 The Basics\n01:20 Pro Tip #1 - Define Failure\n02:27 Pro Tip #2 - Focus on One Thing\n03:15 Pro Tip #3 - End with a Learning\n04:02 Sample Answer\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nCARL Interview Method - https://youtu.be/gZ2354BH0a0\nCommon Interview Questions and Answers - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#failure #interviewtips #jobSearch", "Tell Me About a Time You Failed (Sample Answer included)", "yidXECtZCOg", 1, 381, false, "https://www.youtube.com/watch?v=yidXECtZCOg", "/downloads/Jeff Su/2021-02-02 Tell Me About a Time You Failed (Sample Answer included)/Tell Me About a Time You Failed (Sample Answer included) [yidXECtZCOg].mp4", false, ~U[2021-02-02 01:15:04Z]] 16:48:52.263 [debug] QUERY OK source="sources" db=0.4ms idle=574.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:48:52.264 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:48:52.264 [debug] QUERY OK source="media_items" db=0.3ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [164] 16:48:52.264 [info] Kicking off download for media item #164 (yidXECtZCOg) 16:48:52.268 [debug] QUERY OK source="tasks" db=0.3ms idle=4.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [168, 164, ~U[2026-04-23 14:48:52Z], ~U[2026-04-23 14:48:52Z]] 16:48:52.268 [debug] Current batch of media processed. Will check again in 1000ms 16:48:53.268 [debug] Current batch of media processed. Will check again in 1000ms 16:48:54.269 [debug] Current batch of media processed. Will check again in 1000ms 16:48:54.988 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=v-9CVpuoIEo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/08/0f/080f38d4d7be595c34b7d4a6e79d6e380e47786b25b8f09312b6ce19d9002c6f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:48:55.027 [debug] Running yt-dlp command for action: download_thumbnail 16:48:55.029 [debug] QUERY OK source="settings" db=0.3ms idle=1757.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:55.030 [debug] QUERY OK source="settings" db=0.4ms idle=1757.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:55.030 [debug] QUERY OK source="settings" db=0.4ms idle=1758.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:55.031 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=v-9CVpuoIEo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/36/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/32/98/3298d40a9e12b9510b16b9c4e5ef9b6e41b39c34f07767a3080f810ad84da1c5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:48:55.270 [debug] Current batch of media processed. Will check again in 1000ms 16:48:56.272 [debug] Current batch of media processed. Will check again in 1000ms 16:48:57.273 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Join me in a day in the life of a Product Marketer: Work From Home Edition! Today I take you through how a typical WFH day looks like for me in Shanghai, China. While I am extremely lucky to have the option to go back to the office, there are days where working from home feels like the right thing to do!\n\nIn this casual vlog, I share some of the work I do as a Product Marketing Manager (PMM), my journey to building bigger pecs, and how strong our salespeople really are at influencing others 😉. \n\nCome for the VLOG, stay for the humor! Enjoy 🙌🏻\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#dayInTheLife #WFH #ProductMarketer", "duration" => 482, "filename" => "/downloads/Jeff Su/2021-01-27 A Day in the Life of a Product Marketer (Work From Home Edition)/A Day in the Life of a Product Marketer (Work From Home Edition) [k3tk9IbLJok].mp4", "id" => "k3tk9IbLJok", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=k3tk9IbLJok", "playlist_index" => 165, "timestamp" => 1611709212, "title" => "A Day in the Life of a Product Marketer (Work From Home Edition)", "upload_date" => "20210127"} 16:48:57.274 [debug] QUERY OK source="sources" db=0.3ms idle=1000.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:48:57.274 [debug] QUERY OK source="sources" db=0.3ms idle=1001.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:57.276 [debug] QUERY OK source="media_items" db=1.0ms idle=1001.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-01-27 01:00:12Z], 1] 16:48:57.278 [debug] QUERY OK source="media_items" db=1.7ms idle=578.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join me in a day in the life of a Product Marketer: Work From Home Edition! Today I take you through how a typical WFH day looks like for me in Shanghai, China. While I am extremely lucky to have the option to go back to the office, there are days where working from home feels like the right thing to do!\n\nIn this casual vlog, I share some of the work I do as a Product Marketing Manager (PMM), my journey to building bigger pecs, and how strong our salespeople really are at influencing others 😉. \n\nCome for the VLOG, stay for the humor! Enjoy 🙌🏻\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#dayInTheLife #WFH #ProductMarketer", "A Day in the Life of a Product Marketer (Work From Home Edition)", "4864e011-bda7-4dc4-86b7-17a992f0def6", false, "k3tk9IbLJok", 1, [], 482, false, "https://www.youtube.com/watch?v=k3tk9IbLJok", 165, "/downloads/Jeff Su/2021-01-27 A Day in the Life of a Product Marketer (Work From Home Edition)/A Day in the Life of a Product Marketer (Work From Home Edition) [k3tk9IbLJok].mp4", false, false, 99, ~U[2021-01-27 01:00:12Z], ~U[2026-04-23 14:48:57Z], ~U[2026-04-23 14:48:57Z], "Join me in a day in the life of a Product Marketer: Work From Home Edition! Today I take you through how a typical WFH day looks like for me in Shanghai, China. While I am extremely lucky to have the option to go back to the office, there are days where working from home feels like the right thing to do!\n\nIn this casual vlog, I share some of the work I do as a Product Marketing Manager (PMM), my journey to building bigger pecs, and how strong our salespeople really are at influencing others 😉. \n\nCome for the VLOG, stay for the humor! Enjoy 🙌🏻\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#dayInTheLife #WFH #ProductMarketer", "A Day in the Life of a Product Marketer (Work From Home Edition)", "k3tk9IbLJok", 1, 482, false, "https://www.youtube.com/watch?v=k3tk9IbLJok", "/downloads/Jeff Su/2021-01-27 A Day in the Life of a Product Marketer (Work From Home Edition)/A Day in the Life of a Product Marketer (Work From Home Edition) [k3tk9IbLJok].mp4", false, ~U[2021-01-27 01:00:12Z]] 16:48:57.279 [debug] QUERY OK source="sources" db=0.3ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:48:57.280 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:48:57.280 [debug] QUERY OK source="media_items" db=0.4ms 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 [165] 16:48:57.280 [info] Kicking off download for media item #165 (k3tk9IbLJok) 16:48:57.285 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=5.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [169, 165, ~U[2026-04-23 14:48:57Z], ~U[2026-04-23 14:48:57Z]] 16:48:57.285 [debug] Current batch of media processed. Will check again in 1000ms 16:48:58.285 [debug] Current batch of media processed. Will check again in 1000ms 16:48:58.333 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=N0hod3YFCy4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/2d/38/2d3846a450124fe31518500f5696e7bee38ab63614637574710343fdb310ca1e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:48:58.379 [debug] Running yt-dlp command for action: download_thumbnail 16:48:58.385 [debug] QUERY OK source="settings" db=3.7ms queue=0.2ms idle=1100.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:58.385 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=1101.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:58.387 [debug] QUERY OK source="settings" db=0.9ms idle=1101.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:48:58.387 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=N0hod3YFCy4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/35/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/05/8f/058fd99e541ccf8f5c06cd5eba9c2c52ce841953578eade06cc8fc763ff5b5ca.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:48:59.286 [debug] Current batch of media processed. Will check again in 1000ms 16:49:00.218 [info] {"source":"oban","duration":305,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:49:00.287 [debug] Current batch of media processed. Will check again in 1000ms 16:49:01.171 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=v-9CVpuoIEo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/36/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/32/98/3298d40a9e12b9510b16b9c4e5ef9b6e41b39c34f07767a3080f810ad84da1c5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:49:01.172 [debug] QUERY OK db=0.1ms idle=1467.5ms begin [] 16:49:01.173 [debug] QUERY OK source="media_items" db=1.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:48:55Z], "/downloads/Jeff Su/2024-10-29 20 Gmail Settings EVERYONE Needs to Change!/20 Gmail Settings EVERYONE Needs to Change! [v-9CVpuoIEo].mp4", "/downloads/Jeff Su/2024-10-29 20 Gmail Settings EVERYONE Needs to Change!/20 Gmail Settings EVERYONE Needs to Change! [v-9CVpuoIEo].info.json", "/downloads/Jeff Su/2024-10-29 20 Gmail Settings EVERYONE Needs to Change!/20 Gmail Settings EVERYONE Needs to Change! [v-9CVpuoIEo].nfo", "/downloads/Jeff Su/2024-10-29 20 Gmail Settings EVERYONE Needs to Change!/20 Gmail Settings EVERYONE Needs to Change! [v-9CVpuoIEo]-thumb.jpg", ~U[2026-04-23 14:49:01Z], 36] 16:49:01.174 [debug] QUERY OK source="media_metadata" db=0.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/36/metadata.json.gz", "/config/metadata/media_items/36/thumbnail.jpg", 36, ~U[2026-04-23 14:49:01Z], ~U[2026-04-23 14:49:01Z]] 16:49:01.175 [debug] QUERY OK db=0.3ms commit [] 16:49:01.177 [debug] QUERY OK source="media_items" db=1.5ms idle=957.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [25018674, ~U[2026-04-23 14:49:01Z], 36] 16:49:01.177 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:49:01.177 [info] {"args":{"id":36},"id":40,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":32184072,"event":"job:stop","queue_time":518991844,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:49:01.184 [info] {"args":{"id":37},"id":41,"meta":{},"system_time":1776955741184786417,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:49:01.185 [debug] QUERY OK source="media_items" db=0.2ms idle=478.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" = ?) [37] 16:49:01.185 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:49:01.186 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=10.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:01.187 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=9.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] 16:49:01.188 [debug] QUERY OK source="media_items" db=0.3ms idle=9.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [37] 16:49:01.189 [debug] QUERY OK source="media_metadata" db=0.1ms idle=4.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [37] 16:49:01.189 [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] 16:49:01.190 [debug] QUERY OK source="settings" db=0.1ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:01.190 [debug] QUERY OK source="settings" db=0.2ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:01.191 [debug] Running yt-dlp command for action: get_downloadable_status 16:49:01.192 [debug] QUERY OK source="settings" db=0.1ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:01.192 [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 [] 16:49:01.192 [debug] QUERY OK source="settings" db=0.2ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:01.193 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=EDkaQj7K5_c --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/14/90/1490f8e00a068b6d6c71f91478bee61dc7abc9aa5af03f1c6b4ad7ae22b3c4de.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:49:01.289 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=010\n\n99% of us use Google Calendar in some way or fashion. But are we using it as productively as possible? In this video I share 8 Google Calendar Tips for Productivity for intermediate and advanced users of this amazing tool.\n\nThere are so many gCal tips and little-known features suited for various scenarios that only a productivity nerd like me would be able to uncover, and share, them all 😇. Not only will I go through how to use some of these google calendar features for specific situations, but I'll also go through keyboard shortcuts that will save you tons of time in the long run. \n\nYou'll learn simple setting tweaks such as display the World Clock and Secondary Time Zones on Google Calendar, as well as more advanced settings such as how to combine Gmail filters with invisible calendar events to make sure you never miss an important action item again! \n\nTIMESTAMPS\n00:00 Intro\n00:40 Tip 1 - Create new event quickly\n01:20 Tip 2 - Change default reminder time\n02:02 Tip 3 - Grant modify rights by default\n02:50 Tip 4 - Display multiple time zones\n03:49 Tip 5 - Add Invisible Events\n04:21 Tip 6 - Gmail filters with Calendar events\n05:29 Tip 7 - Receive daily agenda \n05:59 Tip 8 - Advanced Calendar search\n06:53 Bonus Tip!\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\nEmojipedia - https://emojipedia.org/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gCal #productivity #productivitytips #calendar #timemanagement", "duration" => 499, "filename" => "/downloads/Jeff Su/2021-01-20 8 Google Calendar Settings Everyone Must Turn ON!/8 Google Calendar Settings Everyone Must Turn ON! [4GqqptRI4Do].mp4", "id" => "4GqqptRI4Do", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4GqqptRI4Do", "playlist_index" => 166, "timestamp" => 1611104400, "title" => "8 Google Calendar Settings Everyone Must Turn ON!", "upload_date" => "20210120"} 16:49:01.290 [debug] QUERY OK source="sources" db=0.3ms idle=99.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:49:01.290 [debug] QUERY OK source="sources" db=0.2ms idle=99.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:01.291 [debug] QUERY OK source="media_items" db=0.8ms idle=98.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-01-20 01:00:00Z], 1] 16:49:01.295 [debug] QUERY OK source="media_items" db=2.0ms idle=99.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=010\n\n99% of us use Google Calendar in some way or fashion. But are we using it as productively as possible? In this video I share 8 Google Calendar Tips for Productivity for intermediate and advanced users of this amazing tool.\n\nThere are so many gCal tips and little-known features suited for various scenarios that only a productivity nerd like me would be able to uncover, and share, them all 😇. Not only will I go through how to use some of these google calendar features for specific situations, but I'll also go through keyboard shortcuts that will save you tons of time in the long run. \n\nYou'll learn simple setting tweaks such as display the World Clock and Secondary Time Zones on Google Calendar, as well as more advanced settings such as how to combine Gmail filters with invisible calendar events to make sure you never miss an important action item again! \n\nTIMESTAMPS\n00:00 Intro\n00:40 Tip 1 - Create new event quickly\n01:20 Tip 2 - Change default reminder time\n02:02 Tip 3 - Grant modify rights by default\n02:50 Tip 4 - Display multiple time zones\n03:49 Tip 5 - Add Invisible Events\n04:21 Tip 6 - Gmail filters with Calendar events\n05:29 Tip 7 - Receive daily agenda \n05:59 Tip 8 - Advanced Calendar search\n06:53 Bonus Tip!\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\nEmojipedia - https://emojipedia.org/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gCal #productivity #productivitytips #calendar #timemanagement", "8 Google Calendar Settings Everyone Must Turn ON!", "5f7c7ee2-5a4c-4818-9e07-845767c2012b", false, "4GqqptRI4Do", 1, [], 499, false, "https://www.youtube.com/watch?v=4GqqptRI4Do", 166, "/downloads/Jeff Su/2021-01-20 8 Google Calendar Settings Everyone Must Turn ON!/8 Google Calendar Settings Everyone Must Turn ON! [4GqqptRI4Do].mp4", false, false, 99, ~U[2021-01-20 01:00:00Z], ~U[2026-04-23 14:49:01Z], ~U[2026-04-23 14:49:01Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=010\n\n99% of us use Google Calendar in some way or fashion. But are we using it as productively as possible? In this video I share 8 Google Calendar Tips for Productivity for intermediate and advanced users of this amazing tool.\n\nThere are so many gCal tips and little-known features suited for various scenarios that only a productivity nerd like me would be able to uncover, and share, them all 😇. Not only will I go through how to use some of these google calendar features for specific situations, but I'll also go through keyboard shortcuts that will save you tons of time in the long run. \n\nYou'll learn simple setting tweaks such as display the World Clock and Secondary Time Zones on Google Calendar, as well as more advanced settings such as how to combine Gmail filters with invisible calendar events to make sure you never miss an important action item again! \n\nTIMESTAMPS\n00:00 Intro\n00:40 Tip 1 - Create new event quickly\n01:20 Tip 2 - Change default reminder time\n02:02 Tip 3 - Grant modify rights by default\n02:50 Tip 4 - Display multiple time zones\n03:49 Tip 5 - Add Invisible Events\n04:21 Tip 6 - Gmail filters with Calendar events\n05:29 Tip 7 - Receive daily agenda \n05:59 Tip 8 - Advanced Calendar search\n06:53 Bonus Tip!\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\nEmojipedia - https://emojipedia.org/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gCal #productivity #productivitytips #calendar #timemanagement", "8 Google Calendar Settings Everyone Must Turn ON!", "4GqqptRI4Do", 1, 499, false, "https://www.youtube.com/watch?v=4GqqptRI4Do", "/downloads/Jeff Su/2021-01-20 8 Google Calendar Settings Everyone Must Turn ON!/8 Google Calendar Settings Everyone Must Turn ON! [4GqqptRI4Do].mp4", false, ~U[2021-01-20 01:00:00Z]] 16:49:01.295 [debug] QUERY OK source="sources" db=0.2ms idle=102.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:01.296 [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] 16:49:01.297 [debug] QUERY OK source="media_items" db=0.3ms idle=5.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [166] 16:49:01.297 [info] Kicking off download for media item #166 (4GqqptRI4Do) 16:49:01.300 [debug] QUERY OK source="tasks" db=0.2ms idle=4.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [170, 166, ~U[2026-04-23 14:49:01Z], ~U[2026-04-23 14:49:01Z]] 16:49:01.300 [debug] Current batch of media processed. Will check again in 1000ms 16:49:02.301 [debug] Current batch of media processed. Will check again in 1000ms 16:49:03.301 [debug] Current batch of media processed. Will check again in 1000ms 16:49:04.302 [debug] Current batch of media processed. Will check again in 1000ms 16:49:05.085 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=N0hod3YFCy4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/35/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/05/8f/058fd99e541ccf8f5c06cd5eba9c2c52ce841953578eade06cc8fc763ff5b5ca.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:49:05.086 [debug] QUERY OK db=0.3ms idle=1812.9ms begin [] 16:49:05.089 [debug] QUERY OK source="media_items" db=3.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:48:58Z], "/downloads/Jeff Su/2024-11-12 Notion was HARD until I Learned These 8 Tips!/Notion was HARD until I Learned These 8 Tips! [N0hod3YFCy4].mp4", "/downloads/Jeff Su/2024-11-12 Notion was HARD until I Learned These 8 Tips!/Notion was HARD until I Learned These 8 Tips! [N0hod3YFCy4].info.json", "/downloads/Jeff Su/2024-11-12 Notion was HARD until I Learned These 8 Tips!/Notion was HARD until I Learned These 8 Tips! [N0hod3YFCy4].nfo", "/downloads/Jeff Su/2024-11-12 Notion was HARD until I Learned These 8 Tips!/Notion was HARD until I Learned These 8 Tips! [N0hod3YFCy4]-thumb.jpg", ~U[2026-04-23 14:49:05Z], 35] 16:49:05.091 [debug] QUERY OK source="media_metadata" db=0.9ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/35/metadata.json.gz", "/config/metadata/media_items/35/thumbnail.jpg", 35, ~U[2026-04-23 14:49:05Z], ~U[2026-04-23 14:49:05Z]] 16:49:05.091 [debug] QUERY OK db=0.3ms commit [] 16:49:05.093 [debug] QUERY OK source="media_items" db=1.8ms idle=1818.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [36798332, ~U[2026-04-23 14:49:05Z], 35] 16:49:05.094 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:49:05.095 [info] {"args":{"id":35},"id":39,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":38474008,"event":"job:stop","queue_time":521618884,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:49:05.103 [info] {"args":{"id":38},"id":42,"meta":{},"system_time":1776955745103047410,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:49:05.104 [debug] QUERY OK source="media_items" db=0.6ms idle=388.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" = ?) [38] 16:49:05.104 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:49:05.104 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [1] 16:49:05.105 [debug] QUERY OK source="media_profiles" db=0.5ms idle=11.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] 16:49:05.106 [debug] QUERY OK source="media_items" db=0.4ms idle=10.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [38] 16:49:05.107 [debug] QUERY OK source="media_metadata" db=0.2ms idle=4.4ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [38] 16:49:05.108 [debug] QUERY OK source="media_profiles" db=0.9ms 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] 16:49:05.109 [debug] QUERY OK source="settings" db=0.1ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:05.109 [debug] QUERY OK source="settings" db=0.1ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:05.110 [debug] Running yt-dlp command for action: get_downloadable_status 16:49:05.111 [debug] QUERY OK source="settings" db=0.1ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:05.111 [debug] QUERY OK source="settings" db=0.1ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:05.111 [debug] QUERY OK source="settings" db=0.2ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:05.112 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=POZorIoSK5c --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/18/ce/18ce6e212f4a8f88f8eaa7585578579b0852aacb68cbeff59f876c5f268d6664.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:49:05.304 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=033\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nContrary to popular belief, a \"fairy tale ending\" is NOT what interviewers are looking for when they ask you \"Tell me a time You Handled a Difficult Situation.\" Even if you talk about how you resolved a conflict perfectly (which rarely happens), interviewers will often follow up with probing questions in order to find out your thought process. \n\nIn order to provide a meaningful answer to \"tell me about a time you handled a difficult situation, conflict, or challenge,\" you want to make sure you highlight the following two things in your answer:\n\n(1) You are able to listen to, and accept, other people’s point of views even if you have already formed your own opinion and;\n\n(2) You are able to put the needs of the business above your own when a conflict does arise in the workplace\n\nWhether you decide to talk about how you handled a workplace conflict, or a difficult situation outside of the professional environment, as long as you touch on those two areas using the CARL method, you will be good to go! This video also includes a full sample answer so you can come back and reference it at any time. \n\nTIMESTAMPS\n00:00 Intro\n00:57 What the interviewer is REALLY looking for\n01:28 Hear everyone else out first\n02:36 Put needs of business above your own\n03:21 How to structure your answer\n04:28 Full sample answer\n06:29 Summary and Recap\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWhy CARL is better than STAR Method - https://youtu.be/gZ2354BH0a0\nCommon Interview Questions and Answers - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\nHarvard Business Review Study - https://hbr.org/2017/09/the-best-senior-teams-thrive-on-disagreement\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewTips #newJob #success #jeffsu", "duration" => 423, "filename" => "/downloads/Jeff Su/2021-01-13 Tell me a time You Handled a Difficult Situation (Interview Question)/Tell me a time You Handled a Difficult Situation (Interview Question) [-7OIk2ZXBCg].mp4", "id" => "-7OIk2ZXBCg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-7OIk2ZXBCg", "playlist_index" => 167, "timestamp" => 1610499600, "title" => "Tell me a time You Handled a Difficult Situation (Interview Question)", "upload_date" => "20210113"} 16:49:05.305 [debug] QUERY OK source="sources" db=1.0ms idle=195.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:49:05.307 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=196.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:05.308 [debug] QUERY OK source="media_items" db=1.0ms idle=196.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-01-13 01:00:00Z], 1] 16:49:05.312 [debug] QUERY OK source="media_items" db=2.4ms idle=197.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=033\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nContrary to popular belief, a \"fairy tale ending\" is NOT what interviewers are looking for when they ask you \"Tell me a time You Handled a Difficult Situation.\" Even if you talk about how you resolved a conflict perfectly (which rarely happens), interviewers will often follow up with probing questions in order to find out your thought process. \n\nIn order to provide a meaningful answer to \"tell me about a time you handled a difficult situation, conflict, or challenge,\" you want to make sure you highlight the following two things in your answer:\n\n(1) You are able to listen to, and accept, other people’s point of views even if you have already formed your own opinion and;\n\n(2) You are able to put the needs of the business above your own when a conflict does arise in the workplace\n\nWhether you decide to talk about how you handled a workplace conflict, or a difficult situation outside of the professional environment, as long as you touch on those two areas using the CARL method, you will be good to go! This video also includes a full sample answer so you can come back and reference it at any time. \n\nTIMESTAMPS\n00:00 Intro\n00:57 What the interviewer is REALLY looking for\n01:28 Hear everyone else out first\n02:36 Put needs of business above your own\n03:21 How to structure your answer\n04:28 Full sample answer\n06:29 Summary and Recap\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWhy CARL is better than STAR Method - https://youtu.be/gZ2354BH0a0\nCommon Interview Questions and Answers - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\nHarvard Business Review Study - https://hbr.org/2017/09/the-best-senior-teams-thrive-on-disagreement\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewTips #newJob #success #jeffsu", "Tell me a time You Handled a Difficult Situation (Interview Question)", "be5adf00-2b07-4472-bc03-861d727d9f53", false, "-7OIk2ZXBCg", 1, [], 423, false, "https://www.youtube.com/watch?v=-7OIk2ZXBCg", 167, "/downloads/Jeff Su/2021-01-13 Tell me a time You Handled a Difficult Situation (Interview Question)/Tell me a time You Handled a Difficult Situation (Interview Question) [-7OIk2ZXBCg].mp4", false, false, 99, ~U[2021-01-13 01:00:00Z], ~U[2026-04-23 14:49:05Z], ~U[2026-04-23 14:49:05Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=033\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nContrary to popular belief, a \"fairy tale ending\" is NOT what interviewers are looking for when they ask you \"Tell me a time You Handled a Difficult Situation.\" Even if you talk about how you resolved a conflict perfectly (which rarely happens), interviewers will often follow up with probing questions in order to find out your thought process. \n\nIn order to provide a meaningful answer to \"tell me about a time you handled a difficult situation, conflict, or challenge,\" you want to make sure you highlight the following two things in your answer:\n\n(1) You are able to listen to, and accept, other people’s point of views even if you have already formed your own opinion and;\n\n(2) You are able to put the needs of the business above your own when a conflict does arise in the workplace\n\nWhether you decide to talk about how you handled a workplace conflict, or a difficult situation outside of the professional environment, as long as you touch on those two areas using the CARL method, you will be good to go! This video also includes a full sample answer so you can come back and reference it at any time. \n\nTIMESTAMPS\n00:00 Intro\n00:57 What the interviewer is REALLY looking for\n01:28 Hear everyone else out first\n02:36 Put needs of business above your own\n03:21 How to structure your answer\n04:28 Full sample answer\n06:29 Summary and Recap\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWhy CARL is better than STAR Method - https://youtu.be/gZ2354BH0a0\nCommon Interview Questions and Answers - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\nHarvard Business Review Study - https://hbr.org/2017/09/the-best-senior-teams-thrive-on-disagreement\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewTips #newJob #success #jeffsu", "Tell me a time You Handled a Difficult Situation (Interview Question)", "-7OIk2ZXBCg", 1, 423, false, "https://www.youtube.com/watch?v=-7OIk2ZXBCg", "/downloads/Jeff Su/2021-01-13 Tell me a time You Handled a Difficult Situation (Interview Question)/Tell me a time (truncated) 16:49:05.316 [debug] QUERY OK source="sources" db=3.1ms queue=0.7ms idle=200.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:05.317 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=11.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:49:05.318 [debug] QUERY OK source="media_items" db=0.4ms 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 [167] 16:49:05.318 [info] Kicking off download for media item #167 (-7OIk2ZXBCg) 16:49:05.324 [debug] QUERY OK source="tasks" db=0.2ms idle=6.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [171, 167, ~U[2026-04-23 14:49:05Z], ~U[2026-04-23 14:49:05Z]] 16:49:05.324 [debug] Current batch of media processed. Will check again in 1000ms 16:49:06.324 [debug] Current batch of media processed. Will check again in 1000ms 16:49:06.989 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=EDkaQj7K5_c --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/14/90/1490f8e00a068b6d6c71f91478bee61dc7abc9aa5af03f1c6b4ad7ae22b3c4de.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:49:06.989 [debug] Running yt-dlp command for action: download 16:49:06.990 [debug] QUERY OK source="settings" db=0.4ms idle=1667.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:06.991 [debug] QUERY OK source="settings" db=0.4ms idle=1667.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:06.991 [debug] QUERY OK source="settings" db=0.3ms idle=1667.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:06.992 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=EDkaQj7K5_c --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/50/c5/50c506ee54c368cf4f7e37f55f4b504caf8bb215c72f3794495bb1cf6c5fa23f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:49:07.325 [debug] Current batch of media processed. Will check again in 1000ms 16:49:08.326 [debug] Current batch of media processed. Will check again in 1000ms 16:49:09.328 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=032\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nToo honest and they won't hire you. Too vague and they'll not believe you. In this video I show you how to answer the dreaded interview question \"Why are you Leaving your Current Job?\" by providing healthy, positive, yet honest reasons as to why you might be leaving a job. \n\nFirst, you want to prepare 1-2 sentences ahead of time that answers the why are you leaving your job question up front. Don't hide or avoid it, interviewers are wise to those tactics already. Make sure you stick with 2 sentences maximum because it's easy to start ranting and go off on a tangent during the heat of the moment (especially if you're having a particularly negative experience with your current employer).\n\nThen you want to show you're not making stuff up by giving a concrete example as to why you are leaving your current job, then smoothly transition into talking about the new role you're applying for.\n\nFinally, you talk about how the problems you might be facing at your current job will be a non-issue at the new role because you have already done your research and you know what to expect in the new job. A combination of these will give you the best answer to why did you leave your current job or variations such as why did you leave your last job.\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n00:49 What \"ETP\" Stands For\n01:28 How to Structure \"E\"\n02:55 Sample Answer for \"E\"\n03:09 How to Structure \"T\"\n03:35 Sample Answer for \"T\"\n04:31 How to Structure \"P\"\n05:04 Full Sample Answer using \"ETP\"\n06:46 Summary\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Research Before an Interview - https://youtu.be/8MYHrih6syw\nCommon Interview Questions and Answers Playlist - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewTips #whyAreYouLeaving #jobsearch", "duration" => 436, "filename" => "/downloads/Jeff Su/2021-01-06 Why Are You Leaving Your Current Job? How to Answer Correctly/Why Are You Leaving Your Current Job? How to Answer Correctly [QSPGdAvnUv4].mp4", "id" => "QSPGdAvnUv4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=QSPGdAvnUv4", "playlist_index" => 168, "timestamp" => 1609905602, "title" => "Why Are You Leaving Your Current Job? How to Answer Correctly", "upload_date" => "20210106"} 16:49:09.329 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1055.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:49:09.329 [debug] QUERY OK source="sources" db=0.2ms idle=1056.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:09.331 [debug] QUERY OK source="media_items" db=0.9ms idle=1057.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-01-06 04:00:02Z], 1] 16:49:09.336 [debug] QUERY OK source="media_items" db=3.8ms idle=597.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=032\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nToo honest and they won't hire you. Too vague and they'll not believe you. In this video I show you how to answer the dreaded interview question \"Why are you Leaving your Current Job?\" by providing healthy, positive, yet honest reasons as to why you might be leaving a job. \n\nFirst, you want to prepare 1-2 sentences ahead of time that answers the why are you leaving your job question up front. Don't hide or avoid it, interviewers are wise to those tactics already. Make sure you stick with 2 sentences maximum because it's easy to start ranting and go off on a tangent during the heat of the moment (especially if you're having a particularly negative experience with your current employer).\n\nThen you want to show you're not making stuff up by giving a concrete example as to why you are leaving your current job, then smoothly transition into talking about the new role you're applying for.\n\nFinally, you talk about how the problems you might be facing at your current job will be a non-issue at the new role because you have already done your research and you know what to expect in the new job. A combination of these will give you the best answer to why did you leave your current job or variations such as why did you leave your last job.\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n00:49 What \"ETP\" Stands For\n01:28 How to Structure \"E\"\n02:55 Sample Answer for \"E\"\n03:09 How to Structure \"T\"\n03:35 Sample Answer for \"T\"\n04:31 How to Structure \"P\"\n05:04 Full Sample Answer using \"ETP\"\n06:46 Summary\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Research Before an Interview - https://youtu.be/8MYHrih6syw\nCommon Interview Questions and Answers Playlist - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewTips #whyAreYouLeaving #jobsearch", "Why Are You Leaving Your Current Job? How to Answer Correctly", "ad8eb0c6-e84d-4d37-9e73-a4e795220962", false, "QSPGdAvnUv4", 1, [], 436, false, "https://www.youtube.com/watch?v=QSPGdAvnUv4", 168, "/downloads/Jeff Su/2021-01-06 Why Are You Leaving Your Current Job? How to Answer Correctly/Why Are You Leaving Your Current Job? How to Answer Correctly [QSPGdAvnUv4].mp4", false, false, 99, ~U[2021-01-06 04:00:02Z], ~U[2026-04-23 14:49:09Z], ~U[2026-04-23 14:49:09Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=032\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nToo honest and they won't hire you. Too vague and they'll not believe you. In this video I show you how to answer the dreaded interview question \"Why are you Leaving your Current Job?\" by providing healthy, positive, yet honest reasons as to why you might be leaving a job. \n\nFirst, you want to prepare 1-2 sentences ahead of time that answers the why are you leaving your job question up front. Don't hide or avoid it, interviewers are wise to those tactics already. Make sure you stick with 2 sentences maximum because it's easy to start ranting and go off on a tangent during the heat of the moment (especially if you're having a particularly negative experience with your current employer).\n\nThen you want to show you're not making stuff up by giving a concrete example as to why you are leaving your current job, then smoothly transition into talking about the new role you're applying for.\n\nFinally, you talk about how the problems you might be facing at your current job will be a non-issue at the new role because you have already done your research and you know what to expect in the new job. A combination of these will give you the best answer to why did you leave your current job or variations such as why did you leave your last job.\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n00:49 What \"ETP\" Stands For\n01:28 How to Structure \"E\"\n02:55 Sample Answer for \"E\"\n03:09 How to Structure \"T\"\n03:35 Sample Answer for \"T\"\n04:31 How to Structure \"P\"\n05:04 Full Sample Answer using \"ETP\"\n06:46 Summary\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Research Before an Interview - https://youtu.be/8MYHrih6syw\nCommon Interview Questions and Answers Playlist - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewTips #whyAreYouLeaving #jobsearch", "Why Are You Leaving Your Current Job? How to Answer Correctly", "QSPGdAvnUv4", 1, 436, false, "https://www.youtube.com/watch?v=QSPGdAvnUv4", "/downloads/Jeff Su/20 (truncated) 16:49:09.337 [debug] QUERY OK source="sources" db=0.4ms idle=63.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:09.338 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=8.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:49:09.339 [debug] QUERY OK source="media_items" db=0.7ms idle=8.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [168] 16:49:09.339 [info] Kicking off download for media item #168 (QSPGdAvnUv4) 16:49:09.344 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=6.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [172, 168, ~U[2026-04-23 14:49:09Z], ~U[2026-04-23 14:49:09Z]] 16:49:09.344 [debug] Current batch of media processed. Will check again in 1000ms 16:49:10.345 [debug] Current batch of media processed. Will check again in 1000ms 16:49:11.135 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=POZorIoSK5c --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/18/ce/18ce6e212f4a8f88f8eaa7585578579b0852aacb68cbeff59f876c5f268d6664.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:49:11.136 [debug] Running yt-dlp command for action: download 16:49:11.138 [debug] QUERY OK source="settings" db=1.9ms queue=0.2ms idle=1793.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:11.140 [debug] QUERY OK source="settings" db=1.7ms queue=0.1ms idle=1795.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:11.141 [debug] QUERY OK source="settings" db=0.2ms idle=1796.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:11.141 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=POZorIoSK5c --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/b3/ef/b3ef1f6d9c43a7cae8f8ed3a0507c0912e9f7b634d3ad230dad52d6011c52955.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:49:11.346 [debug] Current batch of media processed. Will check again in 1000ms 16:49:12.348 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "It's been 6 months since I uploaded my first ever YouTube video on June 3rd, 2020. It's been an extremely fun journey so far and I wanted to first thank each and every single one of you for your support - you really have no idea how much it means to a small creator like myself.\n\nI've recently reflected on some of the key takeaways I've had from uploading 1 video a week for 6 months, and thought the learnings might be useful for some of you!\n\nFirst, I'll share 3 things I learned for video creation specifically: (1) How to define your target audience and add value, (2) The bare minimum hardware that you need, and (3) My own personal opinion on upload frequency\n\nThen, I'll share a few learnings that were surprisingly applicable to my day job as a Product Marketer at Google - it was sort of like a virtuous cycle in that skills I developed as a marketer enabled me to make better videos and learnings from making videos made me a better marketer. \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n00:53 Who I'm Trying to Help (Learning #1)\n02:18 Importance of Lighting and Audio (Learning #2)\n03:13 Incremental Improvements (Learning #3)\n05:01 Time Management (Learning #4)\n06:08 Acting On Feedback (Learning #5)\n07:32 How these learnings applied to my day job\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#NewTuber #Learnings #Growth #Reflection", "duration" => 567, "filename" => "/downloads/Jeff Su/2020-12-17 6 Months on YouTube | What I've Learned/6 Months on YouTube | What I've Learned [opAitsO3o90].mp4", "id" => "opAitsO3o90", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=opAitsO3o90", "playlist_index" => 169, "timestamp" => 1608193808, "title" => "6 Months on YouTube | What I've Learned", "upload_date" => "20201217"} 16:49:12.349 [debug] QUERY OK source="sources" db=0.3ms idle=1075.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:49:12.349 [debug] QUERY OK source="sources" db=0.3ms idle=607.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:12.351 [debug] QUERY OK source="media_items" db=0.8ms idle=77.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-12-17 08:30:08Z], 1] 16:49:12.354 [debug] QUERY OK source="media_items" db=2.0ms idle=78.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's been 6 months since I uploaded my first ever YouTube video on June 3rd, 2020. It's been an extremely fun journey so far and I wanted to first thank each and every single one of you for your support - you really have no idea how much it means to a small creator like myself.\n\nI've recently reflected on some of the key takeaways I've had from uploading 1 video a week for 6 months, and thought the learnings might be useful for some of you!\n\nFirst, I'll share 3 things I learned for video creation specifically: (1) How to define your target audience and add value, (2) The bare minimum hardware that you need, and (3) My own personal opinion on upload frequency\n\nThen, I'll share a few learnings that were surprisingly applicable to my day job as a Product Marketer at Google - it was sort of like a virtuous cycle in that skills I developed as a marketer enabled me to make better videos and learnings from making videos made me a better marketer. \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n00:53 Who I'm Trying to Help (Learning #1)\n02:18 Importance of Lighting and Audio (Learning #2)\n03:13 Incremental Improvements (Learning #3)\n05:01 Time Management (Learning #4)\n06:08 Acting On Feedback (Learning #5)\n07:32 How these learnings applied to my day job\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#NewTuber #Learnings #Growth #Reflection", "6 Months on YouTube | What I've Learned", "270fcf71-ad04-4dd6-82c0-c19b6570e36c", false, "opAitsO3o90", 1, [], 567, false, "https://www.youtube.com/watch?v=opAitsO3o90", 169, "/downloads/Jeff Su/2020-12-17 6 Months on YouTube | What I've Learned/6 Months on YouTube | What I've Learned [opAitsO3o90].mp4", false, false, 99, ~U[2020-12-17 08:30:08Z], ~U[2026-04-23 14:49:12Z], ~U[2026-04-23 14:49:12Z], "It's been 6 months since I uploaded my first ever YouTube video on June 3rd, 2020. It's been an extremely fun journey so far and I wanted to first thank each and every single one of you for your support - you really have no idea how much it means to a small creator like myself.\n\nI've recently reflected on some of the key takeaways I've had from uploading 1 video a week for 6 months, and thought the learnings might be useful for some of you!\n\nFirst, I'll share 3 things I learned for video creation specifically: (1) How to define your target audience and add value, (2) The bare minimum hardware that you need, and (3) My own personal opinion on upload frequency\n\nThen, I'll share a few learnings that were surprisingly applicable to my day job as a Product Marketer at Google - it was sort of like a virtuous cycle in that skills I developed as a marketer enabled me to make better videos and learnings from making videos made me a better marketer. \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n00:53 Who I'm Trying to Help (Learning #1)\n02:18 Importance of Lighting and Audio (Learning #2)\n03:13 Incremental Improvements (Learning #3)\n05:01 Time Management (Learning #4)\n06:08 Acting On Feedback (Learning #5)\n07:32 How these learnings applied to my day job\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#NewTuber #Learnings #Growth #Reflection", "6 Months on YouTube | What I've Learned", "opAitsO3o90", 1, 567, false, "https://www.youtube.com/watch?v=opAitsO3o90", "/downloads/Jeff Su/2020-12-17 6 Months on YouTube | What I've Learned/6 Months on YouTube | What I've Learned [opAitsO3o90].mp4", false, ~U[2020-12-17 08:30:08Z]] 16:49:12.354 [debug] QUERY OK source="sources" db=0.3ms idle=81.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:12.355 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 16:49:12.356 [debug] QUERY OK source="media_items" db=0.3ms idle=5.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [169] 16:49:12.356 [info] Kicking off download for media item #169 (opAitsO3o90) 16:49:12.360 [debug] QUERY OK source="tasks" db=0.3ms idle=5.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [173, 169, ~U[2026-04-23 14:49:12Z], ~U[2026-04-23 14:49:12Z]] 16:49:12.360 [debug] Current batch of media processed. Will check again in 1000ms 16:49:13.361 [debug] Current batch of media processed. Will check again in 1000ms 16:49:14.362 [debug] Current batch of media processed. Will check again in 1000ms 16:49:15.363 [debug] Current batch of media processed. Will check again in 1000ms 16:49:16.365 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=028\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n\"Confidence comes not from extroversion, but from passion and dedication.\" This quote from Simon Sinek changed the way I, a huge introvert, looked at building relationships and I have summarized my learnings here in this video: the introvert's guide to networking (for business). \n\nWe introverts can play to our natural strengths and make great relationships right from behind our computer screen! By consistently putting in the effort and leaving thoughtful comments on LinkedIn posts, we are able to incrementally build meaningful relationships with professionals and this is a great way to network for introverts who might not feel comfortable going to many in-person events. \n\nSince we also lose energy from being around others, we also want to be very purposeful regarding who we choose to network with. To do this we need to first prioritize those who have direct influence over the end goal we're trying to achieve (i.e. decision makers) and chat with them on our own terms (whatever is comfortable for us). \n\nFinally, we don't have to make drastic changes to how we currently do things to network well. Consistency is key so as long as we adhere to a schedule (one thoughtful comment a week for example), we will slowly but surely grow and build successful professional networks!\n\nTake it from me that as your network grows, so will your confidence, leading to an endless positive cycle 😉\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n01:07 Key Takeaway from Video \n01:25 Add Value from Behind a Computer Screen\n02:23 Connecting with Ali Abdaal (Example 1)\n03:18 Be Selective about who you Network With\n04:05 Find Decision Makers (Example 2)\n05:09 Set Achievable Goals\n06:07 Quote from Simon Sinek\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nAdvanced LinkedIn Search Tips - https://youtu.be/93exwIKifcw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\n#introverts #networking \n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "duration" => 422, "filename" => "/downloads/Jeff Su/2020-12-09 The Introvert's Guide to Networking (for Business)/The Introvert's Guide to Networking (for Business) [k1DEWUcifPo].mp4", "id" => "k1DEWUcifPo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=k1DEWUcifPo", "playlist_index" => 170, "timestamp" => 1607497206, "title" => "The Introvert's Guide to Networking (for Business)", "upload_date" => "20201209"} 16:49:16.366 [debug] QUERY OK source="sources" db=0.6ms idle=612.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:49:16.367 [debug] QUERY OK source="sources" db=0.3ms idle=93.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:16.368 [debug] QUERY OK source="media_items" db=1.0ms idle=94.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-12-09 07:00:06Z], 1] 16:49:16.372 [debug] QUERY OK source="media_items" db=2.8ms idle=95.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=028\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n\"Confidence comes not from extroversion, but from passion and dedication.\" This quote from Simon Sinek changed the way I, a huge introvert, looked at building relationships and I have summarized my learnings here in this video: the introvert's guide to networking (for business). \n\nWe introverts can play to our natural strengths and make great relationships right from behind our computer screen! By consistently putting in the effort and leaving thoughtful comments on LinkedIn posts, we are able to incrementally build meaningful relationships with professionals and this is a great way to network for introverts who might not feel comfortable going to many in-person events. \n\nSince we also lose energy from being around others, we also want to be very purposeful regarding who we choose to network with. To do this we need to first prioritize those who have direct influence over the end goal we're trying to achieve (i.e. decision makers) and chat with them on our own terms (whatever is comfortable for us). \n\nFinally, we don't have to make drastic changes to how we currently do things to network well. Consistency is key so as long as we adhere to a schedule (one thoughtful comment a week for example), we will slowly but surely grow and build successful professional networks!\n\nTake it from me that as your network grows, so will your confidence, leading to an endless positive cycle 😉\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n01:07 Key Takeaway from Video \n01:25 Add Value from Behind a Computer Screen\n02:23 Connecting with Ali Abdaal (Example 1)\n03:18 Be Selective about who you Network With\n04:05 Find Decision Makers (Example 2)\n05:09 Set Achievable Goals\n06:07 Quote from Simon Sinek\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nAdvanced LinkedIn Search Tips - https://youtu.be/93exwIKifcw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\n#introverts #networking \n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "The Introvert's Guide to Networking (for Business)", "6dcea2c1-942f-4202-a184-9d80b4410077", false, "k1DEWUcifPo", 1, [], 422, false, "https://www.youtube.com/watch?v=k1DEWUcifPo", 170, "/downloads/Jeff Su/2020-12-09 The Introvert's Guide to Networking (for Business)/The Introvert's Guide to Networking (for Business) [k1DEWUcifPo].mp4", false, false, 99, ~U[2020-12-09 07:00:06Z], ~U[2026-04-23 14:49:16Z], ~U[2026-04-23 14:49:16Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=028\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n\"Confidence comes not from extroversion, but from passion and dedication.\" This quote from Simon Sinek changed the way I, a huge introvert, looked at building relationships and I have summarized my learnings here in this video: the introvert's guide to networking (for business). \n\nWe introverts can play to our natural strengths and make great relationships right from behind our computer screen! By consistently putting in the effort and leaving thoughtful comments on LinkedIn posts, we are able to incrementally build meaningful relationships with professionals and this is a great way to network for introverts who might not feel comfortable going to many in-person events. \n\nSince we also lose energy from being around others, we also want to be very purposeful regarding who we choose to network with. To do this we need to first prioritize those who have direct influence over the end goal we're trying to achieve (i.e. decision makers) and chat with them on our own terms (whatever is comfortable for us). \n\nFinally, we don't have to make drastic changes to how we currently do things to network well. Consistency is key so as long as we adhere to a schedule (one thoughtful comment a week for example), we will slowly but surely grow and build successful professional networks!\n\nTake it from me that as your network grows, so will your confidence, leading to an endless positive cycle 😉\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n01:07 Key Takeaway from Video \n01:25 Add Value from Behind a Computer Screen\n02:23 Connecting with Ali Abdaal (Example 1)\n03:18 Be Selective about who you Network With\n04:05 Find Decision Makers (Example 2)\n05:09 Set Achievable Goals\n06:07 Quote from Simon Sinek\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nAdvanced LinkedIn Search Tips - https://youtu.be/93exwIKifcw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\n#introverts #networking \n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "The Introvert's Guide to Networking (for Business)", "k1DEWUcifPo", 1, 422, false, "https://www.youtube.com/watch?v=k1D (truncated) 16:49:16.373 [debug] QUERY OK source="sources" db=0.4ms idle=100.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:16.374 [debug] QUERY OK source="media_profiles" db=0.2ms idle=7.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:49:16.374 [debug] QUERY OK source="media_items" db=0.3ms idle=7.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [170] 16:49:16.374 [info] Kicking off download for media item #170 (k1DEWUcifPo) 16:49:16.378 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=4.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [174, 170, ~U[2026-04-23 14:49:16Z], ~U[2026-04-23 14:49:16Z]] 16:49:16.378 [debug] Current batch of media processed. Will check again in 1000ms 16:49:17.380 [debug] Current batch of media processed. Will check again in 1000ms 16:49:18.282 [info] {"source":"oban","duration":910,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:49:18.380 [debug] Current batch of media processed. Will check again in 1000ms 16:49:19.381 [debug] Current batch of media processed. Will check again in 1000ms 16:49:20.383 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "It's hard to stand out on LinkedIn if you're using the same \"basic profile tips\" everyone else is following. Here is a video on 3 Advanced LinkedIn Tips for Young Professionals and job seekers!\n\nFirst advanced LinkedIn Tip - Use Google Search Operators to find relevant 2nd degree connections quickly and easily. For example you can type in \"Apple\" AND \"Product Manager\", filter by 2nd degree connections, to find 1st degree connections who can introduce you and help you connect on LinkedIn!\n\nSecond advanced LinkedIn Tip - Publish an article and feature it so it stays \"pinned\" to your LinkedIn profile! This provides you with an easy way to expand on your experiences while keeping your experiences section bullet points clean and to the point. This also allows recruiters and potential hiring managers to find you and read up on your contributions in a complete manner. \n\nThird advanced LinkedIn Tip - Find out whether your profile was restricted by LinkedIn. Basically if you have to input the connection's email address whenever you send a connection request, there's a decent chance you got \"restricted\" by LinkedIn. To fix this, reach out to their support center and ask for forgiveness!\n\nThese are 3 advanced LinkedIn hacks and features that will hopefully bring your LinkedIn game to the next level. Get creative with it!\n\nTIMESTAMPS\n00:00 Intro\n00:58 Use Search Operators to Increase Efficiency\n02:37 Publish LinkedIn Posts and Feature it on Profile\n03:51 Why You Should Publish LinkedIn Posts\n04:56 Find Out if your Profile is Restricted\n06:04 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nGoogle Search Operators - https://moz.com/learn/seo/search-operators#:~:text=Google search operators are special,research to technical SEO audits.\n\nKinsta Study - https://kinsta.com/blog/linkedin-statistics/\nLinkedIn Help Center - https://www.linkedin.com/help/linkedin/solve/contact\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\n#LinkedInTips #youngProfessionals #advancedTips\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "duration" => 396, "filename" => "/downloads/Jeff Su/2020-12-01 Top 3 Tips to STAND OUT on LinkedIn!/Top 3 Tips to STAND OUT on LinkedIn! [93exwIKifcw].mp4", "id" => "93exwIKifcw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=93exwIKifcw", "playlist_index" => 171, "timestamp" => 1606809602, "title" => "Top 3 Tips to STAND OUT on LinkedIn!", "upload_date" => "20201201"} 16:49:20.384 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=622.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:49:20.385 [debug] QUERY OK source="sources" db=0.3ms idle=112.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:20.386 [debug] QUERY OK source="media_items" db=0.8ms idle=112.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-12-01 08:00:02Z], 1] 16:49:20.390 [debug] QUERY OK source="media_items" db=2.0ms idle=114.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's hard to stand out on LinkedIn if you're using the same \"basic profile tips\" everyone else is following. Here is a video on 3 Advanced LinkedIn Tips for Young Professionals and job seekers!\n\nFirst advanced LinkedIn Tip - Use Google Search Operators to find relevant 2nd degree connections quickly and easily. For example you can type in \"Apple\" AND \"Product Manager\", filter by 2nd degree connections, to find 1st degree connections who can introduce you and help you connect on LinkedIn!\n\nSecond advanced LinkedIn Tip - Publish an article and feature it so it stays \"pinned\" to your LinkedIn profile! This provides you with an easy way to expand on your experiences while keeping your experiences section bullet points clean and to the point. This also allows recruiters and potential hiring managers to find you and read up on your contributions in a complete manner. \n\nThird advanced LinkedIn Tip - Find out whether your profile was restricted by LinkedIn. Basically if you have to input the connection's email address whenever you send a connection request, there's a decent chance you got \"restricted\" by LinkedIn. To fix this, reach out to their support center and ask for forgiveness!\n\nThese are 3 advanced LinkedIn hacks and features that will hopefully bring your LinkedIn game to the next level. Get creative with it!\n\nTIMESTAMPS\n00:00 Intro\n00:58 Use Search Operators to Increase Efficiency\n02:37 Publish LinkedIn Posts and Feature it on Profile\n03:51 Why You Should Publish LinkedIn Posts\n04:56 Find Out if your Profile is Restricted\n06:04 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nGoogle Search Operators - https://moz.com/learn/seo/search-operators#:~:text=Google search operators are special,research to technical SEO audits.\n\nKinsta Study - https://kinsta.com/blog/linkedin-statistics/\nLinkedIn Help Center - https://www.linkedin.com/help/linkedin/solve/contact\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\n#LinkedInTips #youngProfessionals #advancedTips\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "Top 3 Tips to STAND OUT on LinkedIn!", "da7fc865-68a4-47fe-81af-d68e0f8e7d9b", false, "93exwIKifcw", 1, [], 396, false, "https://www.youtube.com/watch?v=93exwIKifcw", 171, "/downloads/Jeff Su/2020-12-01 Top 3 Tips to STAND OUT on LinkedIn!/Top 3 Tips to STAND OUT on LinkedIn! [93exwIKifcw].mp4", false, false, 99, ~U[2020-12-01 08:00:02Z], ~U[2026-04-23 14:49:20Z], ~U[2026-04-23 14:49:20Z], "It's hard to stand out on LinkedIn if you're using the same \"basic profile tips\" everyone else is following. Here is a video on 3 Advanced LinkedIn Tips for Young Professionals and job seekers!\n\nFirst advanced LinkedIn Tip - Use Google Search Operators to find relevant 2nd degree connections quickly and easily. For example you can type in \"Apple\" AND \"Product Manager\", filter by 2nd degree connections, to find 1st degree connections who can introduce you and help you connect on LinkedIn!\n\nSecond advanced LinkedIn Tip - Publish an article and feature it so it stays \"pinned\" to your LinkedIn profile! This provides you with an easy way to expand on your experiences while keeping your experiences section bullet points clean and to the point. This also allows recruiters and potential hiring managers to find you and read up on your contributions in a complete manner. \n\nThird advanced LinkedIn Tip - Find out whether your profile was restricted by LinkedIn. Basically if you have to input the connection's email address whenever you send a connection request, there's a decent chance you got \"restricted\" by LinkedIn. To fix this, reach out to their support center and ask for forgiveness!\n\nThese are 3 advanced LinkedIn hacks and features that will hopefully bring your LinkedIn game to the next level. Get creative with it!\n\nTIMESTAMPS\n00:00 Intro\n00:58 Use Search Operators to Increase Efficiency\n02:37 Publish LinkedIn Posts and Feature it on Profile\n03:51 Why You Should Publish LinkedIn Posts\n04:56 Find Out if your Profile is Restricted\n06:04 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nGoogle Search Operators - https://moz.com/learn/seo/search-operators#:~:text=Google search operators are special,research to technical SEO audits.\n\nKinsta Study - https://kinsta.com/blog/linkedin-statistics/\nLinkedIn Help Center - https://www.linkedin.com/help/linkedin/solve/contact\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\n#LinkedInTips #youngProfessionals #advancedTips\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "Top 3 Tips to STAND OUT on LinkedIn!", "93exwIKifcw", 1, 396, false, "https://www.youtube.com/watch?v=93exwIKifcw", "/downloads/Jeff Su/2020-12-01 Top 3 Tips to STAND OUT on LinkedIn!/Top 3 Tips to ST (truncated) 16:49:20.391 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=117.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:20.391 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=6.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:49:20.392 [debug] QUERY OK source="media_items" db=0.3ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [171] 16:49:20.392 [info] Kicking off download for media item #171 (93exwIKifcw) 16:49:20.396 [debug] QUERY OK source="tasks" db=0.2ms idle=4.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [175, 171, ~U[2026-04-23 14:49:20Z], ~U[2026-04-23 14:49:20Z]] 16:49:20.396 [debug] Current batch of media processed. Will check again in 1000ms 16:49:21.396 [debug] Current batch of media processed. Will check again in 1000ms 16:49:22.397 [debug] Current batch of media processed. Will check again in 1000ms 16:49:23.399 [debug] Current batch of media processed. Will check again in 1000ms 16:49:24.400 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The fewer mistakes you make on your first job, the better others perceive you and the faster your career progresses. In this video I share the 3 things I wish I knew when it came to common first job mistakes and talk about the things I would have done differently to avoid these professional blunders.\n\nFirst of all, if you dive into the work without first fully grasping the objective of the project, there's a good chance your final deliverable will not be what your supervisor asked for in the first place. It's best to spend 15-20 extra minutes clarifying the objective than wasting hours if not days on something completely incorrect.\n\nSecondly, another common mistake young professionals make is not taking ownership of their work by focusing only on the responsibilities given to them. To combat this, it's best to think about how your work is related to the broader objective and figure out what you can do to contribute.\n\nFinally, the one with the biggest personal consequences is making the mistake of not taking the lead on actively finding opportunities for personal development. Large corporations especially have amazing (and free!) resources for employees and you're basically missing out if you don't take advantage of them.\n\nThese are some of the things I wish I knew coming out of college; had I known these common first job mistakes, I might have been able to avoid some embarrassing experiences during my time as young management consultant. \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n01:17 Mistake #1 \n02:11 Solution \n02:55 Real Case Study\n04:01 Mistake #2 \n05:02 Solution\n06:10 Mistake #3 \n06:42 Real Story\n07:15 Overlooked resource\n08:07 Summary\n08:32 Practical benefits of avoiding these mistakes\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#realtalk #careertips #learnfrommymistakes", "duration" => 541, "filename" => "/downloads/Jeff Su/2020-11-25 3 Mistakes to AVOID at Work!/3 Mistakes to AVOID at Work! [czGaqnHQyyk].mp4", "id" => "czGaqnHQyyk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=czGaqnHQyyk", "playlist_index" => 172, "timestamp" => 1606287612, "title" => "3 Mistakes to AVOID at Work!", "upload_date" => "20201125"} 16:49:24.401 [debug] QUERY OK source="sources" db=0.3ms idle=630.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:49:24.401 [debug] QUERY OK source="sources" db=0.2ms idle=128.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:24.402 [debug] QUERY OK source="media_items" db=0.8ms idle=128.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-11-25 07:00:12Z], 1] 16:49:24.406 [debug] QUERY OK source="media_items" db=2.0ms idle=130.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The fewer mistakes you make on your first job, the better others perceive you and the faster your career progresses. In this video I share the 3 things I wish I knew when it came to common first job mistakes and talk about the things I would have done differently to avoid these professional blunders.\n\nFirst of all, if you dive into the work without first fully grasping the objective of the project, there's a good chance your final deliverable will not be what your supervisor asked for in the first place. It's best to spend 15-20 extra minutes clarifying the objective than wasting hours if not days on something completely incorrect.\n\nSecondly, another common mistake young professionals make is not taking ownership of their work by focusing only on the responsibilities given to them. To combat this, it's best to think about how your work is related to the broader objective and figure out what you can do to contribute.\n\nFinally, the one with the biggest personal consequences is making the mistake of not taking the lead on actively finding opportunities for personal development. Large corporations especially have amazing (and free!) resources for employees and you're basically missing out if you don't take advantage of them.\n\nThese are some of the things I wish I knew coming out of college; had I known these common first job mistakes, I might have been able to avoid some embarrassing experiences during my time as young management consultant. \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n01:17 Mistake #1 \n02:11 Solution \n02:55 Real Case Study\n04:01 Mistake #2 \n05:02 Solution\n06:10 Mistake #3 \n06:42 Real Story\n07:15 Overlooked resource\n08:07 Summary\n08:32 Practical benefits of avoiding these mistakes\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#realtalk #careertips #learnfrommymistakes", "3 Mistakes to AVOID at Work!", "4843221c-7b1e-4161-af62-a25ae395f53e", false, "czGaqnHQyyk", 1, [], 541, false, "https://www.youtube.com/watch?v=czGaqnHQyyk", 172, "/downloads/Jeff Su/2020-11-25 3 Mistakes to AVOID at Work!/3 Mistakes to AVOID at Work! [czGaqnHQyyk].mp4", false, false, 99, ~U[2020-11-25 07:00:12Z], ~U[2026-04-23 14:49:24Z], ~U[2026-04-23 14:49:24Z], "The fewer mistakes you make on your first job, the better others perceive you and the faster your career progresses. In this video I share the 3 things I wish I knew when it came to common first job mistakes and talk about the things I would have done differently to avoid these professional blunders.\n\nFirst of all, if you dive into the work without first fully grasping the objective of the project, there's a good chance your final deliverable will not be what your supervisor asked for in the first place. It's best to spend 15-20 extra minutes clarifying the objective than wasting hours if not days on something completely incorrect.\n\nSecondly, another common mistake young professionals make is not taking ownership of their work by focusing only on the responsibilities given to them. To combat this, it's best to think about how your work is related to the broader objective and figure out what you can do to contribute.\n\nFinally, the one with the biggest personal consequences is making the mistake of not taking the lead on actively finding opportunities for personal development. Large corporations especially have amazing (and free!) resources for employees and you're basically missing out if you don't take advantage of them.\n\nThese are some of the things I wish I knew coming out of college; had I known these common first job mistakes, I might have been able to avoid some embarrassing experiences during my time as young management consultant. \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n01:17 Mistake #1 \n02:11 Solution \n02:55 Real Case Study\n04:01 Mistake #2 \n05:02 Solution\n06:10 Mistake #3 \n06:42 Real Story\n07:15 Overlooked resource\n08:07 Summary\n08:32 Practical benefits of avoiding these mistakes\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#realtalk #careertips #learnfrommymistakes", "3 Mistakes to AVOID at Work!", "czGaqnHQyyk", 1, 541, false, "https://www.youtube.com/watch?v=czGaqnHQyyk", "/downloads/Jeff Su/2020-11-25 3 Mistakes to AVOID at Work!/3 Mistakes to AVOID at Work! [czGaqnHQyyk].mp4", false, ~U[2020-11-25 07:00:12Z]] 16:49:24.406 [debug] QUERY OK source="sources" db=0.2ms idle=133.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:24.407 [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] 16:49:24.407 [debug] QUERY OK source="media_items" db=0.3ms 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 [172] 16:49:24.407 [info] Kicking off download for media item #172 (czGaqnHQyyk) 16:49:24.410 [debug] QUERY OK source="tasks" db=0.2ms idle=4.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [176, 172, ~U[2026-04-23 14:49:24Z], ~U[2026-04-23 14:49:24Z]] 16:49:24.411 [debug] Current batch of media processed. Will check again in 1000ms 16:49:25.411 [debug] Current batch of media processed. Will check again in 1000ms 16:49:26.412 [debug] Current batch of media processed. Will check again in 1000ms 16:49:27.413 [debug] Current batch of media processed. Will check again in 1000ms 16:49:28.415 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=025\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nWhen done INCORRECTLY, informational interviews actually harms your chances of landing a job at your target company. In this video, I share 5 informational interview mistakes you must avoid at all costs, walk you through the exact wording I would use to come off as composed and confident, and give you a free networking template I made on Google Sheets. \n\nOther than preparing strong informational interview questions for your coffee chats, you want to clarify the time and topic in your initial request for an exploratory interview email. So when they receive your request, they're able to prepare ahead of time as well. After the informational interview, not only do you want to send a thank you note, you also want to make sure you follow up regularly with 3 professionals that are working in fields you are extremely interested in. Most people do not do this (it's a very common mistake) and yet this is a huge mistake you want to avoid. \n\nSo the next time you conduct an informational interview (or coffee chat), make sure you brush up on the etiquette mentioned in this video and review the dos and don'ts! \n\nTIMESTAMPS\n00:00 Intro\n01:03 Not Clarifying Time and Topic\n02:36 Putting up with Lengthy Answers\n03:48 Not Taking Notes\n04:57 Not Following Up Regularly\n07:17 Having a Weak Ending\n08:01 Strong Questions to Ask \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to do Research Video: https://youtu.be/8MYHrih6syw\nBest Questions to Ask during Informational Interviews: https://youtu.be/4b2iagdHw8M\nNetworking Template (on Google Sheets): https://www.jeffsu.org/networking-spreadsheet/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#networking #success #careertips", "duration" => 515, "filename" => "/downloads/Jeff Su/2020-11-18 5 Informational Interview Mistakes to Avoid!/5 Informational Interview Mistakes to Avoid! [V_L2aWCdO4A].mp4", "id" => "V_L2aWCdO4A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=V_L2aWCdO4A", "playlist_index" => 173, "timestamp" => 1605686411, "title" => "5 Informational Interview Mistakes to Avoid!", "upload_date" => "20201118"} 16:49:28.416 [debug] QUERY OK source="sources" db=0.3ms idle=637.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:49:28.416 [debug] QUERY OK source="sources" db=0.2ms idle=143.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:28.417 [debug] QUERY OK source="media_items" db=0.8ms idle=143.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-11-18 08:00:11Z], 1] 16:49:29.812 [debug] QUERY OK source="media_items" db=1392.9ms idle=145.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=025\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nWhen done INCORRECTLY, informational interviews actually harms your chances of landing a job at your target company. In this video, I share 5 informational interview mistakes you must avoid at all costs, walk you through the exact wording I would use to come off as composed and confident, and give you a free networking template I made on Google Sheets. \n\nOther than preparing strong informational interview questions for your coffee chats, you want to clarify the time and topic in your initial request for an exploratory interview email. So when they receive your request, they're able to prepare ahead of time as well. After the informational interview, not only do you want to send a thank you note, you also want to make sure you follow up regularly with 3 professionals that are working in fields you are extremely interested in. Most people do not do this (it's a very common mistake) and yet this is a huge mistake you want to avoid. \n\nSo the next time you conduct an informational interview (or coffee chat), make sure you brush up on the etiquette mentioned in this video and review the dos and don'ts! \n\nTIMESTAMPS\n00:00 Intro\n01:03 Not Clarifying Time and Topic\n02:36 Putting up with Lengthy Answers\n03:48 Not Taking Notes\n04:57 Not Following Up Regularly\n07:17 Having a Weak Ending\n08:01 Strong Questions to Ask \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to do Research Video: https://youtu.be/8MYHrih6syw\nBest Questions to Ask during Informational Interviews: https://youtu.be/4b2iagdHw8M\nNetworking Template (on Google Sheets): https://www.jeffsu.org/networking-spreadsheet/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#networking #success #careertips", "5 Informational Interview Mistakes to Avoid!", "39636b93-d7e8-4940-bf1a-a9544af56e05", false, "V_L2aWCdO4A", 1, [], 515, false, "https://www.youtube.com/watch?v=V_L2aWCdO4A", 173, "/downloads/Jeff Su/2020-11-18 5 Informational Interview Mistakes to Avoid!/5 Informational Interview Mistakes to Avoid! [V_L2aWCdO4A].mp4", false, false, 99, ~U[2020-11-18 08:00:11Z], ~U[2026-04-23 14:49:28Z], ~U[2026-04-23 14:49:28Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=025\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nWhen done INCORRECTLY, informational interviews actually harms your chances of landing a job at your target company. In this video, I share 5 informational interview mistakes you must avoid at all costs, walk you through the exact wording I would use to come off as composed and confident, and give you a free networking template I made on Google Sheets. \n\nOther than preparing strong informational interview questions for your coffee chats, you want to clarify the time and topic in your initial request for an exploratory interview email. So when they receive your request, they're able to prepare ahead of time as well. After the informational interview, not only do you want to send a thank you note, you also want to make sure you follow up regularly with 3 professionals that are working in fields you are extremely interested in. Most people do not do this (it's a very common mistake) and yet this is a huge mistake you want to avoid. \n\nSo the next time you conduct an informational interview (or coffee chat), make sure you brush up on the etiquette mentioned in this video and review the dos and don'ts! \n\nTIMESTAMPS\n00:00 Intro\n01:03 Not Clarifying Time and Topic\n02:36 Putting up with Lengthy Answers\n03:48 Not Taking Notes\n04:57 Not Following Up Regularly\n07:17 Having a Weak Ending\n08:01 Strong Questions to Ask \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to do Research Video: https://youtu.be/8MYHrih6syw\nBest Questions to Ask during Informational Interviews: https://youtu.be/4b2iagdHw8M\nNetworking Template (on Google Sheets): https://www.jeffsu.org/networking-spreadsheet/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#networking #success #careertips", "5 Informational Interview Mistakes to Avoid!", "V_L2aWCdO4A", 1, 515, false, "https://www.youtube.com/watch?v=V_L2aWCdO4A", "/downloads/Jeff Su/2020-11-18 5 Informational Interview Mistakes to Avoid!/5 Informational Interview Mistakes to Avoid! [V_L2aWCdO4A].mp4", false, ~U[2020-11-18 08:00:11Z]] 16:49:29.815 [debug] QUERY OK source="sources" db=2.9ms queue=0.1ms idle=1395.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:29.816 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1397.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] 16:49:29.817 [debug] QUERY OK source="media_items" db=0.3ms idle=1036.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 [173] 16:49:29.817 [info] Kicking off download for media item #173 (V_L2aWCdO4A) 16:49:30.324 [debug] QUERY OK source="tasks" db=3.3ms queue=0.1ms idle=505.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [177, 173, ~U[2026-04-23 14:49:30Z], ~U[2026-04-23 14:49:30Z]] 16:49:30.324 [debug] Current batch of media processed. Will check again in 1000ms 16:49:31.324 [debug] Current batch of media processed. Will check again in 1000ms 16:49:32.326 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=024\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n61% of people miss out on higher pay, so in this video, I'm going to share my 5 tips on how to negotiate salary after receiving a job offer and help you get over that mental barrier stopping you from salary negotiation in the first place.\n\nIn order to negotiate a salary offer effectively, you would preferably not do it over email, but rather face-to-face or over the phone. Then, imagine you are negotiating the job offer on behalf of a friend, since this helps you get into the confident and assertive mindset.\n\nYou want to give a specific salary figure when you're countering a job offer since the other party will assume you have done extensive homework into your market value. \n\nYou want to also have a walk away point (a worst case scenario) BEFORE you even begin negotiating your job offer because you definitely don't want to accept something that's way too low. \n\nFinally, when countering a job offer or countering a salary package, you want to rely on facts instead of feelings because you want to help your counterpart understand exactly why you deserve what you're asking for.\n\nThose 5 practical tips are will help you negotiate for a higher salary after a job offer! \n\nTIMESTAMPS\n00:00 Intro\n01:39 3 Practical Consequences\n03:01 Imagine you are negotiating for a friend\n03:41 Give a specific salary figure\n04:21 Have a walk away point\n04:56 Use facts, not feelings\n06:14 Negotiate ethically\n06:57 Bonus tip\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nSALARY RESEARCH WEBSITES:\ncollegegrad.com\nGlassdoor.com\nmonster.com/salary\nlivecareer.com/salary\nhttp://salary.com and Payscale.com\nonetonline.org\nCost of Living calculator\nmoney.cnn.com/calculator/pf/cost-of-living/\n\nRESEARCH I REFERENCED:\nRobert Half study: https://www.cnbc.com/2018/02/08/only-39-percent-of-workers-negotiated-their-salary-at-their-last-job-offer.html\nColumbia Business School study: https://www.sciencedirect.com/science/article/abs/pii/S0022103113000401\n📖 Teal - https://get.tealhq.com/jeffsu\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#careertips #salarynegotiation #knowyourworth #jeffsu", "duration" => 461, "filename" => "/downloads/Jeff Su/2020-11-11 How to Negotiate Salary after Job Offer | 5 Practical Tips/How to Negotiate Salary after Job Offer | 5 Practical Tips [J30wmYgzVXM].mp4", "id" => "J30wmYgzVXM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=J30wmYgzVXM", "playlist_index" => 174, "timestamp" => 1605078001, "title" => "How to Negotiate Salary after Job Offer | 5 Practical Tips", "upload_date" => "20201111"} 16:49:32.327 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1053.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:49:32.327 [debug] QUERY OK source="sources" db=0.2ms idle=1054.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:32.329 [debug] QUERY OK source="media_items" db=1.0ms idle=540.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-11-11 07:00:01Z], 1] 16:49:32.333 [debug] QUERY OK source="media_items" db=2.2ms idle=56.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=024\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n61% of people miss out on higher pay, so in this video, I'm going to share my 5 tips on how to negotiate salary after receiving a job offer and help you get over that mental barrier stopping you from salary negotiation in the first place.\n\nIn order to negotiate a salary offer effectively, you would preferably not do it over email, but rather face-to-face or over the phone. Then, imagine you are negotiating the job offer on behalf of a friend, since this helps you get into the confident and assertive mindset.\n\nYou want to give a specific salary figure when you're countering a job offer since the other party will assume you have done extensive homework into your market value. \n\nYou want to also have a walk away point (a worst case scenario) BEFORE you even begin negotiating your job offer because you definitely don't want to accept something that's way too low. \n\nFinally, when countering a job offer or countering a salary package, you want to rely on facts instead of feelings because you want to help your counterpart understand exactly why you deserve what you're asking for.\n\nThose 5 practical tips are will help you negotiate for a higher salary after a job offer! \n\nTIMESTAMPS\n00:00 Intro\n01:39 3 Practical Consequences\n03:01 Imagine you are negotiating for a friend\n03:41 Give a specific salary figure\n04:21 Have a walk away point\n04:56 Use facts, not feelings\n06:14 Negotiate ethically\n06:57 Bonus tip\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nSALARY RESEARCH WEBSITES:\ncollegegrad.com\nGlassdoor.com\nmonster.com/salary\nlivecareer.com/salary\nhttp://salary.com and Payscale.com\nonetonline.org\nCost of Living calculator\nmoney.cnn.com/calculator/pf/cost-of-living/\n\nRESEARCH I REFERENCED:\nRobert Half study: https://www.cnbc.com/2018/02/08/only-39-percent-of-workers-negotiated-their-salary-at-their-last-job-offer.html\nColumbia Business School study: https://www.sciencedirect.com/science/article/abs/pii/S0022103113000401\n📖 Teal - https://get.tealhq.com/jeffsu\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#careertips #salarynegotiation #knowyourworth #jeffsu", "How to Negotiate Salary after Job Offer | 5 Practical Tips", "ca8a31e3-122d-434f-bd09-2ae8f8439694", false, "J30wmYgzVXM", 1, [], 461, false, "https://www.youtube.com/watch?v=J30wmYgzVXM", 174, "/downloads/Jeff Su/2020-11-11 How to Negotiate Salary after Job Offer | 5 Practical Tips/How to Negotiate Salary after Job Offer | 5 Practical Tips [J30wmYgzVXM].mp4", false, false, 99, ~U[2020-11-11 07:00:01Z], ~U[2026-04-23 14:49:32Z], ~U[2026-04-23 14:49:32Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=024\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n61% of people miss out on higher pay, so in this video, I'm going to share my 5 tips on how to negotiate salary after receiving a job offer and help you get over that mental barrier stopping you from salary negotiation in the first place.\n\nIn order to negotiate a salary offer effectively, you would preferably not do it over email, but rather face-to-face or over the phone. Then, imagine you are negotiating the job offer on behalf of a friend, since this helps you get into the confident and assertive mindset.\n\nYou want to give a specific salary figure when you're countering a job offer since the other party will assume you have done extensive homework into your market value. \n\nYou want to also have a walk away point (a worst case scenario) BEFORE you even begin negotiating your job offer because you definitely don't want to accept something that's way too low. \n\nFinally, when countering a job offer or countering a salary package, you want to rely on facts instead of feelings because you want to help your counterpart understand exactly why you deserve what you're asking for.\n\nThose 5 practical tips are will help you negotiate for a higher salary after a job offer! \n\nTIMESTAMPS\n00:00 Intro\n01:39 3 Practical Consequences\n03:01 Imagine you are negotiating for a friend\n03:41 Give a specific salary figure\n04:21 Have a walk away point\n04:56 Use facts, not feelings\n06:14 Negotiate ethically\n06:57 Bonus tip\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nSALARY RESEARCH WEBSITES:\ncollegegrad.com\nGlassdoor.com\nmonster.com/salary\nlivecareer.com/salary\nhttp://salary.com and Payscale.com\nonetonline.org\nCost of Living calculator\nmoney.cnn.com/calculator/pf/cost-of-living/\n\nRESEARCH I REFERENCED:\nRobert Half study: https://www.cnbc.com/2018/02/08/only-39-percent-of-workers-negotiated-their-salary-at-their-last-job-offer.html\nColumbia Business School study: https://www.sciencedirect.com/science/article/abs/pii/S0022103113000401\n📖 Teal - https://get.tealhq.com/jeffsu\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#careertips #salarynegotiation #knowyourworth #jeffsu", "How to Negotiate Salary after Job Offer | 5 Practical Tips", "J30wmYgzVXM", 1, 461, false, "https://www.youtube.com/watch?v=J30wmYgzVXM", "/downloads/Jeff Su/2020-11-11 How to Negotiate Salary after Job Offer | 5 Practical Tips/How to Negotiate Salary after Job Offer | 5 Practical Tips [J30wmYgzVXM].mp4", false, ~U[2020-11-11 07:00:01Z]] 16:49:32.334 [debug] QUERY OK source="sources" db=0.4ms idle=60.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:32.335 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.5ms idle=7.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:49:32.336 [debug] QUERY OK source="media_items" db=0.4ms idle=8.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [174] 16:49:32.336 [info] Kicking off download for media item #174 (J30wmYgzVXM) 16:49:32.340 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=5.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [178, 174, ~U[2026-04-23 14:49:32Z], ~U[2026-04-23 14:49:32Z]] 16:49:32.340 [debug] Current batch of media processed. Will check again in 1000ms 16:49:33.341 [debug] Current batch of media processed. Will check again in 1000ms 16:49:33.988 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=EDkaQj7K5_c --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/50/c5/50c506ee54c368cf4f7e37f55f4b504caf8bb215c72f3794495bb1cf6c5fa23f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:49:34.039 [debug] Running yt-dlp command for action: download_thumbnail 16:49:34.041 [debug] QUERY OK source="settings" db=0.3ms idle=1702.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:34.043 [debug] QUERY OK source="settings" db=1.5ms idle=1702.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:34.044 [debug] QUERY OK source="settings" db=0.6ms idle=1703.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:34.045 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=EDkaQj7K5_c --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/37/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/96/0a/960a11aea102b8faedd22d75440cf25e59a78e25ab5c8ee22404746f8a079a3f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:49:34.342 [debug] Current batch of media processed. Will check again in 1000ms 16:49:35.343 [debug] Current batch of media processed. Will check again in 1000ms 16:49:36.344 [debug] Current batch of media processed. Will check again in 1000ms 16:49:37.346 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=023\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nThe \"What are your greatest strengths\" interview question is supposed to be an easy question to answer, yet most people can't find the balance between modesty and arrogance. \n\nWalking into the job interview knowing what your biggest strengths are is one thing, but clearly articulating your greatest strengths in a cohesive and structured answer is a whole other thing altogether. \n\nIn this video, I share with you the 3 mistakes to avoid when answering the \"what are your greatest strengths\" question, the 3 correct things to do instead, and share with you my own sample answer from a few years ago that actually included some of these mistakes!\n\nTIMESTAMPS\n00:00 Intro\n00:56 Don't mention a technical skill\n01:56 Do this instead\n02:29 Bonus resource\n02:44 Don't say an irrelevant strength\n03:10 Say this instead\n04:30 Do not rely only on STAR format\n04:57 Include \"Learnings\" as part of your story\n05:14 My real answer with mistakes\n06:51 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020\nSTAR vs. CARL Behavioral Interview Methods - https://youtu.be/gZ2354BH0a0\nHow to Connect on LinkedIn (the right way) - https://youtu.be/9BdbGZtnFnQ\nInformational Interview Questions to ask - https://youtu.be/4b2iagdHw8M\nPlaylist on common interview questions - https://www.youtube.com/playlist?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\n💪 LIST OF STRENGTHS: \n- Action-oriented/entrepreneurial\n- Attentive/detail-oriented\n- Collaborative\n- Committed/dedicated\n- Creative\n- Determined\n- Disciplined/focused\n- Empathetic\n- Enthusiastic/passionate/driven\n- Flexible/versatile\n- Honest\n- Innovative\n- Patient\n- Respectful\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewtips #greateststrengths #behavioralinterview", "duration" => 439, "filename" => "/downloads/Jeff Su/2020-11-04 What are Your Greatest Strengths - 3 Mistakes to Avoid!/What are Your Greatest Strengths - 3 Mistakes to Avoid! [jSjOO0ekQ20].mp4", "id" => "jSjOO0ekQ20", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jSjOO0ekQ20", "playlist_index" => 175, "timestamp" => 1604473204, "title" => "What are Your Greatest Strengths - 3 Mistakes to Avoid!", "upload_date" => "20201104"} 16:49:37.347 [debug] QUERY OK source="sources" db=0.3ms idle=1073.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:49:37.347 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=548.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:37.348 [debug] QUERY OK source="media_items" db=0.8ms idle=74.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-11-04 07:00:04Z], 1] 16:49:37.352 [debug] QUERY OK source="media_items" db=2.2ms idle=76.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=023\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nThe \"What are your greatest strengths\" interview question is supposed to be an easy question to answer, yet most people can't find the balance between modesty and arrogance. \n\nWalking into the job interview knowing what your biggest strengths are is one thing, but clearly articulating your greatest strengths in a cohesive and structured answer is a whole other thing altogether. \n\nIn this video, I share with you the 3 mistakes to avoid when answering the \"what are your greatest strengths\" question, the 3 correct things to do instead, and share with you my own sample answer from a few years ago that actually included some of these mistakes!\n\nTIMESTAMPS\n00:00 Intro\n00:56 Don't mention a technical skill\n01:56 Do this instead\n02:29 Bonus resource\n02:44 Don't say an irrelevant strength\n03:10 Say this instead\n04:30 Do not rely only on STAR format\n04:57 Include \"Learnings\" as part of your story\n05:14 My real answer with mistakes\n06:51 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020\nSTAR vs. CARL Behavioral Interview Methods - https://youtu.be/gZ2354BH0a0\nHow to Connect on LinkedIn (the right way) - https://youtu.be/9BdbGZtnFnQ\nInformational Interview Questions to ask - https://youtu.be/4b2iagdHw8M\nPlaylist on common interview questions - https://www.youtube.com/playlist?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\n💪 LIST OF STRENGTHS: \n- Action-oriented/entrepreneurial\n- Attentive/detail-oriented\n- Collaborative\n- Committed/dedicated\n- Creative\n- Determined\n- Disciplined/focused\n- Empathetic\n- Enthusiastic/passionate/driven\n- Flexible/versatile\n- Honest\n- Innovative\n- Patient\n- Respectful\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewtips #greateststrengths #behavioralinterview", "What are Your Greatest Strengths - 3 Mistakes to Avoid!", "ed4a1df7-79dc-4d60-b9f4-62090a7a4b1a", false, "jSjOO0ekQ20", 1, [], 439, false, "https://www.youtube.com/watch?v=jSjOO0ekQ20", 175, "/downloads/Jeff Su/2020-11-04 What are Your Greatest Strengths - 3 Mistakes to Avoid!/What are Your Greatest Strengths - 3 Mistakes to Avoid! [jSjOO0ekQ20].mp4", false, false, 99, ~U[2020-11-04 07:00:04Z], ~U[2026-04-23 14:49:37Z], ~U[2026-04-23 14:49:37Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=023\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nThe \"What are your greatest strengths\" interview question is supposed to be an easy question to answer, yet most people can't find the balance between modesty and arrogance. \n\nWalking into the job interview knowing what your biggest strengths are is one thing, but clearly articulating your greatest strengths in a cohesive and structured answer is a whole other thing altogether. \n\nIn this video, I share with you the 3 mistakes to avoid when answering the \"what are your greatest strengths\" question, the 3 correct things to do instead, and share with you my own sample answer from a few years ago that actually included some of these mistakes!\n\nTIMESTAMPS\n00:00 Intro\n00:56 Don't mention a technical skill\n01:56 Do this instead\n02:29 Bonus resource\n02:44 Don't say an irrelevant strength\n03:10 Say this instead\n04:30 Do not rely only on STAR format\n04:57 Include \"Learnings\" as part of your story\n05:14 My real answer with mistakes\n06:51 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020\nSTAR vs. CARL Behavioral Interview Methods - https://youtu.be/gZ2354BH0a0\nHow to Connect on LinkedIn (the right way) - https://youtu.be/9BdbGZtnFnQ\nInformational Interview Questions to ask - https://youtu.be/4b2iagdHw8M\nPlaylist on common interview questions - https://www.youtube.com/playlist?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\n💪 LIST OF STRENGTHS: \n- Action-oriented/entrepreneurial\n- Attentive/detail-oriented\n- Collaborative\n- Committed/dedicated\n- Creative\n- Determined\n- Disciplined/focused\n- Empathetic\n- Enthusiastic/passionate/driven\n- Flexible/versatile\n- Honest\n- Innovative\n- Patient\n- Respectful\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewtips #greateststrengths #behavioralinterview", "What are Your Greatest Strengths - 3 Mistakes to Avoid!", "jSjOO0ekQ20", 1, 439, false, "https://www.youtube.com/watch?v=jSjOO0ekQ20", "/downloads/Jeff Su/2020-11-04 What are Your Greatest Strengths - 3 Mistakes to Avoid!/What are Your Greatest Strengths - 3 Mistakes to Avoid! [jSjOO0ekQ20].mp4", false, ~U[2020-11-04 07:00:04Z]] 16:49:37.352 [debug] QUERY OK source="sources" db=0.2ms idle=79.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:37.353 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:49:37.354 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [175] 16:49:37.354 [info] Kicking off download for media item #175 (jSjOO0ekQ20) 16:49:37.357 [debug] QUERY OK source="tasks" db=0.2ms idle=4.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [179, 175, ~U[2026-04-23 14:49:37Z], ~U[2026-04-23 14:49:37Z]] 16:49:37.357 [debug] Current batch of media processed. Will check again in 1000ms 16:49:38.358 [debug] Current batch of media processed. Will check again in 1000ms 16:49:39.359 [debug] Current batch of media processed. Will check again in 1000ms 16:49:40.360 [debug] Current batch of media processed. Will check again in 1000ms 16:49:40.478 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=POZorIoSK5c --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/b3/ef/b3ef1f6d9c43a7cae8f8ed3a0507c0912e9f7b634d3ad230dad52d6011c52955.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:49:40.516 [debug] Running yt-dlp command for action: download_thumbnail 16:49:40.517 [debug] QUERY OK source="settings" db=0.2ms idle=1244.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:40.518 [debug] QUERY OK source="settings" db=0.5ms idle=1245.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:40.519 [debug] QUERY OK source="settings" db=0.3ms idle=1245.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:40.519 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=POZorIoSK5c --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/38/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3c/4a/3c4af7b028e84511e3b448b52d5634f011fb6146530a15104e1f1df8b6297795.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:49:40.779 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=EDkaQj7K5_c --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/37/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/96/0a/960a11aea102b8faedd22d75440cf25e59a78e25ab5c8ee22404746f8a079a3f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:49:40.780 [debug] QUERY OK db=0.0ms idle=1507.0ms begin [] 16:49:40.781 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:49:34Z], "/downloads/Jeff Su/2024-10-15 Top 5 ChatGPT Use Cases for Professionals!/Top 5 ChatGPT Use Cases for Professionals! [EDkaQj7K5_c].mp4", "/downloads/Jeff Su/2024-10-15 Top 5 ChatGPT Use Cases for Professionals!/Top 5 ChatGPT Use Cases for Professionals! [EDkaQj7K5_c].info.json", "/downloads/Jeff Su/2024-10-15 Top 5 ChatGPT Use Cases for Professionals!/Top 5 ChatGPT Use Cases for Professionals! [EDkaQj7K5_c].nfo", "/downloads/Jeff Su/2024-10-15 Top 5 ChatGPT Use Cases for Professionals!/Top 5 ChatGPT Use Cases for Professionals! [EDkaQj7K5_c]-thumb.jpg", ~U[2026-04-23 14:49:40Z], 37] 16:49:40.782 [debug] QUERY OK source="media_metadata" db=1.0ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/37/metadata.json.gz", "/config/metadata/media_items/37/thumbnail.jpg", 37, ~U[2026-04-23 14:49:40Z], ~U[2026-04-23 14:49:40Z]] 16:49:40.783 [debug] QUERY OK db=0.3ms commit [] 16:49:40.785 [debug] QUERY OK source="media_items" db=1.3ms idle=972.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [38550320, ~U[2026-04-23 14:49:40Z], 37] 16:49:40.785 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:49:40.786 [info] {"args":{"id":37},"id":41,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":39600537,"event":"job:stop","queue_time":547183819,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:49:40.793 [info] {"args":{"id":39},"id":43,"meta":{},"system_time":1776955780792997468,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:49:40.794 [debug] QUERY OK source="media_items" db=0.6ms idle=274.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" = ?) [39] 16:49:40.794 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:49:40.795 [debug] QUERY OK source="sources" db=0.5ms idle=11.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:40.796 [debug] QUERY OK source="media_profiles" db=0.3ms idle=10.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:49:40.797 [debug] QUERY OK source="media_items" db=0.3ms idle=10.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [39] 16:49:40.798 [debug] QUERY OK source="media_metadata" db=0.2ms idle=5.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [39] 16:49:40.798 [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] 16:49:40.799 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:49:40.799 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:49:40.800 [debug] Running yt-dlp command for action: get_downloadable_status 16:49:40.801 [debug] QUERY OK source="settings" db=0.1ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:40.801 [debug] QUERY OK source="settings" db=0.1ms 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 [] 16:49:40.802 [debug] QUERY OK source="settings" db=0.4ms 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 [] 16:49:40.802 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=YoWdogtZRw8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1c/f0/1cf0707d8cea839f07b05dd91983109b2c8c0968119b04014d88e9ec4f4ca100.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:49:41.362 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "STAR vs. CARL: What's the best behavioral interview method? In this video I compare the popular STAR answer method with the more comprehensive CARL answer format, share sample behavioral interview questions and answers, and end with a recommendation on when to use each method.\n\nThe STAR behavioral interview method suffers from 2 limitations: (1) It allocates too much time for background information and not enough on your accomplishments, and (2) Doesn’t naturally incorporate your learnings as part of the answer prompts. Therefore, many interviewers find the STAR technique of interviewing a little bit robotic as candidates just seem to memorize answers and spit them out during the interview.\n\nWith the CARL interview method, the “L” stands for “Learning” so you should really allocate more time on reflecting what your actions and results meant for future use cases (i.e. what if you faced a similar situation again, what would you do next time?) This is where the CARL interview framework really shines.\n\nTIMESTAMPS\n00:00 Intro\n01:10 What is CARL?\n01:52 Sample answer #1\n02:54 Why “Learnings” help you stand out\n03:26 What to say for “Learnings”\n04:04 Sample answer #2\n06:20 When to use STAR\n06:55 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWrite an Incredible Resume - https://youtu.be/-Q1aIA1qMzs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#STAR #CARL #BehavioralInterviewQuestions #InterviewTips", "duration" => 446, "filename" => "/downloads/Jeff Su/2020-10-28 Don't Use STAR in Your Next Interview (Do This Instead)!/Don't Use STAR in Your Next Interview (Do This Instead)! [gZ2354BH0a0].mp4", "id" => "gZ2354BH0a0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gZ2354BH0a0", "playlist_index" => 176, "timestamp" => 1603868406, "title" => "Don't Use STAR in Your Next Interview (Do This Instead)!", "upload_date" => "20201028"} 16:49:41.364 [debug] QUERY OK source="sources" db=1.2ms idle=562.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:49:41.365 [debug] QUERY OK source="sources" db=0.6ms idle=563.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:41.366 [debug] QUERY OK source="media_items" db=1.3ms idle=563.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-10-28 07:00:06Z], 1] 16:49:41.370 [debug] QUERY OK source="media_items" db=2.6ms idle=565.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["STAR vs. CARL: What's the best behavioral interview method? In this video I compare the popular STAR answer method with the more comprehensive CARL answer format, share sample behavioral interview questions and answers, and end with a recommendation on when to use each method.\n\nThe STAR behavioral interview method suffers from 2 limitations: (1) It allocates too much time for background information and not enough on your accomplishments, and (2) Doesn’t naturally incorporate your learnings as part of the answer prompts. Therefore, many interviewers find the STAR technique of interviewing a little bit robotic as candidates just seem to memorize answers and spit them out during the interview.\n\nWith the CARL interview method, the “L” stands for “Learning” so you should really allocate more time on reflecting what your actions and results meant for future use cases (i.e. what if you faced a similar situation again, what would you do next time?) This is where the CARL interview framework really shines.\n\nTIMESTAMPS\n00:00 Intro\n01:10 What is CARL?\n01:52 Sample answer #1\n02:54 Why “Learnings” help you stand out\n03:26 What to say for “Learnings”\n04:04 Sample answer #2\n06:20 When to use STAR\n06:55 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWrite an Incredible Resume - https://youtu.be/-Q1aIA1qMzs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#STAR #CARL #BehavioralInterviewQuestions #InterviewTips", "Don't Use STAR in Your Next Interview (Do This Instead)!", "54a0947d-4d90-4b7a-936d-11dce5a7530f", false, "gZ2354BH0a0", 1, [], 446, false, "https://www.youtube.com/watch?v=gZ2354BH0a0", 176, "/downloads/Jeff Su/2020-10-28 Don't Use STAR in Your Next Interview (Do This Instead)!/Don't Use STAR in Your Next Interview (Do This Instead)! [gZ2354BH0a0].mp4", false, false, 99, ~U[2020-10-28 07:00:06Z], ~U[2026-04-23 14:49:41Z], ~U[2026-04-23 14:49:41Z], "STAR vs. CARL: What's the best behavioral interview method? In this video I compare the popular STAR answer method with the more comprehensive CARL answer format, share sample behavioral interview questions and answers, and end with a recommendation on when to use each method.\n\nThe STAR behavioral interview method suffers from 2 limitations: (1) It allocates too much time for background information and not enough on your accomplishments, and (2) Doesn’t naturally incorporate your learnings as part of the answer prompts. Therefore, many interviewers find the STAR technique of interviewing a little bit robotic as candidates just seem to memorize answers and spit them out during the interview.\n\nWith the CARL interview method, the “L” stands for “Learning” so you should really allocate more time on reflecting what your actions and results meant for future use cases (i.e. what if you faced a similar situation again, what would you do next time?) This is where the CARL interview framework really shines.\n\nTIMESTAMPS\n00:00 Intro\n01:10 What is CARL?\n01:52 Sample answer #1\n02:54 Why “Learnings” help you stand out\n03:26 What to say for “Learnings”\n04:04 Sample answer #2\n06:20 When to use STAR\n06:55 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWrite an Incredible Resume - https://youtu.be/-Q1aIA1qMzs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#STAR #CARL #BehavioralInterviewQuestions #InterviewTips", "Don't Use STAR in Your Next Interview (Do This Instead)!", "gZ2354BH0a0", 1, 446, false, "https://www.youtube.com/watch?v=gZ2354BH0a0", "/downloads/Jeff Su/2020-10-28 Don't Use STAR in Your Next Interview (Do This Instead)!/Don't Use STAR in Your Next Interview (Do This Instead)! [gZ2354BH0a0].mp4", false, ~U[2020-10-28 07:00:06Z]] 16:49:41.372 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=557.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:41.374 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=8.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] 16:49:41.375 [debug] QUERY OK source="media_items" db=0.9ms idle=9.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [176] 16:49:41.375 [info] Kicking off download for media item #176 (gZ2354BH0a0) 16:49:41.381 [debug] QUERY OK source="tasks" db=0.5ms queue=0.1ms idle=8.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [180, 176, ~U[2026-04-23 14:49:41Z], ~U[2026-04-23 14:49:41Z]] 16:49:41.382 [debug] Current batch of media processed. Will check again in 1000ms 16:49:42.382 [debug] Current batch of media processed. Will check again in 1000ms 16:49:43.383 [debug] Current batch of media processed. Will check again in 1000ms 16:49:44.386 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=021\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nWhere Do You See Yourself In 5 Years is honestly like a trick question. How do you answer this question when most likely you won't be sticking around for that long? In this video I'll show you a formula that will let you answer this question in an honest manner without having to spend too much time figuring out \"where DO I see myself in 5 years?\"\n\nYes, this question is asking about your career goals; more specifically, your long term career goals. But too many people get caught up by trying to literally answer \"where do you see yourself in 5 YEARS?\" when they should be simply focusing on talking about the overall direction they see themselves heading towards within the company they're interviewing for.\n\nNot only do I share the formula that will help you come up with your own answer, but my example answer should give you a good idea of how you can adapt the the formula for your own needs. It's a painless strategy that you can use next time you're facing this tricky where do you see yourself in 5 years interview question!\n\nTIMESTAMPS\n\n00:00 Intro\n01:03 Uncertainty of staying for 5 years\n01:21 The Formula\n03:03 Example Answer\n04:31 Example Answer Breakdown\n05:21 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n🗣️ Common Interview Questions Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewtips #career #wheredoyouseeyourselfin5years #realanswers", "duration" => 370, "filename" => "/downloads/Jeff Su/2020-10-21 Where Do You See Yourself in 5 Years - How to Answer/Where Do You See Yourself in 5 Years - How to Answer [ClmHniKlt6k].mp4", "id" => "ClmHniKlt6k", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ClmHniKlt6k", "playlist_index" => 177, "timestamp" => 1603263601, "title" => "Where Do You See Yourself in 5 Years - How to Answer", "upload_date" => "20201021"} 16:49:44.389 [debug] QUERY OK source="sources" db=2.5ms idle=1113.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:49:44.392 [debug] QUERY OK source="sources" db=2.2ms queue=0.1ms idle=1116.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:44.395 [debug] QUERY OK source="media_items" db=2.7ms idle=1119.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-10-21 07:00:01Z], 1] 16:49:44.402 [debug] QUERY OK source="media_items" db=5.4ms idle=1122.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=021\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nWhere Do You See Yourself In 5 Years is honestly like a trick question. How do you answer this question when most likely you won't be sticking around for that long? In this video I'll show you a formula that will let you answer this question in an honest manner without having to spend too much time figuring out \"where DO I see myself in 5 years?\"\n\nYes, this question is asking about your career goals; more specifically, your long term career goals. But too many people get caught up by trying to literally answer \"where do you see yourself in 5 YEARS?\" when they should be simply focusing on talking about the overall direction they see themselves heading towards within the company they're interviewing for.\n\nNot only do I share the formula that will help you come up with your own answer, but my example answer should give you a good idea of how you can adapt the the formula for your own needs. It's a painless strategy that you can use next time you're facing this tricky where do you see yourself in 5 years interview question!\n\nTIMESTAMPS\n\n00:00 Intro\n01:03 Uncertainty of staying for 5 years\n01:21 The Formula\n03:03 Example Answer\n04:31 Example Answer Breakdown\n05:21 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n🗣️ Common Interview Questions Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewtips #career #wheredoyouseeyourselfin5years #realanswers", "Where Do You See Yourself in 5 Years - How to Answer", "770920c7-2773-412d-a076-90ebe505a366", false, "ClmHniKlt6k", 1, [], 370, false, "https://www.youtube.com/watch?v=ClmHniKlt6k", 177, "/downloads/Jeff Su/2020-10-21 Where Do You See Yourself in 5 Years - How to Answer/Where Do You See Yourself in 5 Years - How to Answer [ClmHniKlt6k].mp4", false, false, 99, ~U[2020-10-21 07:00:01Z], ~U[2026-04-23 14:49:44Z], ~U[2026-04-23 14:49:44Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=021\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nWhere Do You See Yourself In 5 Years is honestly like a trick question. How do you answer this question when most likely you won't be sticking around for that long? In this video I'll show you a formula that will let you answer this question in an honest manner without having to spend too much time figuring out \"where DO I see myself in 5 years?\"\n\nYes, this question is asking about your career goals; more specifically, your long term career goals. But too many people get caught up by trying to literally answer \"where do you see yourself in 5 YEARS?\" when they should be simply focusing on talking about the overall direction they see themselves heading towards within the company they're interviewing for.\n\nNot only do I share the formula that will help you come up with your own answer, but my example answer should give you a good idea of how you can adapt the the formula for your own needs. It's a painless strategy that you can use next time you're facing this tricky where do you see yourself in 5 years interview question!\n\nTIMESTAMPS\n\n00:00 Intro\n01:03 Uncertainty of staying for 5 years\n01:21 The Formula\n03:03 Example Answer\n04:31 Example Answer Breakdown\n05:21 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n🗣️ Common Interview Questions Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewtips #career #wheredoyouseeyourselfin5years #realanswers", "Where Do You See Yourself in 5 Years - How to Answer", "ClmHniKlt6k", 1, 370, false, "https://www.youtube.com/watch?v=ClmHniKlt6k", "/downloads/Jeff Su/2020-10-21 Where Do You See Yourself in 5 Years - How to Answer/Where Do You See Yourself in 5 Years - How to Answer [ClmHniKlt6k].mp4", false, ~U[2020-10-21 07:00:01Z]] 16:49:44.406 [debug] QUERY OK source="sources" db=2.3ms queue=1.7ms idle=583.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:44.409 [debug] QUERY OK source="media_profiles" db=1.5ms queue=1.1ms idle=17.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] 16:49:44.413 [debug] QUERY OK source="media_items" db=2.0ms 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 [177] 16:49:44.413 [info] Kicking off download for media item #177 (ClmHniKlt6k) 16:49:44.421 [debug] QUERY OK source="tasks" db=0.5ms idle=13.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [181, 177, ~U[2026-04-23 14:49:44Z], ~U[2026-04-23 14:49:44Z]] 16:49:44.421 [debug] Current batch of media processed. Will check again in 1000ms 16:49:45.422 [debug] Current batch of media processed. Will check again in 1000ms 16:49:46.422 [debug] Current batch of media processed. Will check again in 1000ms 16:49:46.521 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=POZorIoSK5c --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/38/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3c/4a/3c4af7b028e84511e3b448b52d5634f011fb6146530a15104e1f1df8b6297795.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:49:46.522 [debug] QUERY OK db=0.1ms idle=698.4ms begin [] 16:49:46.523 [debug] QUERY OK source="media_items" db=1.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:49:40Z], "/downloads/Jeff Su/2024-10-01 10 INCREDIBLE things Google Sheets can do Right Now!/10 INCREDIBLE things Google Sheets can do Right Now! [POZorIoSK5c].mp4", "/downloads/Jeff Su/2024-10-01 10 INCREDIBLE things Google Sheets can do Right Now!/10 INCREDIBLE things Google Sheets can do Right Now! [POZorIoSK5c].info.json", "/downloads/Jeff Su/2024-10-01 10 INCREDIBLE things Google Sheets can do Right Now!/10 INCREDIBLE things Google Sheets can do Right Now! [POZorIoSK5c].nfo", "/downloads/Jeff Su/2024-10-01 10 INCREDIBLE things Google Sheets can do Right Now!/10 INCREDIBLE things Google Sheets can do Right Now! [POZorIoSK5c]-thumb.jpg", ~U[2026-04-23 14:49:46Z], 38] 16:49:46.527 [debug] QUERY OK source="media_metadata" db=3.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/38/metadata.json.gz", "/config/metadata/media_items/38/thumbnail.jpg", 38, ~U[2026-04-23 14:49:46Z], ~U[2026-04-23 14:49:46Z]] 16:49:46.528 [debug] QUERY OK db=0.8ms commit [] 16:49:46.532 [debug] QUERY OK source="media_items" db=3.0ms idle=256.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [41254174, ~U[2026-04-23 14:49:46Z], 38] 16:49:46.534 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:49:46.537 [info] {"args":{"id":38},"id":42,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":41431816,"event":"job:stop","queue_time":547101883,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:49:46.545 [info] {"args":{"id":40},"id":44,"meta":{},"system_time":1776955786545186890,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:49:46.546 [debug] QUERY OK source="media_items" db=0.9ms idle=272.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" = ?) [40] 16:49:46.547 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:49:46.549 [debug] QUERY OK source="sources" db=1.2ms queue=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:46.551 [debug] QUERY OK source="media_profiles" db=1.7ms queue=0.1ms idle=17.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] 16:49:46.552 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=14.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [40] 16:49:46.554 [debug] QUERY OK source="media_metadata" db=0.2ms idle=9.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [40] 16:49:46.555 [debug] QUERY OK source="media_profiles" db=0.6ms idle=8.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:49:46.556 [debug] QUERY OK source="settings" db=0.3ms idle=7.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:46.557 [debug] QUERY OK source="settings" db=0.7ms 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 [] 16:49:46.558 [debug] Running yt-dlp command for action: get_downloadable_status 16:49:46.560 [debug] QUERY OK source="settings" db=0.2ms idle=7.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:46.561 [debug] QUERY OK source="settings" db=1.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 [] 16:49:46.562 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=6.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:46.563 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=nVyD6THcvDQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/37/26/372638fbbe230888aa84812d47e4b4552adb4a3c6c23f3cbbb2116e54bb3b08e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:49:46.737 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=YoWdogtZRw8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1c/f0/1cf0707d8cea839f07b05dd91983109b2c8c0968119b04014d88e9ec4f4ca100.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:49:46.738 [debug] Running yt-dlp command for action: download 16:49:46.739 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=182.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:46.739 [debug] QUERY OK source="settings" db=0.3ms idle=181.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:46.740 [debug] QUERY OK source="settings" db=0.6ms idle=179.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:46.741 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=YoWdogtZRw8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/3c/91/3c9187a7292474cfbe62dabd0af6c36f87ccb78408e8fd2437948676d10593c4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:49:47.423 [debug] Current batch of media processed. Will check again in 1000ms 16:49:48.284 [info] {"source":"oban","duration":1018,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:49:48.426 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=020\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nQuestions you ask in an informational interview (or coffee chat) can make or break the experience for both of you, so in this video I share some of my best questions to ask during informational interviews. \n\nInformational interview questions should achieve 2 goals: (1) Tease out useful and meaningful insights from the professional you’re chatting with, and (2) Make an impression on them so they’d be more willing to vouch for you in the future.\n\nI share 3 “types” of questions to ask in an informational interview and provide 2-3 examples from each type. Taken together, these 3 categories of questions will show the interviewee you have given a lot of thought on all aspects of the job and company. \n\nSo whether you call it an informational interview, exploratory interview, or simply a coffee chat, these questions will help you make a strong and positive impression that may ultimately lead to more opportunities. \n\nTIMESTAMPS\n00:00 Intro\n00:57 The 3 Types of Questions you need to Ask\n01:20 Sample Tasks and Responsibility Questions\n02:28 Sample Career Path Questions\n03:29 Sample Industry Knowledge Questions\n04:56 Non-Negotiable Question\n05:43 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#informationalinterviews #coffeechats #networking #jobsearch", "duration" => 370, "filename" => "/downloads/Jeff Su/2020-10-14 Informational Interviews: Best Questions to Ask/Informational Interviews: Best Questions to Ask [4b2iagdHw8M].mp4", "id" => "4b2iagdHw8M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4b2iagdHw8M", "playlist_index" => 178, "timestamp" => 1602658801, "title" => "Informational Interviews: Best Questions to Ask", "upload_date" => "20201014"} 16:49:48.426 [debug] QUERY OK source="sources" db=0.4ms idle=153.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:49:48.427 [debug] QUERY OK source="sources" db=0.3ms idle=154.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:48.428 [debug] QUERY OK source="media_items" db=0.8ms idle=154.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-10-14 07:00:01Z], 1] 16:49:48.431 [debug] QUERY OK source="media_items" db=1.9ms idle=155.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=020\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nQuestions you ask in an informational interview (or coffee chat) can make or break the experience for both of you, so in this video I share some of my best questions to ask during informational interviews. \n\nInformational interview questions should achieve 2 goals: (1) Tease out useful and meaningful insights from the professional you’re chatting with, and (2) Make an impression on them so they’d be more willing to vouch for you in the future.\n\nI share 3 “types” of questions to ask in an informational interview and provide 2-3 examples from each type. Taken together, these 3 categories of questions will show the interviewee you have given a lot of thought on all aspects of the job and company. \n\nSo whether you call it an informational interview, exploratory interview, or simply a coffee chat, these questions will help you make a strong and positive impression that may ultimately lead to more opportunities. \n\nTIMESTAMPS\n00:00 Intro\n00:57 The 3 Types of Questions you need to Ask\n01:20 Sample Tasks and Responsibility Questions\n02:28 Sample Career Path Questions\n03:29 Sample Industry Knowledge Questions\n04:56 Non-Negotiable Question\n05:43 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#informationalinterviews #coffeechats #networking #jobsearch", "Informational Interviews: Best Questions to Ask", "77ac4cdd-a00c-4201-b5c2-98ed59b8a165", false, "4b2iagdHw8M", 1, [], 370, false, "https://www.youtube.com/watch?v=4b2iagdHw8M", 178, "/downloads/Jeff Su/2020-10-14 Informational Interviews: Best Questions to Ask/Informational Interviews: Best Questions to Ask [4b2iagdHw8M].mp4", false, false, 99, ~U[2020-10-14 07:00:01Z], ~U[2026-04-23 14:49:48Z], ~U[2026-04-23 14:49:48Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=020\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nQuestions you ask in an informational interview (or coffee chat) can make or break the experience for both of you, so in this video I share some of my best questions to ask during informational interviews. \n\nInformational interview questions should achieve 2 goals: (1) Tease out useful and meaningful insights from the professional you’re chatting with, and (2) Make an impression on them so they’d be more willing to vouch for you in the future.\n\nI share 3 “types” of questions to ask in an informational interview and provide 2-3 examples from each type. Taken together, these 3 categories of questions will show the interviewee you have given a lot of thought on all aspects of the job and company. \n\nSo whether you call it an informational interview, exploratory interview, or simply a coffee chat, these questions will help you make a strong and positive impression that may ultimately lead to more opportunities. \n\nTIMESTAMPS\n00:00 Intro\n00:57 The 3 Types of Questions you need to Ask\n01:20 Sample Tasks and Responsibility Questions\n02:28 Sample Career Path Questions\n03:29 Sample Industry Knowledge Questions\n04:56 Non-Negotiable Question\n05:43 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#informationalinterviews #coffeechats #networking #jobsearch", "Informational Interviews: Best Questions to Ask", "4b2iagdHw8M", 1, 370, false, "https://www.youtube.com/watch?v=4b2iagdHw8M", "/downloads/Jeff Su/2020-10-14 Informational Interviews: Best Questions to Ask/Informational Interviews: Best Questions to Ask [4b2iagdHw8M].mp4", false, ~U[2020-10-14 07:00:01Z]] 16:49:48.432 [debug] QUERY OK source="sources" db=0.2ms idle=146.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:48.432 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:49:48.433 [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 [178] 16:49:48.433 [info] Kicking off download for media item #178 (4b2iagdHw8M) 16:49:48.438 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=5.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [182, 178, ~U[2026-04-23 14:49:48Z], ~U[2026-04-23 14:49:48Z]] 16:49:48.438 [debug] Current batch of media processed. Will check again in 1000ms 16:49:49.450 [debug] Current batch of media processed. Will check again in 1000ms 16:49:50.450 [debug] Current batch of media processed. Will check again in 1000ms 16:49:51.451 [debug] Current batch of media processed. Will check again in 1000ms 16:49:52.453 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=019\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIf you have an employment gap of longer than 6 months, you will most likely need to explain that employment gap in a job interview. This video shows you the best way to reframe that question so you’re able to craft a strong, well thought-out answer when faced with skeptical interviewers who are curious about your career and job gaps. \n\nThere are plenty of valid reasons for gaps in employment; school, taking care of loved ones, market factors outside of your control. So when interviewers are asking about your employment gaps on the resume, you want to be upfront, but also focus on the skills you learned during that break in employment. \n\nThere’s no need to focus too much on the employment gap reasons, but rather on your learnings and takeaways from the unemployed period. Once you shift your own mindset away from the employment gaps on the resume, you’ll see the skills you learned, the character traits you’ve built, are all very applicable to the role you’re interviewing for. \n\nTIMESTAMPS\n00:00 Intro\n00:38 Why Employment Gaps Matter\n01:04 The Strategy\n02:05 Personal Reason Example\n03:43 Professional Scenario Example\n04:14 Sample Answer\n05:09 Last Few Pointers\n06:05 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nCommon Interview Questions Playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP&ab_channel=JeffSu\nWhy Do You Want to Work Here video - https://youtu.be/x-4MewJpaso\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#EmploymentGap #ResumeGaps #CareerAndInterviewTips", "duration" => 388, "filename" => "/downloads/Jeff Su/2020-10-07 Explain an Employment Gap in a Job Interview/Explain an Employment Gap in a Job Interview [cr6ptEK-Mgs].mp4", "id" => "cr6ptEK-Mgs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cr6ptEK-Mgs", "playlist_index" => 179, "timestamp" => 1602054009, "title" => "Explain an Employment Gap in a Job Interview", "upload_date" => "20201007"} 16:49:52.455 [debug] QUERY OK source="sources" db=1.9ms idle=614.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:49:52.458 [debug] QUERY OK source="sources" db=1.7ms idle=183.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:52.460 [debug] QUERY OK source="media_items" db=2.2ms idle=185.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-10-07 07:00:09Z], 1] 16:49:52.465 [debug] QUERY OK source="media_items" db=3.6ms idle=188.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=019\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIf you have an employment gap of longer than 6 months, you will most likely need to explain that employment gap in a job interview. This video shows you the best way to reframe that question so you’re able to craft a strong, well thought-out answer when faced with skeptical interviewers who are curious about your career and job gaps. \n\nThere are plenty of valid reasons for gaps in employment; school, taking care of loved ones, market factors outside of your control. So when interviewers are asking about your employment gaps on the resume, you want to be upfront, but also focus on the skills you learned during that break in employment. \n\nThere’s no need to focus too much on the employment gap reasons, but rather on your learnings and takeaways from the unemployed period. Once you shift your own mindset away from the employment gaps on the resume, you’ll see the skills you learned, the character traits you’ve built, are all very applicable to the role you’re interviewing for. \n\nTIMESTAMPS\n00:00 Intro\n00:38 Why Employment Gaps Matter\n01:04 The Strategy\n02:05 Personal Reason Example\n03:43 Professional Scenario Example\n04:14 Sample Answer\n05:09 Last Few Pointers\n06:05 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nCommon Interview Questions Playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP&ab_channel=JeffSu\nWhy Do You Want to Work Here video - https://youtu.be/x-4MewJpaso\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#EmploymentGap #ResumeGaps #CareerAndInterviewTips", "Explain an Employment Gap in a Job Interview", "6266409c-277b-44e8-8208-68e6990b24da", false, "cr6ptEK-Mgs", 1, [], 388, false, "https://www.youtube.com/watch?v=cr6ptEK-Mgs", 179, "/downloads/Jeff Su/2020-10-07 Explain an Employment Gap in a Job Interview/Explain an Employment Gap in a Job Interview [cr6ptEK-Mgs].mp4", false, false, 99, ~U[2020-10-07 07:00:09Z], ~U[2026-04-23 14:49:52Z], ~U[2026-04-23 14:49:52Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=019\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIf you have an employment gap of longer than 6 months, you will most likely need to explain that employment gap in a job interview. This video shows you the best way to reframe that question so you’re able to craft a strong, well thought-out answer when faced with skeptical interviewers who are curious about your career and job gaps. \n\nThere are plenty of valid reasons for gaps in employment; school, taking care of loved ones, market factors outside of your control. So when interviewers are asking about your employment gaps on the resume, you want to be upfront, but also focus on the skills you learned during that break in employment. \n\nThere’s no need to focus too much on the employment gap reasons, but rather on your learnings and takeaways from the unemployed period. Once you shift your own mindset away from the employment gaps on the resume, you’ll see the skills you learned, the character traits you’ve built, are all very applicable to the role you’re interviewing for. \n\nTIMESTAMPS\n00:00 Intro\n00:38 Why Employment Gaps Matter\n01:04 The Strategy\n02:05 Personal Reason Example\n03:43 Professional Scenario Example\n04:14 Sample Answer\n05:09 Last Few Pointers\n06:05 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nCommon Interview Questions Playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP&ab_channel=JeffSu\nWhy Do You Want to Work Here video - https://youtu.be/x-4MewJpaso\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#EmploymentGap #ResumeGaps #CareerAndInterviewTips", "Explain an Employment Gap in a Job Interview", "cr6ptEK-Mgs", 1, 388, false, "https://www.youtube.com/watch?v=cr6ptEK-Mgs", "/downloads/Jeff Su/2020-10-07 Explain an Employment Gap in a Job Interview/Explain an Employment Gap in a Job Interview [cr6ptEK-Mgs].mp4", false, ~U[2020-10-07 07:00:09Z]] 16:49:52.466 [debug] QUERY OK source="sources" db=0.4ms idle=192.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:52.467 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=10.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:49:52.468 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms 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 [179] 16:49:52.468 [info] Kicking off download for media item #179 (cr6ptEK-Mgs) 16:49:52.473 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=5.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [183, 179, ~U[2026-04-23 14:49:52Z], ~U[2026-04-23 14:49:52Z]] 16:49:52.473 [debug] Current batch of media processed. Will check again in 1000ms 16:49:52.681 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=nVyD6THcvDQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/37/26/372638fbbe230888aa84812d47e4b4552adb4a3c6c23f3cbbb2116e54bb3b08e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:49:52.681 [debug] Running yt-dlp command for action: download 16:49:52.682 [debug] QUERY OK source="settings" db=0.2ms idle=214.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:52.682 [debug] QUERY OK source="settings" db=0.1ms idle=214.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:52.683 [debug] QUERY OK source="settings" db=0.2ms idle=211.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:49:52.683 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=nVyD6THcvDQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/89/49/894973fb1d68af9965108ddeb438bc0a0d3f36e956a5e387360341b8f1ef085a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:49:53.473 [debug] Current batch of media processed. Will check again in 1000ms 16:49:54.475 [debug] Current batch of media processed. Will check again in 1000ms 16:49:55.475 [debug] Current batch of media processed. Will check again in 1000ms 16:49:56.477 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=018\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIn this video, I share 3 practical tools you can use to research a company before going in for an interview. The three tools are all free to use but are rarely used by candidates when they research a company for an interview - super weird!\n\nThe first interview research tool I share is Google Alerts. It’s a simple application that just takes a few minutes to set up and will continue to run automatically. Think of it as a personal research assistant that updates you whenever your target company is mentioned in the news or in popular blog posts. \n\nThe second interview research tool to use when researching a company for an interview is Google Trends. This useful little product shows you user interest for the term you’re searching for and can provide very useful insights for you to bring up during the interview. \n\nThe third interview research tool is the Vault Career Library. While the premium version is accessible mainly to current college students, the free resources they provide include company research worksheets, industry research analyses, and job interview reviews. \n\nSo the next time you research a company before the job interview, make sure to spend some time with these 3 tools and make a strong impression on the interviewer! \n\nTIMESTAMPS\n00:00 Intro\n00:36 When to use research findings\n01:02 Set up Google Alerts\n04:30 Use Google Trends to find user insights\n07:23 Leverage Vault Career Library for exclusive resources\n09:10 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWhy Do You Want to Work Here video - https://youtu.be/x-4MewJpaso\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#InterviewResearch #InterviewTips #BePrepared", "duration" => 587, "filename" => "/downloads/Jeff Su/2020-09-30 How to Research Before an Interview (3 Practical Tools)/How to Research Before an Interview (3 Practical Tools) [8MYHrih6syw].mp4", "id" => "8MYHrih6syw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8MYHrih6syw", "playlist_index" => 180, "timestamp" => 1601449201, "title" => "How to Research Before an Interview (3 Practical Tools)", "upload_date" => "20200930"} 16:49:56.478 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=630.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:49:56.483 [debug] QUERY OK source="sources" db=4.2ms idle=205.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:49:56.484 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=210.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-09-30 07:00:01Z], 1] 16:49:56.487 [debug] QUERY OK source="media_items" db=2.0ms idle=211.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=018\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIn this video, I share 3 practical tools you can use to research a company before going in for an interview. The three tools are all free to use but are rarely used by candidates when they research a company for an interview - super weird!\n\nThe first interview research tool I share is Google Alerts. It’s a simple application that just takes a few minutes to set up and will continue to run automatically. Think of it as a personal research assistant that updates you whenever your target company is mentioned in the news or in popular blog posts. \n\nThe second interview research tool to use when researching a company for an interview is Google Trends. This useful little product shows you user interest for the term you’re searching for and can provide very useful insights for you to bring up during the interview. \n\nThe third interview research tool is the Vault Career Library. While the premium version is accessible mainly to current college students, the free resources they provide include company research worksheets, industry research analyses, and job interview reviews. \n\nSo the next time you research a company before the job interview, make sure to spend some time with these 3 tools and make a strong impression on the interviewer! \n\nTIMESTAMPS\n00:00 Intro\n00:36 When to use research findings\n01:02 Set up Google Alerts\n04:30 Use Google Trends to find user insights\n07:23 Leverage Vault Career Library for exclusive resources\n09:10 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWhy Do You Want to Work Here video - https://youtu.be/x-4MewJpaso\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#InterviewResearch #InterviewTips #BePrepared", "How to Research Before an Interview (3 Practical Tools)", "9e7aa49b-f30a-47b6-98ff-d03d7454f7bd", false, "8MYHrih6syw", 1, [], 587, false, "https://www.youtube.com/watch?v=8MYHrih6syw", 180, "/downloads/Jeff Su/2020-09-30 How to Research Before an Interview (3 Practical Tools)/How to Research Before an Interview (3 Practical Tools) [8MYHrih6syw].mp4", false, false, 99, ~U[2020-09-30 07:00:01Z], ~U[2026-04-23 14:49:56Z], ~U[2026-04-23 14:49:56Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=018\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIn this video, I share 3 practical tools you can use to research a company before going in for an interview. The three tools are all free to use but are rarely used by candidates when they research a company for an interview - super weird!\n\nThe first interview research tool I share is Google Alerts. It’s a simple application that just takes a few minutes to set up and will continue to run automatically. Think of it as a personal research assistant that updates you whenever your target company is mentioned in the news or in popular blog posts. \n\nThe second interview research tool to use when researching a company for an interview is Google Trends. This useful little product shows you user interest for the term you’re searching for and can provide very useful insights for you to bring up during the interview. \n\nThe third interview research tool is the Vault Career Library. While the premium version is accessible mainly to current college students, the free resources they provide include company research worksheets, industry research analyses, and job interview reviews. \n\nSo the next time you research a company before the job interview, make sure to spend some time with these 3 tools and make a strong impression on the interviewer! \n\nTIMESTAMPS\n00:00 Intro\n00:36 When to use research findings\n01:02 Set up Google Alerts\n04:30 Use Google Trends to find user insights\n07:23 Leverage Vault Career Library for exclusive resources\n09:10 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWhy Do You Want to Work Here video - https://youtu.be/x-4MewJpaso\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#InterviewResearch #InterviewTips #BePrepared", "How to Research Before an Interview (3 Practical Tools)", "8MYHrih6syw", 1, 587, false, "https://www.youtube.com/watch?v=8MYHrih6syw", "/downloads/Jeff Su/2020-09-30 How to Research Before an Interview (3 Practical Tools)/How to Research Before an Interview (3 Practical Tools) [8MYHrih6syw].mp4", false, ~U[2020-09-30 07:00:01Z]] 16:49:56.494 [debug] QUERY OK source="sources" db=4.4ms queue=2.3ms idle=215.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:49:56.502 [debug] QUERY OK source="media_profiles" db=6.7ms queue=0.2ms idle=16.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] 16:49:56.504 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=19.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 [180] 16:49:56.504 [info] Kicking off download for media item #180 (8MYHrih6syw) 16:49:56.509 [debug] QUERY OK source="tasks" db=0.2ms idle=13.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [184, 180, ~U[2026-04-23 14:49:56Z], ~U[2026-04-23 14:49:56Z]] 16:49:56.509 [debug] Current batch of media processed. Will check again in 1000ms 16:49:57.509 [debug] Current batch of media processed. Will check again in 1000ms 16:49:58.512 [debug] Current batch of media processed. Will check again in 1000ms 16:49:59.512 [debug] Current batch of media processed. Will check again in 1000ms 16:50:00.219 [info] {"source":"oban","duration":429,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:50:00.514 [debug] Current batch of media processed. Will check again in 1000ms 16:50:01.515 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=017\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n“Why do you want to work here?” is a tricky interview question since there are 3 implicit things the interviewer is looking for. Variations of this popular interview question include “Why are you interested in this position,” “Why do you want this job?” and “Why do you want to work for us?” But all three of these are asking the same thing. As long as you grasp this concept, you can take the best answer examples from this video and adapt it for your own use case. \n\nIn this video I provide sample answers that address all the implicit questions the interviewer is looking for. These example answers have worked well for me and my community so I’m confident you will find some learnings here. \n\nFirst, the interviewer is trying to figure out whether or not you have a growth mindset. Whether you’re trying to improve yourself so you can benefit their company. Do you want the job because of superficial reasons (like salary, commute, and location) or are in it for the long run?\n\nSecondly, how much research have you done? Are you really interested in working for the company you’re interviewing with? Or is it just a stepping stone to something else?\n\nFinally, how enthusiastic are you about the role? What exactly about the position interests you? Can you provide specific examples that speak to why the role would benefit both the company and you?\n\nTIMESTAMPS\n00:00 Intro\n00:23 What interviewer wants to achieve with this question\n00:50 Do you have a growth mindset?\n03:34 How much research have you done?\n05:44 How enthusiastic are you about the role?\n08:11 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nReach out to Recruiters (the right way) - https://youtu.be/jnzh5QTKbsw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#WhyHere #InterviewTips #TrickyQuestion #JeffSu", "duration" => 514, "filename" => "/downloads/Jeff Su/2020-09-23 Why Do You Want to Work Here? (Answer this Tricky Question)/Why Do You Want to Work Here? (Answer this Tricky Question) [x-4MewJpaso].mp4", "id" => "x-4MewJpaso", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=x-4MewJpaso", "playlist_index" => 181, "timestamp" => 1600844408, "title" => "Why Do You Want to Work Here? (Answer this Tricky Question)", "upload_date" => "20200923"} 16:50:01.516 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1242.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:50:01.516 [debug] QUERY OK source="sources" db=0.1ms idle=1243.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:01.517 [debug] QUERY OK source="media_items" db=0.8ms idle=1244.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-09-23 07:00:08Z], 1] 16:50:01.521 [debug] QUERY OK source="media_items" db=2.2ms idle=660.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=017\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n“Why do you want to work here?” is a tricky interview question since there are 3 implicit things the interviewer is looking for. Variations of this popular interview question include “Why are you interested in this position,” “Why do you want this job?” and “Why do you want to work for us?” But all three of these are asking the same thing. As long as you grasp this concept, you can take the best answer examples from this video and adapt it for your own use case. \n\nIn this video I provide sample answers that address all the implicit questions the interviewer is looking for. These example answers have worked well for me and my community so I’m confident you will find some learnings here. \n\nFirst, the interviewer is trying to figure out whether or not you have a growth mindset. Whether you’re trying to improve yourself so you can benefit their company. Do you want the job because of superficial reasons (like salary, commute, and location) or are in it for the long run?\n\nSecondly, how much research have you done? Are you really interested in working for the company you’re interviewing with? Or is it just a stepping stone to something else?\n\nFinally, how enthusiastic are you about the role? What exactly about the position interests you? Can you provide specific examples that speak to why the role would benefit both the company and you?\n\nTIMESTAMPS\n00:00 Intro\n00:23 What interviewer wants to achieve with this question\n00:50 Do you have a growth mindset?\n03:34 How much research have you done?\n05:44 How enthusiastic are you about the role?\n08:11 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nReach out to Recruiters (the right way) - https://youtu.be/jnzh5QTKbsw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#WhyHere #InterviewTips #TrickyQuestion #JeffSu", "Why Do You Want to Work Here? (Answer this Tricky Question)", "c8711912-132a-4be9-bd6b-c25a274c207e", false, "x-4MewJpaso", 1, [], 514, false, "https://www.youtube.com/watch?v=x-4MewJpaso", 181, "/downloads/Jeff Su/2020-09-23 Why Do You Want to Work Here? (Answer this Tricky Question)/Why Do You Want to Work Here? (Answer this Tricky Question) [x-4MewJpaso].mp4", false, false, 99, ~U[2020-09-23 07:00:08Z], ~U[2026-04-23 14:50:01Z], ~U[2026-04-23 14:50:01Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=017\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n“Why do you want to work here?” is a tricky interview question since there are 3 implicit things the interviewer is looking for. Variations of this popular interview question include “Why are you interested in this position,” “Why do you want this job?” and “Why do you want to work for us?” But all three of these are asking the same thing. As long as you grasp this concept, you can take the best answer examples from this video and adapt it for your own use case. \n\nIn this video I provide sample answers that address all the implicit questions the interviewer is looking for. These example answers have worked well for me and my community so I’m confident you will find some learnings here. \n\nFirst, the interviewer is trying to figure out whether or not you have a growth mindset. Whether you’re trying to improve yourself so you can benefit their company. Do you want the job because of superficial reasons (like salary, commute, and location) or are in it for the long run?\n\nSecondly, how much research have you done? Are you really interested in working for the company you’re interviewing with? Or is it just a stepping stone to something else?\n\nFinally, how enthusiastic are you about the role? What exactly about the position interests you? Can you provide specific examples that speak to why the role would benefit both the company and you?\n\nTIMESTAMPS\n00:00 Intro\n00:23 What interviewer wants to achieve with this question\n00:50 Do you have a growth mindset?\n03:34 How much research have you done?\n05:44 How enthusiastic are you about the role?\n08:11 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nReach out to Recruiters (the right way) - https://youtu.be/jnzh5QTKbsw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#WhyHere #InterviewTips #TrickyQuestion #JeffSu", "Why Do You Want to Work Here? (Answer this Tricky Question)", "x-4MewJpaso", 1, 514, false, "https://www.youtube.com/watch?v=x-4MewJpaso", "/downlo (truncated) 16:50:01.522 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:50:01.522 [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] 16:50:01.523 [debug] QUERY OK source="media_items" db=0.2ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [181] 16:50:01.523 [info] Kicking off download for media item #181 (x-4MewJpaso) 16:50:01.526 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=4.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [185, 181, ~U[2026-04-23 14:50:01Z], ~U[2026-04-23 14:50:01Z]] 16:50:01.527 [debug] Current batch of media processed. Will check again in 1000ms 16:50:02.527 [debug] Current batch of media processed. Will check again in 1000ms 16:50:03.528 [debug] Current batch of media processed. Will check again in 1000ms 16:50:04.529 [debug] Current batch of media processed. Will check again in 1000ms 16:50:05.530 [debug] Current batch of media processed. Will check again in 1000ms 16:50:06.532 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=016\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nIn this video you’ll learn the #1 Tip for reaching out to recruiters on LinkedIn. I provide sample messages that have been proven to work when connecting with recruiters on LinkedIn. You will learn how to contact the recruiter after job application or resume submission, so you won’t have to worry about writing those cold messages again!\n\nRecruiters on LinkedIn are usually bombarded with connection requests and messages from hopeful candidates, so how can you stand out when you reach out to recruiters on LinkedIn?\n\nI share the best tip that has worked for me and many people in my community (Facebook group linked below), followed by the 3 steps that’s needed to make it work, as well as sample messages so you can see exactly how I went about it. \n\nSo the next time you connect with or message recruiters on LinkedIn, make sure to write messages using the structure I provide in this video! Whether you’re sending a cold message or sending a follow up note after applying for a job, you’ll be able to get the recruiter’s attention. \n\nTIMESTAMPS\n00:00 Intro\n00:24 The Tip\n00:33 Why it works\n01:24 Additional pro tip\n02:02 Step 1 - Request to connect\n02:55 Step 2 - Ask recruiter for introduction\n03:59 Step 3 - Following up\n05:57 Ending\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nTop 5 LinkedIn Profile Tips video - https://youtu.be/BcfGWi8Qywk\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n#LinkedIn #Recruiter #Network", "duration" => 387, "filename" => "/downloads/Jeff Su/2020-09-16 Reach out to Recruiters on LinkedIn (the right way!)/Reach out to Recruiters on LinkedIn (the right way!) [jnzh5QTKbsw].mp4", "id" => "jnzh5QTKbsw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=jnzh5QTKbsw", "playlist_index" => 182, "timestamp" => 1600239606, "title" => "Reach out to Recruiters on LinkedIn (the right way!)", "upload_date" => "20200916"} 16:50:06.534 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=1259.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:50:06.535 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1262.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:06.537 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1263.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-09-16 07:00:06Z], 1] 16:50:06.540 [debug] QUERY OK source="media_items" db=1.8ms idle=1265.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=016\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nIn this video you’ll learn the #1 Tip for reaching out to recruiters on LinkedIn. I provide sample messages that have been proven to work when connecting with recruiters on LinkedIn. You will learn how to contact the recruiter after job application or resume submission, so you won’t have to worry about writing those cold messages again!\n\nRecruiters on LinkedIn are usually bombarded with connection requests and messages from hopeful candidates, so how can you stand out when you reach out to recruiters on LinkedIn?\n\nI share the best tip that has worked for me and many people in my community (Facebook group linked below), followed by the 3 steps that’s needed to make it work, as well as sample messages so you can see exactly how I went about it. \n\nSo the next time you connect with or message recruiters on LinkedIn, make sure to write messages using the structure I provide in this video! Whether you’re sending a cold message or sending a follow up note after applying for a job, you’ll be able to get the recruiter’s attention. \n\nTIMESTAMPS\n00:00 Intro\n00:24 The Tip\n00:33 Why it works\n01:24 Additional pro tip\n02:02 Step 1 - Request to connect\n02:55 Step 2 - Ask recruiter for introduction\n03:59 Step 3 - Following up\n05:57 Ending\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nTop 5 LinkedIn Profile Tips video - https://youtu.be/BcfGWi8Qywk\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n#LinkedIn #Recruiter #Network", "Reach out to Recruiters on LinkedIn (the right way!)", "16b6c752-f261-4048-b428-96702dbd833e", false, "jnzh5QTKbsw", 1, [], 387, false, "https://www.youtube.com/watch?v=jnzh5QTKbsw", 182, "/downloads/Jeff Su/2020-09-16 Reach out to Recruiters on LinkedIn (the right way!)/Reach out to Recruiters on LinkedIn (the right way!) [jnzh5QTKbsw].mp4", false, false, 99, ~U[2020-09-16 07:00:06Z], ~U[2026-04-23 14:50:06Z], ~U[2026-04-23 14:50:06Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=016\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nIn this video you’ll learn the #1 Tip for reaching out to recruiters on LinkedIn. I provide sample messages that have been proven to work when connecting with recruiters on LinkedIn. You will learn how to contact the recruiter after job application or resume submission, so you won’t have to worry about writing those cold messages again!\n\nRecruiters on LinkedIn are usually bombarded with connection requests and messages from hopeful candidates, so how can you stand out when you reach out to recruiters on LinkedIn?\n\nI share the best tip that has worked for me and many people in my community (Facebook group linked below), followed by the 3 steps that’s needed to make it work, as well as sample messages so you can see exactly how I went about it. \n\nSo the next time you connect with or message recruiters on LinkedIn, make sure to write messages using the structure I provide in this video! Whether you’re sending a cold message or sending a follow up note after applying for a job, you’ll be able to get the recruiter’s attention. \n\nTIMESTAMPS\n00:00 Intro\n00:24 The Tip\n00:33 Why it works\n01:24 Additional pro tip\n02:02 Step 1 - Request to connect\n02:55 Step 2 - Ask recruiter for introduction\n03:59 Step 3 - Following up\n05:57 Ending\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nTop 5 LinkedIn Profile Tips video - https://youtu.be/BcfGWi8Qywk\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n#LinkedIn #Recruiter #Network", "Reach out to Recruiters on LinkedIn (the right way!)", "jnzh5QTKbsw", 1, 387, false, "https://www.youtube.com/watch?v=jnzh5QTKbsw", "/downloads/Jeff Su/2020-09-16 Reach out to Recruiters on LinkedIn (the right way!)/Reach out to Recruiters on LinkedIn (the right way!) [jnzh5QTKbsw].mp4", false, ~U[2020-09-16 07:00:06Z]] 16:50:06.541 [debug] QUERY OK source="sources" db=0.3ms idle=673.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:06.542 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 16:50:06.543 [debug] QUERY OK source="media_items" db=0.4ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [182] 16:50:06.543 [info] Kicking off download for media item #182 (jnzh5QTKbsw) 16:50:06.548 [debug] QUERY OK source="tasks" db=0.3ms idle=6.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [186, 182, ~U[2026-04-23 14:50:06Z], ~U[2026-04-23 14:50:06Z]] 16:50:06.548 [debug] Current batch of media processed. Will check again in 1000ms 16:50:07.223 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=YoWdogtZRw8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/3c/91/3c9187a7292474cfbe62dabd0af6c36f87ccb78408e8fd2437948676d10593c4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:50:07.261 [debug] Running yt-dlp command for action: download_thumbnail 16:50:07.263 [debug] QUERY OK source="settings" db=0.2ms idle=720.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:07.265 [debug] QUERY OK source="settings" db=0.8ms idle=717.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:07.266 [debug] QUERY OK source="settings" db=0.8ms idle=717.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:07.266 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=YoWdogtZRw8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/39/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6b/03/6b03d1c99c8a528d7147d9060c40e60a87ae6f93cd7305e932f3fddae7ff713e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:50:07.549 [debug] Current batch of media processed. Will check again in 1000ms 16:50:08.550 [debug] Current batch of media processed. Will check again in 1000ms 16:50:09.551 [debug] Current batch of media processed. Will check again in 1000ms 16:50:10.553 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=015\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIn this video, I show you how to use #LinkedIn to connect like a pro! You’ll see sample LinkedIn connection requests that have impressed even me, and you’ll be able to craft your own request message template. \n\n84% of people find jobs using a “weak” relationship, and in the 21st century, LinkedIn is arguably the most powerful platform to effectively connect with these “weak” connections. \n\nThrough the three tips I mention, you will learn to connect with someone on LinkedIn without knowing the person either for a job, or just to expand your professional network! I’ll teach you how to adhere to LinkedIn connection request etiquette (super important!) and you might even be able to connect on LinkedIn without viewing the profile first! \n\nPeople are often faced with the challenge of connecting with others on LinkedIn without really knowing them beforehand or without a proper introduction; but you will soon see you are able to message someone on LinkedIn who is not a connection (for free) and write custom, thoughtful messages that get an engaged response. \n\nTIMESTAMPS\n00:00 Intro\n01:08 Tip 1 - Use Filter feature to find relevant Alumni\n02:48 Tip 2 - Message anyone on LinkedIn for free\n04:48 Tip 3 - Write custom and thoughtful messages\n06:17 Bonus tip\n07:01 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nLinkedIn Profile video - https://youtu.be/BcfGWi8Qywk\nCareer trajectory video - https://youtu.be/2MAwSCZYoVw\n\nMARK GRANOVETTER’S RESEARCH PAPER\nThe Strength of Weak Ties (full PDF) - https://sociology.stanford.edu/sites/g/files/sbiybj9501/f/publications/the_strength_of_weak_ties_and_exch_w-gans.pdf\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #Professional #Network", "duration" => 458, "filename" => "/downloads/Jeff Su/2020-09-09 LinkedIn: How to Connect Like a Pro/LinkedIn: How to Connect Like a Pro [9BdbGZtnFnQ].mp4", "id" => "9BdbGZtnFnQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9BdbGZtnFnQ", "playlist_index" => 183, "timestamp" => 1599642001, "title" => "LinkedIn: How to Connect Like a Pro", "upload_date" => "20200909"} 16:50:10.554 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=678.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:50:10.554 [debug] QUERY OK source="sources" db=0.2ms idle=281.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:10.556 [debug] QUERY OK source="media_items" db=0.8ms idle=282.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-09-09 09:00:01Z], 1] 16:50:10.559 [debug] QUERY OK source="media_items" db=2.2ms idle=283.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=015\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIn this video, I show you how to use #LinkedIn to connect like a pro! You’ll see sample LinkedIn connection requests that have impressed even me, and you’ll be able to craft your own request message template. \n\n84% of people find jobs using a “weak” relationship, and in the 21st century, LinkedIn is arguably the most powerful platform to effectively connect with these “weak” connections. \n\nThrough the three tips I mention, you will learn to connect with someone on LinkedIn without knowing the person either for a job, or just to expand your professional network! I’ll teach you how to adhere to LinkedIn connection request etiquette (super important!) and you might even be able to connect on LinkedIn without viewing the profile first! \n\nPeople are often faced with the challenge of connecting with others on LinkedIn without really knowing them beforehand or without a proper introduction; but you will soon see you are able to message someone on LinkedIn who is not a connection (for free) and write custom, thoughtful messages that get an engaged response. \n\nTIMESTAMPS\n00:00 Intro\n01:08 Tip 1 - Use Filter feature to find relevant Alumni\n02:48 Tip 2 - Message anyone on LinkedIn for free\n04:48 Tip 3 - Write custom and thoughtful messages\n06:17 Bonus tip\n07:01 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nLinkedIn Profile video - https://youtu.be/BcfGWi8Qywk\nCareer trajectory video - https://youtu.be/2MAwSCZYoVw\n\nMARK GRANOVETTER’S RESEARCH PAPER\nThe Strength of Weak Ties (full PDF) - https://sociology.stanford.edu/sites/g/files/sbiybj9501/f/publications/the_strength_of_weak_ties_and_exch_w-gans.pdf\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #Professional #Network", "LinkedIn: How to Connect Like a Pro", "3e8f42c8-700f-46e3-8dc2-6f3bf462a3f8", false, "9BdbGZtnFnQ", 1, [], 458, false, "https://www.youtube.com/watch?v=9BdbGZtnFnQ", 183, "/downloads/Jeff Su/2020-09-09 LinkedIn: How to Connect Like a Pro/LinkedIn: How to Connect Like a Pro [9BdbGZtnFnQ].mp4", false, false, 99, ~U[2020-09-09 09:00:01Z], ~U[2026-04-23 14:50:10Z], ~U[2026-04-23 14:50:10Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=015\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIn this video, I show you how to use #LinkedIn to connect like a pro! You’ll see sample LinkedIn connection requests that have impressed even me, and you’ll be able to craft your own request message template. \n\n84% of people find jobs using a “weak” relationship, and in the 21st century, LinkedIn is arguably the most powerful platform to effectively connect with these “weak” connections. \n\nThrough the three tips I mention, you will learn to connect with someone on LinkedIn without knowing the person either for a job, or just to expand your professional network! I’ll teach you how to adhere to LinkedIn connection request etiquette (super important!) and you might even be able to connect on LinkedIn without viewing the profile first! \n\nPeople are often faced with the challenge of connecting with others on LinkedIn without really knowing them beforehand or without a proper introduction; but you will soon see you are able to message someone on LinkedIn who is not a connection (for free) and write custom, thoughtful messages that get an engaged response. \n\nTIMESTAMPS\n00:00 Intro\n01:08 Tip 1 - Use Filter feature to find relevant Alumni\n02:48 Tip 2 - Message anyone on LinkedIn for free\n04:48 Tip 3 - Write custom and thoughtful messages\n06:17 Bonus tip\n07:01 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nLinkedIn Profile video - https://youtu.be/BcfGWi8Qywk\nCareer trajectory video - https://youtu.be/2MAwSCZYoVw\n\nMARK GRANOVETTER’S RESEARCH PAPER\nThe Strength of Weak Ties (full PDF) - https://sociology.stanford.edu/sites/g/files/sbiybj9501/f/publications/the_strength_of_weak_ties_and_exch_w-gans.pdf\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #Professional #Network", "LinkedIn: How to Connect Like a Pro", "9BdbGZtnFnQ", 1, 458, false, "https://www.youtube.com/watch?v=9BdbGZtnFnQ", "/downloads/Jeff Su/2020-09-09 LinkedIn: How to Connect Like a Pro/LinkedIn: How to Connect Like a Pro [9BdbGZtnFnQ].mp4", false, ~U[2020-09-09 09:00:01Z]] 16:50:10.561 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=286.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:10.563 [debug] QUERY OK source="media_profiles" db=1.1ms queue=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] 16:50:10.564 [debug] QUERY OK source="media_items" db=0.3ms queue=0.2ms idle=9.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [183] 16:50:10.564 [info] Kicking off download for media item #183 (9BdbGZtnFnQ) 16:50:10.570 [debug] QUERY OK source="tasks" db=0.2ms idle=8.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [187, 183, ~U[2026-04-23 14:50:10Z], ~U[2026-04-23 14:50:10Z]] 16:50:10.570 [debug] Current batch of media processed. Will check again in 1000ms 16:50:11.570 [debug] Current batch of media processed. Will check again in 1000ms 16:50:12.037 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=nVyD6THcvDQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/89/49/894973fb1d68af9965108ddeb438bc0a0d3f36e956a5e387360341b8f1ef085a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:50:12.075 [debug] Running yt-dlp command for action: download_thumbnail 16:50:12.077 [debug] QUERY OK source="settings" db=0.2ms idle=1508.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:12.078 [debug] QUERY OK source="settings" db=0.8ms idle=1507.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:12.079 [debug] QUERY OK source="settings" db=0.8ms idle=1507.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:12.079 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=nVyD6THcvDQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/40/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d8/4f/d84f8fe1e99a4e197df97c42d099eef6c1dfa60e15739af51fdf3f3c32cddd84.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:50:12.571 [debug] Current batch of media processed. Will check again in 1000ms 16:50:13.515 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=YoWdogtZRw8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/39/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6b/03/6b03d1c99c8a528d7147d9060c40e60a87ae6f93cd7305e932f3fddae7ff713e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:50:13.518 [debug] QUERY OK db=0.0ms queue=0.1ms idle=1244.9ms begin [] 16:50:13.520 [debug] QUERY OK source="media_items" db=2.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:50:07Z], "/downloads/Jeff Su/2024-09-17 Learn 80% of Perplexity in under 10 minutes!/Learn 80% of Perplexity in under 10 minutes! [YoWdogtZRw8].mp4", "/downloads/Jeff Su/2024-09-17 Learn 80% of Perplexity in under 10 minutes!/Learn 80% of Perplexity in under 10 minutes! [YoWdogtZRw8].info.json", "/downloads/Jeff Su/2024-09-17 Learn 80% of Perplexity in under 10 minutes!/Learn 80% of Perplexity in under 10 minutes! [YoWdogtZRw8].nfo", "/downloads/Jeff Su/2024-09-17 Learn 80% of Perplexity in under 10 minutes!/Learn 80% of Perplexity in under 10 minutes! [YoWdogtZRw8]-thumb.jpg", ~U[2026-04-23 14:50:13Z], 39] 16:50:13.539 [debug] QUERY OK source="media_metadata" db=18.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/39/metadata.json.gz", "/config/metadata/media_items/39/thumbnail.jpg", 39, ~U[2026-04-23 14:50:13Z], ~U[2026-04-23 14:50:13Z]] 16:50:13.541 [debug] QUERY OK db=1.7ms commit [] 16:50:13.543 [debug] QUERY OK source="media_items" db=1.4ms idle=660.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [29823530, ~U[2026-04-23 14:50:13Z], 39] 16:50:13.543 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:50:13.544 [info] {"args":{"id":39},"id":43,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":32750538,"event":"job:stop","queue_time":578791806,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:50:13.551 [info] {"args":{"id":41},"id":45,"meta":{},"system_time":1776955813551067456,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:50:13.552 [debug] QUERY OK source="media_items" db=1.2ms idle=278.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" = ?) [41] 16:50:13.553 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:50:13.554 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=12.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:13.554 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=11.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:50:13.556 [debug] QUERY OK source="media_items" db=0.7ms idle=11.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [41] 16:50:13.557 [debug] QUERY OK source="media_metadata" db=0.2ms idle=6.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [41] 16:50:13.558 [debug] QUERY OK source="media_profiles" db=0.5ms idle=4.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:50:13.560 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:13.560 [debug] QUERY OK source="settings" db=0.6ms idle=5.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:13.561 [debug] Running yt-dlp command for action: get_downloadable_status 16:50:13.562 [debug] QUERY OK source="settings" db=0.2ms idle=6.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:13.562 [debug] QUERY OK source="settings" db=0.1ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:13.563 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:50:13.563 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=JqKB97HpWrk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/66/df/66dfe95c21804c8a79acac6387391b82c4fe691109b887566dc4246c420930ef.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:50:13.572 [debug] Current batch of media processed. Will check again in 1000ms 16:50:14.574 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=014\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n🌟 Updated LinkedIn Profile video 👉🏻 https://youtu.be/B4OhuzwLc9o\n\nIn this video, I share my top 5 tips for creating an amazing LinkedIn profile! These profile tips range from how to have a professional looking profile photo and LinkedIn background banner (using free tools) to how best to complement your resume with your LinkedIn profile.\n\nI also show you how I optimize my LinkedIn account: what to put in the “About” summary section, what to write in your experiences section, and how to get your own LinkedIn custom URL. Nowadays, having a professional, relevant, and searchable LinkedIn profile is more important than ever.\n\nInstead of staying high level (aka vague), I dive into my own LinkedIn profile and show examples of other great profiles and walk you through step by step on how to create a similar look and feel, while highlighting your own character and professional experiences. \n\nTIMESTAMPS\n00:00 Intro\n00:35 Tip 1 - Use free online tools to create an amazing profile picture\n05:27 Tip 2 - LinkedIn Summary should complement your resume\n07:00 Tip 3 - Showcase real work in the “Featured” section\n08:03 Tip 4 - Expand on key achievements in “Experiences” section\n09:30 Tip 5 - Get a custom LinkedIn URL\n10:00 Ending\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nWrite an Incredible Resume: 5 Golden Rules - https://youtu.be/Tt08KmFfIYQ\nLinkedIn has 575M users as of August 2020 - https://kinsta.com/blog/linkedin-statistics/\nLinkedIn has 260M MAU as of August 2020 - https://bit.ly/3gGXp9p\n[Poll] 73% of people prefer to have LinkedIn profile over resume - https://bit.ly/2EFTTPO\nWord Cloud generator: https://monkeylearn.com/word-cloud/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #profiletips #upgrade", "duration" => 623, "filename" => "/downloads/Jeff Su/2020-09-02 Top 5 LinkedIn Profile Tips!/Top 5 LinkedIn Profile Tips! [BcfGWi8Qywk].mp4", "id" => "BcfGWi8Qywk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BcfGWi8Qywk", "playlist_index" => 184, "timestamp" => 1599030003, "title" => "Top 5 LinkedIn Profile Tips!", "upload_date" => "20200902"} 16:50:14.575 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1013.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:50:14.576 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1013.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:14.577 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=1013.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-09-02 07:00:03Z], 1] 16:50:14.580 [debug] QUERY OK source="media_items" db=2.1ms idle=1014.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=014\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n🌟 Updated LinkedIn Profile video 👉🏻 https://youtu.be/B4OhuzwLc9o\n\nIn this video, I share my top 5 tips for creating an amazing LinkedIn profile! These profile tips range from how to have a professional looking profile photo and LinkedIn background banner (using free tools) to how best to complement your resume with your LinkedIn profile.\n\nI also show you how I optimize my LinkedIn account: what to put in the “About” summary section, what to write in your experiences section, and how to get your own LinkedIn custom URL. Nowadays, having a professional, relevant, and searchable LinkedIn profile is more important than ever.\n\nInstead of staying high level (aka vague), I dive into my own LinkedIn profile and show examples of other great profiles and walk you through step by step on how to create a similar look and feel, while highlighting your own character and professional experiences. \n\nTIMESTAMPS\n00:00 Intro\n00:35 Tip 1 - Use free online tools to create an amazing profile picture\n05:27 Tip 2 - LinkedIn Summary should complement your resume\n07:00 Tip 3 - Showcase real work in the “Featured” section\n08:03 Tip 4 - Expand on key achievements in “Experiences” section\n09:30 Tip 5 - Get a custom LinkedIn URL\n10:00 Ending\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nWrite an Incredible Resume: 5 Golden Rules - https://youtu.be/Tt08KmFfIYQ\nLinkedIn has 575M users as of August 2020 - https://kinsta.com/blog/linkedin-statistics/\nLinkedIn has 260M MAU as of August 2020 - https://bit.ly/3gGXp9p\n[Poll] 73% of people prefer to have LinkedIn profile over resume - https://bit.ly/2EFTTPO\nWord Cloud generator: https://monkeylearn.com/word-cloud/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #profiletips #upgrade", "Top 5 LinkedIn Profile Tips!", "0e549aa1-d8e2-415d-bb6a-3b04661f9f95", false, "BcfGWi8Qywk", 1, [], 623, false, "https://www.youtube.com/watch?v=BcfGWi8Qywk", 184, "/downloads/Jeff Su/2020-09-02 Top 5 LinkedIn Profile Tips!/Top 5 LinkedIn Profile Tips! [BcfGWi8Qywk].mp4", false, false, 99, ~U[2020-09-02 07:00:03Z], ~U[2026-04-23 14:50:14Z], ~U[2026-04-23 14:50:14Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=014\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n🌟 Updated LinkedIn Profile video 👉🏻 https://youtu.be/B4OhuzwLc9o\n\nIn this video, I share my top 5 tips for creating an amazing LinkedIn profile! These profile tips range from how to have a professional looking profile photo and LinkedIn background banner (using free tools) to how best to complement your resume with your LinkedIn profile.\n\nI also show you how I optimize my LinkedIn account: what to put in the “About” summary section, what to write in your experiences section, and how to get your own LinkedIn custom URL. Nowadays, having a professional, relevant, and searchable LinkedIn profile is more important than ever.\n\nInstead of staying high level (aka vague), I dive into my own LinkedIn profile and show examples of other great profiles and walk you through step by step on how to create a similar look and feel, while highlighting your own character and professional experiences. \n\nTIMESTAMPS\n00:00 Intro\n00:35 Tip 1 - Use free online tools to create an amazing profile picture\n05:27 Tip 2 - LinkedIn Summary should complement your resume\n07:00 Tip 3 - Showcase real work in the “Featured” section\n08:03 Tip 4 - Expand on key achievements in “Experiences” section\n09:30 Tip 5 - Get a custom LinkedIn URL\n10:00 Ending\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nWrite an Incredible Resume: 5 Golden Rules - https://youtu.be/Tt08KmFfIYQ\nLinkedIn has 575M users as of August 2020 - https://kinsta.com/blog/linkedin-statistics/\nLinkedIn has 260M MAU as of August 2020 - https://bit.ly/3gGXp9p\n[Poll] 73% of people prefer to have LinkedIn profile over resume - https://bit.ly/2EFTTPO\nWord Cloud generator: https://monkeylearn.com/word-cloud/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #profiletips #upgrade", "Top 5 LinkedIn Profile Tips!", "BcfGWi8Qywk", 1, 623, false, "https://www.youtube.com/watch?v=BcfGWi8Qywk", "/downloads/Jeff Su/2020-09-02 Top 5 LinkedIn Profile Tips!/Top 5 LinkedIn Profile Tips! [BcfGWi8Qywk].mp4", false, ~U[2020-09-02 07:00:03Z]] 16:50:14.581 [debug] QUERY OK source="sources" db=0.3ms idle=697.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:14.582 [debug] QUERY OK source="media_profiles" db=0.2ms queue=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] 16:50:14.582 [debug] QUERY OK source="media_items" db=0.5ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [184] 16:50:14.583 [info] Kicking off download for media item #184 (BcfGWi8Qywk) 16:50:14.586 [debug] QUERY OK source="tasks" db=0.2ms idle=5.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [188, 184, ~U[2026-04-23 14:50:14Z], ~U[2026-04-23 14:50:14Z]] 16:50:14.587 [debug] Current batch of media processed. Will check again in 1000ms 16:50:15.587 [debug] Current batch of media processed. Will check again in 1000ms 16:50:16.588 [debug] Current batch of media processed. Will check again in 1000ms 16:50:17.589 [debug] Current batch of media processed. Will check again in 1000ms 16:50:18.286 [info] {"source":"oban","duration":887,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:50:18.591 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=013\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nShow the interviewer that you are a good fit for the position. The “Why are you a good fit for this role” interview question has many variations such as “Why should we hire you?” and “Why are you a good candidate?” But they’re all really just trying to figure out (1) What experiences or skills you have that would be applicable for the new position, (2) What you are trying to get out of it, and (3) What special characteristic you have that others do not.\n\nIf you are able to provide strong examples and communicate your unique proposition clearly, the interviewers will make their own mental connections between your background and the open role, and start convincing themselves that they indeed should hire you since your experiences clearly make you a good fit (or even the best fit) for this position. \n\nOther than giving sample answers to this “why are you a good fit” interview question, I also point out the little things to get right, such as limiting your answer length to 2-2.5 minutes maximum (similar to the “tell me about yourself” question). \n\nSo whether you are a fresher / fresh grad looking for a sample answer, or an experienced professional looking for an answer structure, this video is a great resource. You will learn how to apply the concepts here and also avoid common mistakes others make when showing the interviewer why they should hire you. \n\nTIMESTAMPS\n00:00 Intro\n00:53 What can you bring to the role\n03:08 What you want to get out of it\n05:08 What makes you unique\n06:02 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to answer: Tell me about yourself - https://youtu.be/es7XtrloDIQ\nWord Cloud generator: https://monkeylearn.com/word-cloud/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#whyshouldwehireyou #whyyou #interviewtips", "duration" => 388, "filename" => "/downloads/Jeff Su/2020-08-26 Why Are You a Good Fit for this Role - How to Answer/Why Are You a Good Fit for this Role - How to Answer [-HfeTdf2gSw].mp4", "id" => "-HfeTdf2gSw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=-HfeTdf2gSw", "playlist_index" => 185, "timestamp" => 1598414400, "title" => "Why Are You a Good Fit for this Role - How to Answer", "upload_date" => "20200826"} 16:50:18.593 [debug] QUERY OK source="sources" db=1.6ms idle=318.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:50:18.594 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=320.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:18.596 [debug] QUERY OK source="media_items" db=1.2ms idle=321.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-08-26 04:00:00Z], 1] 16:50:18.599 [debug] QUERY OK source="media_items" db=2.1ms idle=323.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=013\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nShow the interviewer that you are a good fit for the position. The “Why are you a good fit for this role” interview question has many variations such as “Why should we hire you?” and “Why are you a good candidate?” But they’re all really just trying to figure out (1) What experiences or skills you have that would be applicable for the new position, (2) What you are trying to get out of it, and (3) What special characteristic you have that others do not.\n\nIf you are able to provide strong examples and communicate your unique proposition clearly, the interviewers will make their own mental connections between your background and the open role, and start convincing themselves that they indeed should hire you since your experiences clearly make you a good fit (or even the best fit) for this position. \n\nOther than giving sample answers to this “why are you a good fit” interview question, I also point out the little things to get right, such as limiting your answer length to 2-2.5 minutes maximum (similar to the “tell me about yourself” question). \n\nSo whether you are a fresher / fresh grad looking for a sample answer, or an experienced professional looking for an answer structure, this video is a great resource. You will learn how to apply the concepts here and also avoid common mistakes others make when showing the interviewer why they should hire you. \n\nTIMESTAMPS\n00:00 Intro\n00:53 What can you bring to the role\n03:08 What you want to get out of it\n05:08 What makes you unique\n06:02 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to answer: Tell me about yourself - https://youtu.be/es7XtrloDIQ\nWord Cloud generator: https://monkeylearn.com/word-cloud/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#whyshouldwehireyou #whyyou #interviewtips", "Why Are You a Good Fit for this Role - How to Answer", "94b25af9-1ed9-4b4d-90da-4b2203e540b8", false, "-HfeTdf2gSw", 1, [], 388, false, "https://www.youtube.com/watch?v=-HfeTdf2gSw", 185, "/downloads/Jeff Su/2020-08-26 Why Are You a Good Fit for this Role - How to Answer/Why Are You a Good Fit for this Role - How to Answer [-HfeTdf2gSw].mp4", false, false, 99, ~U[2020-08-26 04:00:00Z], ~U[2026-04-23 14:50:18Z], ~U[2026-04-23 14:50:18Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=013\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nShow the interviewer that you are a good fit for the position. The “Why are you a good fit for this role” interview question has many variations such as “Why should we hire you?” and “Why are you a good candidate?” But they’re all really just trying to figure out (1) What experiences or skills you have that would be applicable for the new position, (2) What you are trying to get out of it, and (3) What special characteristic you have that others do not.\n\nIf you are able to provide strong examples and communicate your unique proposition clearly, the interviewers will make their own mental connections between your background and the open role, and start convincing themselves that they indeed should hire you since your experiences clearly make you a good fit (or even the best fit) for this position. \n\nOther than giving sample answers to this “why are you a good fit” interview question, I also point out the little things to get right, such as limiting your answer length to 2-2.5 minutes maximum (similar to the “tell me about yourself” question). \n\nSo whether you are a fresher / fresh grad looking for a sample answer, or an experienced professional looking for an answer structure, this video is a great resource. You will learn how to apply the concepts here and also avoid common mistakes others make when showing the interviewer why they should hire you. \n\nTIMESTAMPS\n00:00 Intro\n00:53 What can you bring to the role\n03:08 What you want to get out of it\n05:08 What makes you unique\n06:02 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to answer: Tell me about yourself - https://youtu.be/es7XtrloDIQ\nWord Cloud generator: https://monkeylearn.com/word-cloud/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#whyshouldwehireyou #whyyou #interviewtips", "Why Are You a Good Fit for this Role - How to Answer", "-HfeTdf2gSw", 1, 388, false, "https://www.youtube.com/watch?v=-HfeTdf2gSw", "/downloads/Jeff Su/2020-08-26 Why Are You a Good Fit for this Role - How to Answer/Why Are You a Good Fit for this Role - How to Answer [-HfeTdf2gSw].mp4", false, ~U[2020-08-26 04:00:00Z]] 16:50:18.600 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=313.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:18.601 [debug] QUERY OK source="media_profiles" db=0.2ms idle=7.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:50:18.602 [debug] QUERY OK source="media_items" db=0.7ms idle=6.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [185] 16:50:18.602 [info] Kicking off download for media item #185 (-HfeTdf2gSw) 16:50:18.607 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=6.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [189, 185, ~U[2026-04-23 14:50:18Z], ~U[2026-04-23 14:50:18Z]] 16:50:18.607 [debug] Current batch of media processed. Will check again in 1000ms 16:50:19.608 [debug] Current batch of media processed. Will check again in 1000ms 16:50:20.609 [debug] Current batch of media processed. Will check again in 1000ms 16:50:20.980 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=JqKB97HpWrk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/66/df/66dfe95c21804c8a79acac6387391b82c4fe691109b887566dc4246c420930ef.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:50:20.981 [debug] Running yt-dlp command for action: download 16:50:20.981 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=708.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:20.981 [debug] QUERY OK source="settings" db=0.1ms idle=708.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:20.982 [debug] QUERY OK source="settings" db=0.4ms idle=709.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:20.982 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=JqKB97HpWrk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/97/46/9746d3a9d31bb2276aab39b22f964c7987f039fbabae909596679feac8bf118b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:50:21.610 [debug] Current batch of media processed. Will check again in 1000ms 16:50:22.611 [debug] Current batch of media processed. Will check again in 1000ms 16:50:22.631 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=nVyD6THcvDQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/40/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d8/4f/d84f8fe1e99a4e197df97c42d099eef6c1dfa60e15739af51fdf3f3c32cddd84.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:50:22.631 [debug] QUERY OK db=0.1ms idle=730.3ms begin [] 16:50:22.632 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:50:12Z], "/downloads/Jeff Su/2024-09-03 99% of Beginners Don't Know the Basics of AI/99% of Beginners Don't Know the Basics of AI [nVyD6THcvDQ].mp4", "/downloads/Jeff Su/2024-09-03 99% of Beginners Don't Know the Basics of AI/99% of Beginners Don't Know the Basics of AI [nVyD6THcvDQ].info.json", "/downloads/Jeff Su/2024-09-03 99% of Beginners Don't Know the Basics of AI/99% of Beginners Don't Know the Basics of AI [nVyD6THcvDQ].nfo", "/downloads/Jeff Su/2024-09-03 99% of Beginners Don't Know the Basics of AI/99% of Beginners Don't Know the Basics of AI [nVyD6THcvDQ]-thumb.jpg", ~U[2026-04-23 14:50:22Z], 40] 16:50:22.633 [debug] QUERY OK source="media_metadata" db=0.7ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/40/metadata.json.gz", "/config/metadata/media_items/40/thumbnail.jpg", 40, ~U[2026-04-23 14:50:22Z], ~U[2026-04-23 14:50:22Z]] 16:50:22.634 [debug] QUERY OK db=0.2ms commit [] 16:50:22.635 [debug] QUERY OK source="media_items" db=1.3ms idle=361.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [27712968, ~U[2026-04-23 14:50:22Z], 40] 16:50:22.636 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:50:22.636 [info] {"args":{"id":40},"id":44,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":36090957,"event":"job:stop","queue_time":580543891,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:50:22.644 [info] {"args":{"id":42},"id":46,"meta":{},"system_time":1776955822644179884,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:50:22.644 [debug] QUERY OK source="media_items" db=0.2ms idle=371.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" = ?) [42] 16:50:22.645 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:50:22.645 [debug] QUERY OK source="sources" db=0.2ms idle=11.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:22.646 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:50:22.646 [debug] QUERY OK source="media_items" db=0.2ms idle=9.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [42] 16:50:22.647 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [42] 16:50:22.648 [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] 16:50:22.648 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:22.649 [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 [] 16:50:22.649 [debug] Running yt-dlp command for action: get_downloadable_status 16:50:22.650 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:22.650 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:22.650 [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 [] 16:50:22.651 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4rlqUHS9fgg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/29/c7/29c770e6d6e4511376710ab7d4b64063f3977be006681895d09542307ceb6714.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:50:23.613 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=012\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nThe “Tell me about yourself” question is by far the most important question to get right because not only will it set the tone for the rest of the interview, but also you will get a huge confidence boost right at the beginning if start off correctly. \n\nToo often candidates tell their life stories when answering “Tell me about yourself” even when that’s going to bore the interviewer at best, and work against you at worst. This video is about how to easily answer the interview question: Tell Me About Yourself. \n\nHere, I teach you the simple steps to structure a strong answer to this common interview question. I skip over all the other more “common advice” you might find in other videos and jump right into (1) The Present, Past, and Future answer structure, (2) The Highlight Method, and (3) Providing a sample answers and examples that have worked for me and many co-workers here at Google.\n\nSo whether you are a fresher / fresh grad looking for a sample answer, or an experienced professional looking for an answer structure, this video is a great resource. You will learn how to apply the concepts here and also avoid common mistakes others make when answering “tell me about yourself.” \n\nThis is a must watch before your next interview, good luck!\n\nTIMESTAMPS\n00:00 Intro\n01:04 Present, Past, Future answer structure\n06:15 The Highlight Method\n06:58 Sample answer\n09:18 Ending\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#tellmeaboutyourself #interviewtips #sampleanswer", "duration" => 567, "filename" => "/downloads/Jeff Su/2020-08-19 Tell Me About Yourself - Structure a Strong Answer/Tell Me About Yourself - Structure a Strong Answer [es7XtrloDIQ].mp4", "id" => "es7XtrloDIQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=es7XtrloDIQ", "playlist_index" => 186, "timestamp" => 1597820407, "title" => "Tell Me About Yourself - Structure a Strong Answer", "upload_date" => "20200819"} 16:50:23.615 [debug] QUERY OK source="sources" db=1.1ms idle=964.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:50:23.615 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=965.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:23.616 [debug] QUERY OK source="media_items" db=0.9ms idle=965.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-08-19 07:00:07Z], 1] 16:50:23.620 [debug] QUERY OK source="media_items" db=2.0ms idle=966.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=012\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nThe “Tell me about yourself” question is by far the most important question to get right because not only will it set the tone for the rest of the interview, but also you will get a huge confidence boost right at the beginning if start off correctly. \n\nToo often candidates tell their life stories when answering “Tell me about yourself” even when that’s going to bore the interviewer at best, and work against you at worst. This video is about how to easily answer the interview question: Tell Me About Yourself. \n\nHere, I teach you the simple steps to structure a strong answer to this common interview question. I skip over all the other more “common advice” you might find in other videos and jump right into (1) The Present, Past, and Future answer structure, (2) The Highlight Method, and (3) Providing a sample answers and examples that have worked for me and many co-workers here at Google.\n\nSo whether you are a fresher / fresh grad looking for a sample answer, or an experienced professional looking for an answer structure, this video is a great resource. You will learn how to apply the concepts here and also avoid common mistakes others make when answering “tell me about yourself.” \n\nThis is a must watch before your next interview, good luck!\n\nTIMESTAMPS\n00:00 Intro\n01:04 Present, Past, Future answer structure\n06:15 The Highlight Method\n06:58 Sample answer\n09:18 Ending\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#tellmeaboutyourself #interviewtips #sampleanswer", "Tell Me About Yourself - Structure a Strong Answer", "8b80695a-0e6b-453e-a761-78bcd5266b13", false, "es7XtrloDIQ", 1, [], 567, false, "https://www.youtube.com/watch?v=es7XtrloDIQ", 186, "/downloads/Jeff Su/2020-08-19 Tell Me About Yourself - Structure a Strong Answer/Tell Me About Yourself - Structure a Strong Answer [es7XtrloDIQ].mp4", false, false, 99, ~U[2020-08-19 07:00:07Z], ~U[2026-04-23 14:50:23Z], ~U[2026-04-23 14:50:23Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=012\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nThe “Tell me about yourself” question is by far the most important question to get right because not only will it set the tone for the rest of the interview, but also you will get a huge confidence boost right at the beginning if start off correctly. \n\nToo often candidates tell their life stories when answering “Tell me about yourself” even when that’s going to bore the interviewer at best, and work against you at worst. This video is about how to easily answer the interview question: Tell Me About Yourself. \n\nHere, I teach you the simple steps to structure a strong answer to this common interview question. I skip over all the other more “common advice” you might find in other videos and jump right into (1) The Present, Past, and Future answer structure, (2) The Highlight Method, and (3) Providing a sample answers and examples that have worked for me and many co-workers here at Google.\n\nSo whether you are a fresher / fresh grad looking for a sample answer, or an experienced professional looking for an answer structure, this video is a great resource. You will learn how to apply the concepts here and also avoid common mistakes others make when answering “tell me about yourself.” \n\nThis is a must watch before your next interview, good luck!\n\nTIMESTAMPS\n00:00 Intro\n01:04 Present, Past, Future answer structure\n06:15 The Highlight Method\n06:58 Sample answer\n09:18 Ending\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#tellmeaboutyourself #interviewtips #sampleanswer", "Tell Me About Yourself - Structure a Strong Answer", "es7XtrloDIQ", 1, 567, false, "https://www.youtube.com/watch?v=es7XtrloDIQ", "/downloads/Jeff Su/2020-08-19 Tell Me About Yourself - Structure a Strong Answer/Tell Me About Yourself - Structure a Strong Answer [es7XtrloDIQ].mp4", false, ~U[2020-08-19 07:00:07Z]] 16:50:23.620 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=714.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:23.621 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:50:23.622 [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 [186] 16:50:23.622 [info] Kicking off download for media item #186 (es7XtrloDIQ) 16:50:23.625 [debug] QUERY OK source="tasks" db=0.2ms idle=4.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [190, 186, ~U[2026-04-23 14:50:23Z], ~U[2026-04-23 14:50:23Z]] 16:50:23.626 [debug] Current batch of media processed. Will check again in 1000ms 16:50:24.626 [debug] Current batch of media processed. Will check again in 1000ms 16:50:25.627 [debug] Current batch of media processed. Will check again in 1000ms 16:50:26.628 [debug] Current batch of media processed. Will check again in 1000ms 16:50:27.629 [debug] Current batch of media processed. Will check again in 1000ms 16:50:28.631 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "1,000 subscribers. Wow. Thank you.\n\nI honestly didn’t really have a plan when I started my channel. I just thought it would be cool to make helpful videos that can help students and fresh grads when it came to career and interview advice. \n\nI still remember those super cringey moments when I was job hunting back in the day. All the mistakes, the failures. But the good news is all that lead to learnings, learnings that I can share with you all, so you don’t have to go through the same painful experiences! \n\nAnyways, I hope you enjoy this video, check out the timestamps below and feel free to jump around!\n\nTIMESTAMPS\n00:00 Intro\n01:20 Hardest interview question I’ve given others\n02:38 Moment that changed trajectory of my life\n03:57 How to not be “fake” during interviews\n05:53 Would I still remain friends after becoming KOL\n06:03 Did I get Marketing/PR approval to use Google logo\n06:43 Why Shanghai office and not Hong Kong office\n07:43 Will I throw away my Lululemon pants\n08:34 My long term career plans\n09:46 How to increase the chances of being headhunted\n10:39 How to stay productive balancing work and videos\n11:25 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nTina's egg-tart video: https://youtu.be/Iy1-l8Hoc1g?t=104\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#1000subs #1kcreators #thankyou", "duration" => 712, "filename" => "/downloads/Jeff Su/2020-08-12 Q & A - 1,000 Subscribers!/Q & A - 1,000 Subscribers! [2MAwSCZYoVw].mp4", "id" => "2MAwSCZYoVw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=2MAwSCZYoVw", "playlist_index" => 187, "timestamp" => 1597215600, "title" => "Q & A - 1,000 Subscribers!", "upload_date" => "20200812"} 16:50:28.632 [debug] QUERY OK source="sources" db=0.4ms idle=1358.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:50:28.632 [debug] QUERY OK source="sources" db=0.2ms idle=1359.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:28.634 [debug] QUERY OK source="media_items" db=0.9ms idle=1360.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-08-12 07:00:00Z], 1] 16:50:28.637 [debug] QUERY OK source="media_items" db=1.9ms idle=1361.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["1,000 subscribers. Wow. Thank you.\n\nI honestly didn’t really have a plan when I started my channel. I just thought it would be cool to make helpful videos that can help students and fresh grads when it came to career and interview advice. \n\nI still remember those super cringey moments when I was job hunting back in the day. All the mistakes, the failures. But the good news is all that lead to learnings, learnings that I can share with you all, so you don’t have to go through the same painful experiences! \n\nAnyways, I hope you enjoy this video, check out the timestamps below and feel free to jump around!\n\nTIMESTAMPS\n00:00 Intro\n01:20 Hardest interview question I’ve given others\n02:38 Moment that changed trajectory of my life\n03:57 How to not be “fake” during interviews\n05:53 Would I still remain friends after becoming KOL\n06:03 Did I get Marketing/PR approval to use Google logo\n06:43 Why Shanghai office and not Hong Kong office\n07:43 Will I throw away my Lululemon pants\n08:34 My long term career plans\n09:46 How to increase the chances of being headhunted\n10:39 How to stay productive balancing work and videos\n11:25 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nTina's egg-tart video: https://youtu.be/Iy1-l8Hoc1g?t=104\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#1000subs #1kcreators #thankyou", "Q & A - 1,000 Subscribers!", "8fca6a71-57b5-4368-8e5e-0b946f20bf1d", false, "2MAwSCZYoVw", 1, [], 712, false, "https://www.youtube.com/watch?v=2MAwSCZYoVw", 187, "/downloads/Jeff Su/2020-08-12 Q & A - 1,000 Subscribers!/Q & A - 1,000 Subscribers! [2MAwSCZYoVw].mp4", false, false, 99, ~U[2020-08-12 07:00:00Z], ~U[2026-04-23 14:50:28Z], ~U[2026-04-23 14:50:28Z], "1,000 subscribers. Wow. Thank you.\n\nI honestly didn’t really have a plan when I started my channel. I just thought it would be cool to make helpful videos that can help students and fresh grads when it came to career and interview advice. \n\nI still remember those super cringey moments when I was job hunting back in the day. All the mistakes, the failures. But the good news is all that lead to learnings, learnings that I can share with you all, so you don’t have to go through the same painful experiences! \n\nAnyways, I hope you enjoy this video, check out the timestamps below and feel free to jump around!\n\nTIMESTAMPS\n00:00 Intro\n01:20 Hardest interview question I’ve given others\n02:38 Moment that changed trajectory of my life\n03:57 How to not be “fake” during interviews\n05:53 Would I still remain friends after becoming KOL\n06:03 Did I get Marketing/PR approval to use Google logo\n06:43 Why Shanghai office and not Hong Kong office\n07:43 Will I throw away my Lululemon pants\n08:34 My long term career plans\n09:46 How to increase the chances of being headhunted\n10:39 How to stay productive balancing work and videos\n11:25 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nTina's egg-tart video: https://youtu.be/Iy1-l8Hoc1g?t=104\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#1000subs #1kcreators #thankyou", "Q & A - 1,000 Subscribers!", "2MAwSCZYoVw", 1, 712, false, "https://www.youtube.com/watch?v=2MAwSCZYoVw", "/downloads/Jeff Su/2020-08-12 Q & A - 1,000 Subscribers!/Q & A - 1,000 Subscribers! [2MAwSCZYoVw].mp4", false, ~U[2020-08-12 07:00:00Z]] 16:50:28.638 [debug] QUERY OK source="sources" db=0.4ms idle=720.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:28.638 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:50:28.639 [debug] QUERY OK source="media_items" db=0.3ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [187] 16:50:28.639 [info] Kicking off download for media item #187 (2MAwSCZYoVw) 16:50:28.642 [debug] QUERY OK source="tasks" db=0.3ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [191, 187, ~U[2026-04-23 14:50:28Z], ~U[2026-04-23 14:50:28Z]] 16:50:28.643 [debug] Current batch of media processed. Will check again in 1000ms 16:50:29.504 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4rlqUHS9fgg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/29/c7/29c770e6d6e4511376710ab7d4b64063f3977be006681895d09542307ceb6714.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:50:29.504 [debug] Running yt-dlp command for action: download 16:50:29.505 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=865.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:29.506 [debug] QUERY OK source="settings" db=0.4ms idle=863.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:29.506 [debug] QUERY OK source="settings" db=0.2ms idle=863.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:29.506 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4rlqUHS9fgg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/91/6e/916e04f40c869694b3a3d05f4adde7d19dde21e6b1cec84b4021dc9422200a5f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:50:29.643 [debug] Current batch of media processed. Will check again in 1000ms 16:50:30.645 [debug] Current batch of media processed. Will check again in 1000ms 16:50:31.645 [debug] Current batch of media processed. Will check again in 1000ms 16:50:32.646 [debug] Current batch of media processed. Will check again in 1000ms 16:50:33.648 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this video I'll be sharing 3 practical tips for interview preparation with Google! \n\nAnswering \"Tell me about yourself\" is important yes, but you can fully leverage your answer to influence what questions the interviewer asks next. This way, you have strong \"pre-prepared\" answers to those questions as well!\n\nCase interview questions are an integral part of interviews (not just with Google) nowadays. And having a strong synthesis can save an otherwise weak answer. \n\nDoing research is obviously key before any interview. But what are some specific strategies or tools you can use? \n\nTIMESTAMPS\n00:00 Intro\n00:13 How to influence the interviewer\n02:46 How to structure a strong synthesis for case interview questions\n05:19 How to do your research and \"cheat\"\n\nASK ME QUESTIONS DIRECTLY\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n\nRESOURCES I MENTION IN THE VIDEO (no affiliates):\n101 Intro to Case Interview Questions: https://youtu.be/6R5bT4cJh0A\nCase Interview Secrets (book): https://amzn.to/36RV8VA\nCase Interview Secrets (website): https://www.caseinterview.com\nVictor Cheng's Free PDF Download: https://www.caseinterview.com/case_interview_slides.pdf\n📗 Medium Article (7-minute read) - https://bit.ly/3gJwxXA\n\n✅ MY RECOMMENDATIONS*\nSkillshare - Start learning new things with a free trial: http://skillshare.eqcm.net/jeffsu\n\nBE MY FRIEND:\n📸 Instagram - https://instagram.com/j.sushie\n💻 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a Product Marketer at Google. When I’m not busy...Googling answers at work, I make videos that help you pass interviews, accelerate your career, and be more productive! \nIf you’d like to talk, I’d love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\n*These are affiliate links, meaning you are supporting me directly if you sign up or purchase using this link. The price for you stays exactly the same! Thank you so much! \n\nDisclaimer: My opinions are my own and may not reflect those of my employer\n\nVIDEO CONTENT\nTip number 1: Nail the “Tell me about yourself question”\nThis standard opener is designed to ease both of you into the interview.\nYour answer will set the tone for the rest of the conversation yes. More importantly, it gives you an opportunity to influence what the interviewer might ask next\nYou do this by simply focusing on 1 memorable highlight for each experience you bring up. \nLet’s take me for example. I’m in marketing now, I was in sales before, and in management consulting before that. So my answer might sound something like “I’m currently a Product Marketer at Google. A recent project I worked on is called Start on Android, and that drove 200% YoY revenue. When I was an Account Manager in the sales team, I created videos on how to optimize Google Ads accounts to better engage my clients. The quality was horrendous but it got the job done. Before that when I was in consulting, one of the toughest projects I worked on required me to travel for 6 months straight. However, the client was extremely pleased with the outcome and we successfully pitched a follow up engagement\nIn this oversimplified example, you might remember the key highlights I mentioned. The 200% YoY growth, creating crappy but effective YouTube videos. Traveling for 6 months straight but having it pay off. \nSo with all these highlights, the interviewer is very likely to follow up with additional questions. \n“What was your role in SOA?”\nOther than viewership what did you measure?\nTherefore, a rule of thumb is to always start with your current, most relevant experience, and move backwards. \nIf you’re a young working professional, mention highlights from the last 2-3 roles you’ve worked in\nIf you’re still in college, the most recent internships, part time jobs, leadership experiences you’re involved in\n\nTip number 2: Have a strong synthesis for case interview questions\nGoogle, like 90% of tech firms, incorporate some version of the case interview question in their application process. If you’re " <> ..., "duration" => 423, "filename" => "/downloads/Jeff Su/2020-06-03 Preparing for Interviews: 3 Practical Tips!/Preparing for Interviews: 3 Practical Tips! [9OD2HWGTzPA].mp4", "id" => "9OD2HWGTzPA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=9OD2HWGTzPA", "playlist_index" => 188, "timestamp" => 1591224301, "title" => "Preparing for Interviews: 3 Practical Tips!", "upload_date" => "20200603"} 16:50:33.650 [debug] QUERY OK source="sources" db=1.2ms idle=1375.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:50:33.651 [debug] QUERY OK source="sources" db=0.7ms idle=695.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:33.654 [debug] QUERY OK source="media_items" db=2.7ms idle=378.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-06-03 22:45:01Z], 1] 16:50:33.660 [debug] QUERY OK source="media_items" db=4.1ms idle=381.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I'll be sharing 3 practical tips for interview preparation with Google! \n\nAnswering \"Tell me about yourself\" is important yes, but you can fully leverage your answer to influence what questions the interviewer asks next. This way, you have strong \"pre-prepared\" answers to those questions as well!\n\nCase interview questions are an integral part of interviews (not just with Google) nowadays. And having a strong synthesis can save an otherwise weak answer. \n\nDoing research is obviously key before any interview. But what are some specific strategies or tools you can use? \n\nTIMESTAMPS\n00:00 Intro\n00:13 How to influence the interviewer\n02:46 How to structure a strong synthesis for case interview questions\n05:19 How to do your research and \"cheat\"\n\nASK ME QUESTIONS DIRECTLY\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n\nRESOURCES I MENTION IN THE VIDEO (no affiliates):\n101 Intro to Case Interview Questions: https://youtu.be/6R5bT4cJh0A\nCase Interview Secrets (book): https://amzn.to/36RV8VA\nCase Interview Secrets (website): https://www.caseinterview.com\nVictor Cheng's Free PDF Download: https://www.caseinterview.com/case_interview_slides.pdf\n📗 Medium Article (7-minute read) - https://bit.ly/3gJwxXA\n\n✅ MY RECOMMENDATIONS*\nSkillshare - Start learning new things with a free trial: http://skillshare.eqcm.net/jeffsu\n\nBE MY FRIEND:\n📸 Instagram - https://instagram.com/j.sushie\n💻 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a Product Marketer at Google. When I’m not busy...Googling answers at work, I make videos that help you pass interviews, accelerate your career, and be more productive! \nIf you’d like to talk, I’d love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\n*These are affiliate links, meaning you are supporting me directly if you sign up or purchase using this link. The price for you stays exactly the same! Thank you so much! \n\nDisclaimer: My opinions are my own and may not reflect those of my employer\n\nVIDEO CONTENT\nTip number 1: Nail the “Tell me about yourself question”\nThis standard opener is designed to ease both of you into the interview.\nYour answer will set the tone for the rest of the conversation yes. More importantly, it gives you an opportunity to influence what the interviewer might ask next\nYou do this by simply focusing on 1 memorable highlight for each experience you bring up. \nLet’s take me for example. I’m in marketing now, I was in sales before, and in management consulting before that. So my answer might sound something like “I’m currently a Product Marketer at Google. A recent project I worked on is called Start on Android, and that drove 200% YoY revenue. When I was an Account Manager in the sales team, I created videos on how to optimize Google Ads accounts to better engage my clients. The quality was horrendous but it got the job done. Before that when I was in consulting, one of the toughest projects I worked on required me to travel for 6 months straight. However, the client was extremely pleased with the outcome and we successfully pitched a follow up engagement\nIn this oversimplified example, you might remember the key highlights I mentioned. The 200% YoY growth, creating crappy but effective YouTube videos. Traveling for 6 months straight but having it pay off. \nSo with all these highlights, the interviewer is very likely to follow up with additional questions. \n“What was your role in SOA?”\nOther than viewership what did you measure?\nTherefore, a rule of thumb is to always start with your current, most relevant experience, and move backwards. \nIf you’re a young working professional, mention highlights from the last 2-3 roles you’ve worked in\nIf you’re still in college, the most recent internships, part time jobs, leadership experiences you’re involved in\n\nTip number 2: Have a strong synthesis for case interview questions\nGoogle, like 90% of tech firms, incorporate some version of the case interview question in their application process. If you’re " <> ..., "Preparing for Interviews: 3 Practical Tips!", "ecff59a6-6de3-4fe3-96ce-781a595a50a9", false, "9OD2HWGTzPA", 1, [], 423, false, "https://www.youtube.com/watch?v=9OD2HWGTzPA", 188, "/downloads/Jeff Su/2020-06-03 Preparing for Interviews: 3 Practical Tips!/Preparing for Interviews: 3 Practical Tips! [9OD2HWGTzPA].mp4", false, false, 99, ~U[2020-06-03 22:45:01Z], ~U[2026-04-23 14:50:33Z], ~U[2026-04-23 14:50:33Z], "In this video I'll be sharing 3 practical tips for interview preparation with Google! \n\nAnswering \"Tell me about yourself\" is important yes, but you can fully leverage your answer to influence what questions the interviewer asks next. This way, you have strong \"pre-prepared\" answers to those questions as well!\n\nCase interview questions are an integral part of interviews (not just with Google) nowadays. And having a strong synthesis can save an otherwise weak answer. \n\nDoing research is obviously key before any interview. But what are some specific strategies or tools you can use? \n\nTIMESTAMPS\n00:00 Intro\n00:13 How to influence the interviewer\n02:46 How to structure a strong synthesis for case interview questions\n05:19 How to do your research and \"cheat\"\n\nASK ME QUESTIONS DIRECTLY\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n\nRESOURCES I MENTION IN THE VIDEO (no affiliates):\n101 Intro to Case Interview Questions: https://youtu.be/6R5bT4cJh0A\nCase Interview Secrets (book): https://amzn.to/36RV8VA\nCase Interview Secrets (website): https://www.caseinterview.com\nVictor Cheng's Free PDF Download: https://www.caseinterview.com/case_interview_slides.pdf\n📗 Medium Article (7-minute read) - https://bit.ly/3gJwxXA\n\n✅ MY RECOMMENDATIONS*\nSkillshare - Start learning new things with a free trial: http://skillshare.eqcm.net/jeffsu\n\nBE MY FRIEND:\n📸 Instagram - https://instagram.com/j.sushie\n💻 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a Product Marketer at Google. When I’m not busy...Googling answers at work, I make videos that help you pass interviews, accelerate your career, and be more productive! \nIf you’d like to talk, I’d love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\n*These are affiliate links, meaning you are supporting me directly if you sign up or purchase using this link. The price for you stays exactly the same! Thank you so much! \n\nDisclaimer: My opinions are my own and may not reflect those of my employer\n\nVIDEO CONTENT\nTip number 1: Nail the “Tell me about yourself question”\nThis standard opener is designed to ease both of you into the interview.\nYour answer will set the tone for the rest of the conversation yes. More importantly, it gives you an opportunity to influence what the interviewer might ask next\nYou do this by simply focusing on 1 memorable highlight for each experience you bring up. \nLet’s take me for example. I’m in marketing now, I was in sales before, and in management consulting before that. So my answer might soun (truncated) 16:50:33.661 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=387.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:33.664 [debug] QUERY OK source="media_profiles" db=2.2ms queue=0.1ms idle=11.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:50:33.665 [debug] QUERY OK source="media_items" db=0.4ms idle=13.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 [188] 16:50:33.665 [info] Kicking off download for media item #188 (9OD2HWGTzPA) 16:50:33.670 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=8.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [192, 188, ~U[2026-04-23 14:50:33Z], ~U[2026-04-23 14:50:33Z]] 16:50:33.671 [debug] Current batch of media processed. Will check again in 1000ms 16:50:34.671 [debug] Current batch of media processed. Will check again in 1000ms 16:50:35.672 [debug] Current batch of media processed. Will check again in 1000ms 16:50:36.673 [debug] Current batch of media processed. Will check again in 1000ms 16:50:37.674 [debug] Current batch of media processed. Will check again in 1000ms 16:50:38.676 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "3 (more) common #AI terms most people don’t know:\n\nTerm 1: Grounding.\nWithout it, AI answers from memory, which may or may not be correct. Hand it the actual document and say \"answer from this,\" and now the response is grounded in something real. Whenever accuracy matters, give the AI something to reference.\n\nTerm 2: RAG (Retrieval Augmented Generation).\nWithout RAG, the AI writes from memory. With RAG, it goes to the library first, pulls the relevant sources, then generates its answer. The rule of thumb: if an AI tool cites its sources, it most likely uses #RAG. If it doesn't, it's guessing.\n\nTerm 3: Context engineering.\nPrompt engineering focuses on writing a good prompt (task, context, tone). Context engineering focuses on assembling everything the AI needs: background, examples, constraints. Spend your time on the context, not the wording.", "duration" => 57, "filename" => "/downloads/Jeff Su/2026-04-18 Stop perfecting your prompt. Do this instead/Stop perfecting your prompt. Do this instead [jxHIw_OA8_I].mp4", "id" => "jxHIw_OA8_I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/jxHIw_OA8_I", "playlist_index" => 1, "timestamp" => 1776518106, "title" => "Stop perfecting your prompt. Do this instead", "upload_date" => "20260418"} 16:50:38.677 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=1403.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:50:38.678 [debug] QUERY OK source="sources" db=0.5ms idle=1404.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:38.679 [debug] QUERY OK source="media_items" db=1.0ms idle=1405.6ms 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 13:15:06Z], 1] 16:50:38.682 [debug] QUERY OK source="media_items" db=1.5ms idle=1407.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["3 (more) common #AI terms most people don’t know:\n\nTerm 1: Grounding.\nWithout it, AI answers from memory, which may or may not be correct. Hand it the actual document and say \"answer from this,\" and now the response is grounded in something real. Whenever accuracy matters, give the AI something to reference.\n\nTerm 2: RAG (Retrieval Augmented Generation).\nWithout RAG, the AI writes from memory. With RAG, it goes to the library first, pulls the relevant sources, then generates its answer. The rule of thumb: if an AI tool cites its sources, it most likely uses #RAG. If it doesn't, it's guessing.\n\nTerm 3: Context engineering.\nPrompt engineering focuses on writing a good prompt (task, context, tone). Context engineering focuses on assembling everything the AI needs: background, examples, constraints. Spend your time on the context, not the wording.", "Stop perfecting your prompt. Do this instead", "09b271c4-5750-4e1e-970b-daf599312051", false, "jxHIw_OA8_I", 1, [], 57, false, "https://www.youtube.com/shorts/jxHIw_OA8_I", 1, "/downloads/Jeff Su/2026-04-18 Stop perfecting your prompt. Do this instead/Stop perfecting your prompt. Do this instead [jxHIw_OA8_I].mp4", false, true, 99, ~U[2026-04-18 13:15:06Z], ~U[2026-04-23 14:50:38Z], ~U[2026-04-23 14:50:38Z], "3 (more) common #AI terms most people don’t know:\n\nTerm 1: Grounding.\nWithout it, AI answers from memory, which may or may not be correct. Hand it the actual document and say \"answer from this,\" and now the response is grounded in something real. Whenever accuracy matters, give the AI something to reference.\n\nTerm 2: RAG (Retrieval Augmented Generation).\nWithout RAG, the AI writes from memory. With RAG, it goes to the library first, pulls the relevant sources, then generates its answer. The rule of thumb: if an AI tool cites its sources, it most likely uses #RAG. If it doesn't, it's guessing.\n\nTerm 3: Context engineering.\nPrompt engineering focuses on writing a good prompt (task, context, tone). Context engineering focuses on assembling everything the AI needs: background, examples, constraints. Spend your time on the context, not the wording.", "Stop perfecting your prompt. Do this instead", "jxHIw_OA8_I", 1, 57, false, "https://www.youtube.com/shorts/jxHIw_OA8_I", "/downloads/Jeff Su/2026-04-18 Stop perfecting your prompt. Do this instead/Stop perfecting your prompt. Do this instead [jxHIw_OA8_I].mp4", true, ~U[2026-04-18 13:15:06Z]] 16:50:38.682 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:38.682 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:50:38.683 [debug] QUERY OK source="media_items" db=0.3ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [189] 16:50:38.683 [info] Kicking off download for media item #189 (jxHIw_OA8_I) 16:50:38.686 [debug] QUERY OK source="tasks" db=0.2ms idle=4.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [193, 189, ~U[2026-04-23 14:50:38Z], ~U[2026-04-23 14:50:38Z]] 16:50:38.686 [debug] Current batch of media processed. Will check again in 1000ms 16:50:39.688 [debug] Current batch of media processed. Will check again in 1000ms 16:50:40.688 [debug] Current batch of media processed. Will check again in 1000ms 16:50:41.689 [debug] Current batch of media processed. Will check again in 1000ms 16:50:42.691 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "#AI hallucination is the flip side of creativity. That's the first of three terms most people misunderstand.\n\nTerm 1: Hallucination. The same mechanism that produces wrong answers is what generates creative writing, ideas, and novel connections. The real question is whether your task needs creativity or accuracy. Turning off web search in #ChatGPT or Claude gives you more creativity. Turning it on gives you more accuracy.\n\nTerm 2: Context window. Think of it as a fixed-size whiteboard. Once it's full, the AI drops older information to fit new input. If your AI starts giving weird answers mid-conversation, just start a new chat.\n\nTerm 3: Tokens. This is why free plans have usage limits. AI breaks your words into chunks called tokens, and every chunk costs usage. Better prompts mean fewer tokens, so you get more out of your plan before hitting the cap.", "duration" => 57, "filename" => "/downloads/Jeff Su/2026-04-10 Most people get these 3 AI terms wrong/Most people get these 3 AI terms wrong [gbI7THwqEjk].mp4", "id" => "gbI7THwqEjk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/gbI7THwqEjk", "playlist_index" => 2, "timestamp" => 1775826089, "title" => "Most people get these 3 AI terms wrong", "upload_date" => "20260410"} 16:50:42.692 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=718.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:50:42.692 [debug] QUERY OK source="sources" db=0.3ms idle=419.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:42.694 [debug] QUERY OK source="media_items" db=1.0ms idle=420.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-10 13:01:29Z], 1] 16:50:42.696 [debug] QUERY OK source="media_items" db=1.4ms idle=421.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#AI hallucination is the flip side of creativity. That's the first of three terms most people misunderstand.\n\nTerm 1: Hallucination. The same mechanism that produces wrong answers is what generates creative writing, ideas, and novel connections. The real question is whether your task needs creativity or accuracy. Turning off web search in #ChatGPT or Claude gives you more creativity. Turning it on gives you more accuracy.\n\nTerm 2: Context window. Think of it as a fixed-size whiteboard. Once it's full, the AI drops older information to fit new input. If your AI starts giving weird answers mid-conversation, just start a new chat.\n\nTerm 3: Tokens. This is why free plans have usage limits. AI breaks your words into chunks called tokens, and every chunk costs usage. Better prompts mean fewer tokens, so you get more out of your plan before hitting the cap.", "Most people get these 3 AI terms wrong", "147d02f0-616c-4dc6-be67-727cda417292", false, "gbI7THwqEjk", 1, [], 57, false, "https://www.youtube.com/shorts/gbI7THwqEjk", 2, "/downloads/Jeff Su/2026-04-10 Most people get these 3 AI terms wrong/Most people get these 3 AI terms wrong [gbI7THwqEjk].mp4", false, true, 99, ~U[2026-04-10 13:01:29Z], ~U[2026-04-23 14:50:42Z], ~U[2026-04-23 14:50:42Z], "#AI hallucination is the flip side of creativity. That's the first of three terms most people misunderstand.\n\nTerm 1: Hallucination. The same mechanism that produces wrong answers is what generates creative writing, ideas, and novel connections. The real question is whether your task needs creativity or accuracy. Turning off web search in #ChatGPT or Claude gives you more creativity. Turning it on gives you more accuracy.\n\nTerm 2: Context window. Think of it as a fixed-size whiteboard. Once it's full, the AI drops older information to fit new input. If your AI starts giving weird answers mid-conversation, just start a new chat.\n\nTerm 3: Tokens. This is why free plans have usage limits. AI breaks your words into chunks called tokens, and every chunk costs usage. Better prompts mean fewer tokens, so you get more out of your plan before hitting the cap.", "Most people get these 3 AI terms wrong", "gbI7THwqEjk", 1, 57, false, "https://www.youtube.com/shorts/gbI7THwqEjk", "/downloads/Jeff Su/2026-04-10 Most people get these 3 AI terms wrong/Most people get these 3 AI terms wrong [gbI7THwqEjk].mp4", true, ~U[2026-04-10 13:01:29Z]] 16:50:42.697 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=423.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:42.698 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:50:42.699 [debug] QUERY OK source="media_items" db=0.4ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [190] 16:50:42.699 [info] Kicking off download for media item #190 (gbI7THwqEjk) 16:50:42.704 [debug] QUERY OK source="tasks" db=0.3ms idle=6.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [194, 190, ~U[2026-04-23 14:50:42Z], ~U[2026-04-23 14:50:42Z]] 16:50:42.704 [debug] Current batch of media processed. Will check again in 1000ms 16:50:43.704 [debug] Current batch of media processed. Will check again in 1000ms 16:50:44.705 [debug] Current batch of media processed. Will check again in 1000ms 16:50:45.706 [debug] Current batch of media processed. Will check again in 1000ms 16:50:46.264 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=JqKB97HpWrk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/97/46/9746d3a9d31bb2276aab39b22f964c7987f039fbabae909596679feac8bf118b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:50:46.300 [debug] Running yt-dlp command for action: download_thumbnail 16:50:46.302 [debug] QUERY OK source="settings" db=0.3ms idle=320.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:46.303 [debug] QUERY OK source="settings" db=0.9ms idle=29.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:46.304 [debug] QUERY OK source="settings" db=0.9ms idle=30.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:46.304 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=JqKB97HpWrk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/41/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4d/5d/4d5d0631b68549a71b4a2c9b26e44de80e16fd12ecd52f928c2bf5d42b5dddfb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:50:46.707 [debug] Current batch of media processed. Will check again in 1000ms 16:50:47.709 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "#ClaudeCowork is the next level up from #Claude Chat. Here are the 3 biggest shifts in how you work.\n\nShift 1: Claude Chat limits you to 20 files per conversation and 30MB per file, since everything uploads to the cloud. Claude Cowork reads directly from your computer, so there's no file limit and no size cap.\n\nShift 2: Claude Chat has a much smaller context window, meaning it starts compacting your conversation and losing important details way sooner than Claude Cowork.\n\nShift 3: Claude Chat gives you answers in a chat window, so you still have to do something with it yourself. Claude Cowork delivers ready-to-use files directly in your folder. I gave it 100+ receipts and got back a complete expense report in Excel, even flagging rows for me to review.", "duration" => 43, "filename" => "/downloads/Jeff Su/2026-04-02 #claude Chat vs. Cowork: Biggest 3 differences/#claude Chat vs. Cowork: Biggest 3 differences [6PZCZWvNVHc].mp4", "id" => "6PZCZWvNVHc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/6PZCZWvNVHc", "playlist_index" => 3, "timestamp" => 1775136573, "title" => "#claude Chat vs. Cowork: Biggest 3 differences", "upload_date" => "20260402"} 16:50:47.709 [debug] QUERY OK source="sources" db=0.3ms idle=1436.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:50:47.711 [debug] QUERY OK source="sources" db=0.6ms idle=1408.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:47.712 [debug] QUERY OK source="media_items" db=0.9ms idle=1407.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-02 13:29:33Z], 1] 16:50:47.714 [debug] QUERY OK source="media_items" db=1.4ms idle=1408.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#ClaudeCowork is the next level up from #Claude Chat. Here are the 3 biggest shifts in how you work.\n\nShift 1: Claude Chat limits you to 20 files per conversation and 30MB per file, since everything uploads to the cloud. Claude Cowork reads directly from your computer, so there's no file limit and no size cap.\n\nShift 2: Claude Chat has a much smaller context window, meaning it starts compacting your conversation and losing important details way sooner than Claude Cowork.\n\nShift 3: Claude Chat gives you answers in a chat window, so you still have to do something with it yourself. Claude Cowork delivers ready-to-use files directly in your folder. I gave it 100+ receipts and got back a complete expense report in Excel, even flagging rows for me to review.", "#claude Chat vs. Cowork: Biggest 3 differences", "e098068b-8aec-4534-9916-d57f78275c3f", false, "6PZCZWvNVHc", 1, [], 43, false, "https://www.youtube.com/shorts/6PZCZWvNVHc", 3, "/downloads/Jeff Su/2026-04-02 #claude Chat vs. Cowork: Biggest 3 differences/#claude Chat vs. Cowork: Biggest 3 differences [6PZCZWvNVHc].mp4", false, true, 99, ~U[2026-04-02 13:29:33Z], ~U[2026-04-23 14:50:47Z], ~U[2026-04-23 14:50:47Z], "#ClaudeCowork is the next level up from #Claude Chat. Here are the 3 biggest shifts in how you work.\n\nShift 1: Claude Chat limits you to 20 files per conversation and 30MB per file, since everything uploads to the cloud. Claude Cowork reads directly from your computer, so there's no file limit and no size cap.\n\nShift 2: Claude Chat has a much smaller context window, meaning it starts compacting your conversation and losing important details way sooner than Claude Cowork.\n\nShift 3: Claude Chat gives you answers in a chat window, so you still have to do something with it yourself. Claude Cowork delivers ready-to-use files directly in your folder. I gave it 100+ receipts and got back a complete expense report in Excel, even flagging rows for me to review.", "#claude Chat vs. Cowork: Biggest 3 differences", "6PZCZWvNVHc", 1, 43, false, "https://www.youtube.com/shorts/6PZCZWvNVHc", "/downloads/Jeff Su/2026-04-02 #claude Chat vs. Cowork: Biggest 3 differences/#claude Chat vs. Cowork: Biggest 3 differences [6PZCZWvNVHc].mp4", true, ~U[2026-04-02 13:29:33Z]] 16:50:47.715 [debug] QUERY OK source="sources" db=0.7ms idle=730.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:47.716 [debug] QUERY OK source="media_profiles" db=0.4ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:50:47.717 [debug] QUERY OK source="media_items" db=0.4ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [191] 16:50:47.717 [info] Kicking off download for media item #191 (6PZCZWvNVHc) 16:50:47.721 [debug] QUERY OK source="tasks" db=0.2ms idle=5.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [195, 191, ~U[2026-04-23 14:50:47Z], ~U[2026-04-23 14:50:47Z]] 16:50:47.721 [debug] Current batch of media processed. Will check again in 1000ms 16:50:48.288 [info] {"source":"oban","duration":938,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:50:48.722 [debug] Current batch of media processed. Will check again in 1000ms 16:50:49.723 [debug] Current batch of media processed. Will check again in 1000ms 16:50:50.724 [debug] Current batch of media processed. Will check again in 1000ms 16:50:51.725 [debug] Current batch of media processed. Will check again in 1000ms 16:50:52.364 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=JqKB97HpWrk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/41/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4d/5d/4d5d0631b68549a71b4a2c9b26e44de80e16fd12ecd52f928c2bf5d42b5dddfb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:50:52.365 [debug] QUERY OK db=0.1ms idle=1091.9ms begin [] 16:50:52.366 [debug] QUERY OK source="media_items" db=1.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:50:46Z], "/downloads/Jeff Su/2024-08-20 10 Mac Apps You Haven't Heard Of (but should be using)/10 Mac Apps You Haven't Heard Of (but should be using) [JqKB97HpWrk].mp4", "/downloads/Jeff Su/2024-08-20 10 Mac Apps You Haven't Heard Of (but should be using)/10 Mac Apps You Haven't Heard Of (but should be using) [JqKB97HpWrk].info.json", "/downloads/Jeff Su/2024-08-20 10 Mac Apps You Haven't Heard Of (but should be using)/10 Mac Apps You Haven't Heard Of (but should be using) [JqKB97HpWrk].nfo", "/downloads/Jeff Su/2024-08-20 10 Mac Apps You Haven't Heard Of (but should be using)/10 Mac Apps You Haven't Heard Of (but should be using) [JqKB97HpWrk]-thumb.jpg", ~U[2026-04-23 14:50:52Z], 41] 16:50:52.368 [debug] QUERY OK source="media_metadata" db=1.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/41/metadata.json.gz", "/config/metadata/media_items/41/thumbnail.jpg", 41, ~U[2026-04-23 14:50:52Z], ~U[2026-04-23 14:50:52Z]] 16:50:52.369 [debug] QUERY OK db=0.3ms commit [] 16:50:52.371 [debug] QUERY OK source="media_items" db=1.8ms idle=1096.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [39233121, ~U[2026-04-23 14:50:52Z], 41] 16:50:52.371 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:50:52.372 [info] {"args":{"id":41},"id":45,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":38820764,"event":"job:stop","queue_time":596549908,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:50:52.379 [info] {"args":{"id":43},"id":47,"meta":{},"system_time":1776955852379126620,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:50:52.380 [debug] QUERY OK source="media_items" db=0.9ms idle=106.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" = ?) [43] 16:50:52.380 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:50:52.381 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:52.382 [debug] QUERY OK source="media_profiles" db=0.3ms idle=10.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:50:52.382 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=9.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [43] 16:50:52.386 [debug] QUERY OK source="media_metadata" db=0.9ms idle=6.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [43] 16:50:52.386 [debug] QUERY OK source="media_profiles" db=0.6ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:50:52.387 [debug] QUERY OK source="settings" db=0.2ms idle=6.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:52.388 [debug] QUERY OK source="settings" db=0.1ms idle=5.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:52.388 [debug] Running yt-dlp command for action: get_downloadable_status 16:50:52.389 [debug] QUERY OK source="settings" db=0.2ms idle=6.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:52.390 [debug] QUERY OK source="settings" db=0.8ms 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 [] 16:50:52.391 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:50:52.391 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OKF7ZeWNrfg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d1/df/d1dff69a5aa9b090ef02d73398b3868f832505876b0485120aa5cfb1a2ce02c9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:50:52.726 [debug] Current batch of media processed. Will check again in 1000ms 16:50:53.727 [debug] Current batch of media processed. Will check again in 1000ms 16:50:54.729 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "If you're prompting #ClaudeCowork the same way you prompt #Claude Chat, you're doing it wrong.\n\nClaude Chat uses task-first language. You guide every step: \"Do this first. Now format it like that.\"\n\nCowork uses outcome-first language. You describe the end result and let it figure out the approach.\n\nFor example, with Claude Chat: \"I have 15 raw thumbnail images. What naming convention would you recommend?\"\n\nYou get a recommendation, then do the work yourself.\n\nWith Claude Cowork on the other hand: \"Rename each photo based on what's in it and sort them into subfolders by type.\"\n\nTwo minutes later, the work is done.\n\nShare this with someone just getting started with Cowork 😁\n\n#AI", "duration" => 48, "filename" => "/downloads/Jeff Su/2026-03-26 Claude Cowork: The #1 Thing To Know/Claude Cowork: The #1 Thing To Know [KS-p0e-KwBA].mp4", "id" => "KS-p0e-KwBA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/KS-p0e-KwBA", "playlist_index" => 4, "timestamp" => 1774530036, "title" => "Claude Cowork: The #1 Thing To Know", "upload_date" => "20260326"} 16:50:54.730 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=731.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:50:54.731 [debug] QUERY OK source="sources" db=0.2ms idle=458.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:54.733 [debug] QUERY OK source="media_items" db=1.3ms idle=458.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 13:00:36Z], 1] 16:50:54.956 [debug] QUERY OK source="media_items" db=222.6ms idle=460.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're prompting #ClaudeCowork the same way you prompt #Claude Chat, you're doing it wrong.\n\nClaude Chat uses task-first language. You guide every step: \"Do this first. Now format it like that.\"\n\nCowork uses outcome-first language. You describe the end result and let it figure out the approach.\n\nFor example, with Claude Chat: \"I have 15 raw thumbnail images. What naming convention would you recommend?\"\n\nYou get a recommendation, then do the work yourself.\n\nWith Claude Cowork on the other hand: \"Rename each photo based on what's in it and sort them into subfolders by type.\"\n\nTwo minutes later, the work is done.\n\nShare this with someone just getting started with Cowork 😁\n\n#AI", "Claude Cowork: The #1 Thing To Know", "a44c4f6d-6b89-4f0d-b29b-8e85a363ccb3", false, "KS-p0e-KwBA", 1, [], 48, false, "https://www.youtube.com/shorts/KS-p0e-KwBA", 4, "/downloads/Jeff Su/2026-03-26 Claude Cowork: The #1 Thing To Know/Claude Cowork: The #1 Thing To Know [KS-p0e-KwBA].mp4", false, true, 99, ~U[2026-03-26 13:00:36Z], ~U[2026-04-23 14:50:54Z], ~U[2026-04-23 14:50:54Z], "If you're prompting #ClaudeCowork the same way you prompt #Claude Chat, you're doing it wrong.\n\nClaude Chat uses task-first language. You guide every step: \"Do this first. Now format it like that.\"\n\nCowork uses outcome-first language. You describe the end result and let it figure out the approach.\n\nFor example, with Claude Chat: \"I have 15 raw thumbnail images. What naming convention would you recommend?\"\n\nYou get a recommendation, then do the work yourself.\n\nWith Claude Cowork on the other hand: \"Rename each photo based on what's in it and sort them into subfolders by type.\"\n\nTwo minutes later, the work is done.\n\nShare this with someone just getting started with Cowork 😁\n\n#AI", "Claude Cowork: The #1 Thing To Know", "KS-p0e-KwBA", 1, 48, false, "https://www.youtube.com/shorts/KS-p0e-KwBA", "/downloads/Jeff Su/2026-03-26 Claude Cowork: The #1 Thing To Know/Claude Cowork: The #1 Thing To Know [KS-p0e-KwBA].mp4", true, ~U[2026-03-26 13:00:36Z]] 16:50:54.957 [debug] QUERY OK source="sources" db=0.3ms idle=683.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:54.959 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.7ms idle=226.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] 16:50:54.959 [debug] QUERY OK source="media_items" db=0.3ms idle=228.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 [192] 16:50:54.959 [info] Kicking off download for media item #192 (KS-p0e-KwBA) 16:50:55.524 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4rlqUHS9fgg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/91/6e/916e04f40c869694b3a3d05f4adde7d19dde21e6b1cec84b4021dc9422200a5f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:50:55.633 [debug] QUERY OK source="tasks" db=0.8ms queue=0.3ms idle=672.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [196, 192, ~U[2026-04-23 14:50:55Z], ~U[2026-04-23 14:50:55Z]] 16:50:55.633 [debug] Current batch of media processed. Will check again in 1000ms 16:50:55.664 [debug] Running yt-dlp command for action: download_thumbnail 16:50:55.666 [debug] QUERY OK source="settings" db=0.3ms idle=706.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:55.667 [debug] QUERY OK source="settings" db=0.5ms idle=703.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:55.667 [debug] QUERY OK source="settings" db=0.2ms idle=666.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:55.668 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4rlqUHS9fgg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/42/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c9/d3/c9d39067b83239da9e65c30ba53dd93c43222d6ae38f2f6b4d7e6c548805439e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:50:56.634 [debug] Current batch of media processed. Will check again in 1000ms 16:50:57.635 [debug] Current batch of media processed. Will check again in 1000ms 16:50:58.485 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OKF7ZeWNrfg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d1/df/d1dff69a5aa9b090ef02d73398b3868f832505876b0485120aa5cfb1a2ce02c9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:50:58.486 [debug] Running yt-dlp command for action: download 16:50:58.486 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=1213.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:58.486 [debug] QUERY OK source="settings" db=0.1ms idle=1213.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:58.487 [debug] QUERY OK source="settings" db=0.1ms idle=1213.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:50:58.487 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OKF7ZeWNrfg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/3f/44/3f44456a076eb42528b72e649d603ff640022754dc061ae218906db7318ce8d7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:50:58.636 [debug] Current batch of media processed. Will check again in 1000ms 16:50:59.638 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "Most of what you upload to #NotebookLM won't make it into your final output. The trick is figuring out what matters without reading everything.\n\nThat's where Mind Maps come in.\n\nInstead of scanning through every source, you generate one map and instantly see every topic and subtopic laid out visually, allowing you to cherry-pick what's relevant and skip the rest.\n\nSince my audience cares a LOT more about practical tips as opposed to technical stuff, I clicked \"11 Practical Techniques\" on the mind map and skipped \"Agentic Toggles API Tips\" entirely.\n\nThis opens a focused chat where I could find the specific subtopics that my viewers would actually appreciate! 😁\n\nTry this next time you're prepping a project with multiple sources.\n\n#AI #productivity", "duration" => 40, "filename" => "/downloads/Jeff Su/2026-03-20 This NotebookLM feature cuts my workload by 50%/This NotebookLM feature cuts my workload by 50% [kCxlQcKsoZg].mp4", "id" => "kCxlQcKsoZg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/kCxlQcKsoZg", "playlist_index" => 5, "timestamp" => 1774015551, "title" => "This NotebookLM feature cuts my workload by 50%", "upload_date" => "20260320"} 16:50:59.639 [debug] QUERY OK source="sources" db=0.9ms idle=1151.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:50:59.640 [debug] QUERY OK source="sources" db=0.6ms idle=1152.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:50:59.642 [debug] QUERY OK source="media_items" db=1.1ms idle=1153.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-20 14:05:51Z], 1] 16:50:59.644 [debug] QUERY OK source="media_items" db=1.4ms idle=622.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Most of what you upload to #NotebookLM won't make it into your final output. The trick is figuring out what matters without reading everything.\n\nThat's where Mind Maps come in.\n\nInstead of scanning through every source, you generate one map and instantly see every topic and subtopic laid out visually, allowing you to cherry-pick what's relevant and skip the rest.\n\nSince my audience cares a LOT more about practical tips as opposed to technical stuff, I clicked \"11 Practical Techniques\" on the mind map and skipped \"Agentic Toggles API Tips\" entirely.\n\nThis opens a focused chat where I could find the specific subtopics that my viewers would actually appreciate! 😁\n\nTry this next time you're prepping a project with multiple sources.\n\n#AI #productivity", "This NotebookLM feature cuts my workload by 50%", "b221d29c-110a-42b3-bab9-7cf7b853ad69", false, "kCxlQcKsoZg", 1, [], 40, false, "https://www.youtube.com/shorts/kCxlQcKsoZg", 5, "/downloads/Jeff Su/2026-03-20 This NotebookLM feature cuts my workload by 50%/This NotebookLM feature cuts my workload by 50% [kCxlQcKsoZg].mp4", false, true, 99, ~U[2026-03-20 14:05:51Z], ~U[2026-04-23 14:50:59Z], ~U[2026-04-23 14:50:59Z], "Most of what you upload to #NotebookLM won't make it into your final output. The trick is figuring out what matters without reading everything.\n\nThat's where Mind Maps come in.\n\nInstead of scanning through every source, you generate one map and instantly see every topic and subtopic laid out visually, allowing you to cherry-pick what's relevant and skip the rest.\n\nSince my audience cares a LOT more about practical tips as opposed to technical stuff, I clicked \"11 Practical Techniques\" on the mind map and skipped \"Agentic Toggles API Tips\" entirely.\n\nThis opens a focused chat where I could find the specific subtopics that my viewers would actually appreciate! 😁\n\nTry this next time you're prepping a project with multiple sources.\n\n#AI #productivity", "This NotebookLM feature cuts my workload by 50%", "kCxlQcKsoZg", 1, 40, false, "https://www.youtube.com/shorts/kCxlQcKsoZg", "/downloads/Jeff Su/2026-03-20 This NotebookLM feature cuts my workload by 50%/This NotebookLM feature cuts my workload by 50% [kCxlQcKsoZg].mp4", true, ~U[2026-03-20 14:05:51Z]] 16:50:59.645 [debug] QUERY OK source="sources" db=0.8ms idle=371.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:50:59.646 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 16:50:59.647 [debug] QUERY OK source="media_items" db=0.5ms 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 [193] 16:50:59.647 [info] Kicking off download for media item #193 (kCxlQcKsoZg) 16:50:59.651 [debug] QUERY OK source="tasks" db=0.3ms idle=5.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [197, 193, ~U[2026-04-23 14:50:59Z], ~U[2026-04-23 14:50:59Z]] 16:50:59.652 [debug] Current batch of media processed. Will check again in 1000ms 16:51:00.220 [info] {"source":"oban","duration":317,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:51:00.652 [debug] Current batch of media processed. Will check again in 1000ms 16:51:01.653 [debug] Current batch of media processed. Will check again in 1000ms 16:51:02.109 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4rlqUHS9fgg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/42/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c9/d3/c9d39067b83239da9e65c30ba53dd93c43222d6ae38f2f6b4d7e6c548805439e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:51:02.111 [debug] QUERY OK db=2.1ms idle=836.7ms begin [] 16:51:02.113 [debug] QUERY OK source="media_items" db=1.2ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:50:55Z], "/downloads/Jeff Su/2024-08-06 10 BEST Productivity Tips for Google Docs!/10 BEST Productivity Tips for Google Docs! [4rlqUHS9fgg].mp4", "/downloads/Jeff Su/2024-08-06 10 BEST Productivity Tips for Google Docs!/10 BEST Productivity Tips for Google Docs! [4rlqUHS9fgg].info.json", "/downloads/Jeff Su/2024-08-06 10 BEST Productivity Tips for Google Docs!/10 BEST Productivity Tips for Google Docs! [4rlqUHS9fgg].nfo", "/downloads/Jeff Su/2024-08-06 10 BEST Productivity Tips for Google Docs!/10 BEST Productivity Tips for Google Docs! [4rlqUHS9fgg]-thumb.jpg", ~U[2026-04-23 14:51:02Z], 42] 16:51:02.121 [debug] QUERY OK source="media_metadata" db=7.7ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/42/metadata.json.gz", "/config/metadata/media_items/42/thumbnail.jpg", 42, ~U[2026-04-23 14:51:02Z], ~U[2026-04-23 14:51:02Z]] 16:51:02.123 [debug] QUERY OK db=1.4ms commit [] 16:51:02.126 [debug] QUERY OK source="media_items" db=2.3ms idle=850.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [38319559, ~U[2026-04-23 14:51:02Z], 42] 16:51:02.126 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:51:02.127 [info] {"args":{"id":42},"id":46,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":39482424,"event":"job:stop","queue_time":601642881,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:51:02.134 [info] {"args":{"id":44},"id":48,"meta":{},"system_time":1776955862134202439,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:51:02.140 [debug] QUERY OK source="media_items" db=5.9ms idle=106.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" = ?) [44] 16:51:02.141 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:51:02.144 [debug] QUERY OK source="sources" db=2.1ms queue=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:02.148 [debug] QUERY OK source="media_profiles" db=3.0ms queue=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] 16:51:02.149 [debug] QUERY OK source="media_items" db=0.4ms idle=21.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 [44] 16:51:02.150 [debug] QUERY OK source="media_metadata" db=0.2ms idle=16.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [44] 16:51:02.150 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:51:02.155 [debug] QUERY OK source="settings" db=4.1ms queue=0.2ms idle=7.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:02.156 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=8.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:02.157 [debug] Running yt-dlp command for action: get_downloadable_status 16:51:02.159 [debug] QUERY OK source="settings" db=1.0ms idle=9.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:02.161 [debug] QUERY OK source="settings" db=1.6ms idle=9.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:02.163 [debug] QUERY OK source="settings" db=1.3ms queue=0.7ms 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 [] 16:51:02.165 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=o64Mv-ArFDI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0f/ab/0fab71cc268932d4ff389af46f79cc895d6317cbf3c29287eeadc7f1a7638a95.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:51:02.654 [debug] Current batch of media processed. Will check again in 1000ms 16:51:03.656 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "#NotebookLM now has more search interest than even Google Gemini.\n\nIts core advantage is the same as before though: you throw in documents across different formats and get a grounded answer instead of hallucinations.\n\nUse it when you know which sources have the answers, those sources are in different formats, and accuracy actually matters.", "duration" => 52, "filename" => "/downloads/Jeff Su/2026-03-11 NotebookLM is now bigger than Gemini/NotebookLM is now bigger than Gemini [Nfe5OCLeD38].mp4", "id" => "Nfe5OCLeD38", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/Nfe5OCLeD38", "playlist_index" => 6, "timestamp" => 1773231092, "title" => "NotebookLM is now bigger than Gemini", "upload_date" => "20260311"} 16:51:03.658 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=625.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:51:03.661 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=386.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:03.663 [debug] QUERY OK source="media_items" db=1.2ms idle=388.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-11 12:11:32Z], 1] 16:51:03.665 [debug] QUERY OK source="media_items" db=1.3ms idle=390.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#NotebookLM now has more search interest than even Google Gemini.\n\nIts core advantage is the same as before though: you throw in documents across different formats and get a grounded answer instead of hallucinations.\n\nUse it when you know which sources have the answers, those sources are in different formats, and accuracy actually matters.", "NotebookLM is now bigger than Gemini", "ee5d6d06-3215-4f50-95b4-b849468e89dc", false, "Nfe5OCLeD38", 1, [], 52, false, "https://www.youtube.com/shorts/Nfe5OCLeD38", 6, "/downloads/Jeff Su/2026-03-11 NotebookLM is now bigger than Gemini/NotebookLM is now bigger than Gemini [Nfe5OCLeD38].mp4", false, true, 99, ~U[2026-03-11 12:11:32Z], ~U[2026-04-23 14:51:03Z], ~U[2026-04-23 14:51:03Z], "#NotebookLM now has more search interest than even Google Gemini.\n\nIts core advantage is the same as before though: you throw in documents across different formats and get a grounded answer instead of hallucinations.\n\nUse it when you know which sources have the answers, those sources are in different formats, and accuracy actually matters.", "NotebookLM is now bigger than Gemini", "Nfe5OCLeD38", 1, 52, false, "https://www.youtube.com/shorts/Nfe5OCLeD38", "/downloads/Jeff Su/2026-03-11 NotebookLM is now bigger than Gemini/NotebookLM is now bigger than Gemini [Nfe5OCLeD38].mp4", true, ~U[2026-03-11 12:11:32Z]] 16:51:03.666 [debug] QUERY OK source="sources" db=0.7ms idle=392.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:51:03.667 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=7.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] 16:51:03.668 [debug] QUERY OK source="media_items" db=0.4ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [194] 16:51:03.668 [info] Kicking off download for media item #194 (Nfe5OCLeD38) 16:51:03.672 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=5.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [198, 194, ~U[2026-04-23 14:51:03Z], ~U[2026-04-23 14:51:03Z]] 16:51:03.673 [debug] Current batch of media processed. Will check again in 1000ms 16:51:04.673 [debug] Current batch of media processed. Will check again in 1000ms 16:51:05.674 [debug] Current batch of media processed. Will check again in 1000ms 16:51:06.675 [debug] Current batch of media processed. Will check again in 1000ms 16:51:07.677 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "I use all three AI tools daily. Here's why.\n\nChatGPT follows complex instructions better than anything else. Gemini processes video, audio, and images natively. Claude writes first drafts that barely need editing. They're not interchangeable.\n\nMy actual workflow: ChatGPT and Gemini handle ideation and research. Claude handles the final polish.", "duration" => 57, "filename" => "/downloads/Jeff Su/2026-02-27 When to use #ChatGPT, #Gemini, and #Claude/When to use #ChatGPT, #Gemini, and #Claude [sfwax2dVPvI].mp4", "id" => "sfwax2dVPvI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/sfwax2dVPvI", "playlist_index" => 7, "timestamp" => 1772197301, "title" => "When to use #ChatGPT, #Gemini, and #Claude", "upload_date" => "20260227"} 16:51:07.677 [debug] QUERY OK source="sources" db=0.3ms idle=637.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:51:07.678 [debug] QUERY OK source="sources" db=0.3ms idle=405.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:07.680 [debug] QUERY OK source="media_items" db=1.0ms idle=405.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-27 13:01:41Z], 1] 16:51:07.681 [debug] QUERY OK source="media_items" db=1.0ms idle=407.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I use all three AI tools daily. Here's why.\n\nChatGPT follows complex instructions better than anything else. Gemini processes video, audio, and images natively. Claude writes first drafts that barely need editing. They're not interchangeable.\n\nMy actual workflow: ChatGPT and Gemini handle ideation and research. Claude handles the final polish.", "When to use #ChatGPT, #Gemini, and #Claude", "0a9e6b45-3954-405b-a395-784881dbe01a", false, "sfwax2dVPvI", 1, [], 57, false, "https://www.youtube.com/shorts/sfwax2dVPvI", 7, "/downloads/Jeff Su/2026-02-27 When to use #ChatGPT, #Gemini, and #Claude/When to use #ChatGPT, #Gemini, and #Claude [sfwax2dVPvI].mp4", false, true, 99, ~U[2026-02-27 13:01:41Z], ~U[2026-04-23 14:51:07Z], ~U[2026-04-23 14:51:07Z], "I use all three AI tools daily. Here's why.\n\nChatGPT follows complex instructions better than anything else. Gemini processes video, audio, and images natively. Claude writes first drafts that barely need editing. They're not interchangeable.\n\nMy actual workflow: ChatGPT and Gemini handle ideation and research. Claude handles the final polish.", "When to use #ChatGPT, #Gemini, and #Claude", "sfwax2dVPvI", 1, 57, false, "https://www.youtube.com/shorts/sfwax2dVPvI", "/downloads/Jeff Su/2026-02-27 When to use #ChatGPT, #Gemini, and #Claude/When to use #ChatGPT, #Gemini, and #Claude [sfwax2dVPvI].mp4", true, ~U[2026-02-27 13:01:41Z]] 16:51:07.682 [debug] QUERY OK source="sources" db=0.2ms idle=409.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:51:07.682 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:51:07.683 [debug] QUERY OK source="media_items" db=0.3ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [195] 16:51:07.683 [info] Kicking off download for media item #195 (sfwax2dVPvI) 16:51:07.687 [debug] QUERY OK source="tasks" db=0.2ms idle=5.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [199, 195, ~U[2026-04-23 14:51:07Z], ~U[2026-04-23 14:51:07Z]] 16:51:07.688 [debug] Current batch of media processed. Will check again in 1000ms 16:51:08.678 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=o64Mv-ArFDI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0f/ab/0fab71cc268932d4ff389af46f79cc895d6317cbf3c29287eeadc7f1a7638a95.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:51:08.679 [debug] Running yt-dlp command for action: download 16:51:08.679 [debug] QUERY OK source="settings" db=0.3ms idle=995.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:08.680 [debug] QUERY OK source="settings" db=0.2ms idle=993.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:08.681 [debug] QUERY OK source="settings" db=0.4ms idle=993.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:08.681 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=o64Mv-ArFDI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/46/79/46794340d182639dd4a221a2c962d57a54b2ae5800a4d77ffcfa130f39047f65.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:51:08.688 [debug] Current batch of media processed. Will check again in 1000ms 16:51:09.689 [debug] Current batch of media processed. Will check again in 1000ms 16:51:10.691 [debug] Current batch of media processed. Will check again in 1000ms 16:51:11.691 [debug] Current batch of media processed. Will check again in 1000ms 16:51:12.693 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "AI feels like extra work when it should be effortless.\n\n❌\u00A0Your phone's share sheet is the problem. By default, AI apps are buried at the bottom.\n\n✅\u00A0Move ChatGPT next to AirDrop on iPhone or pin it to the top on Android.", "duration" => 42, "filename" => "/downloads/Jeff Su/2025-10-02 The 30-second fix for #AI on mobile/The 30-second fix for #AI on mobile [-rWNkgdaYZI].mp4", "id" => "-rWNkgdaYZI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/-rWNkgdaYZI", "playlist_index" => 8, "timestamp" => 1759411287, "title" => "The 30-second fix for #AI on mobile", "upload_date" => "20251002"} 16:51:12.694 [debug] QUERY OK source="sources" db=1.1ms idle=1420.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:51:12.695 [debug] QUERY OK source="sources" db=0.7ms idle=644.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:12.697 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=423.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-02 13:21:27Z], 1] 16:51:12.699 [debug] QUERY OK source="media_items" db=1.5ms idle=425.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["AI feels like extra work when it should be effortless.\n\n❌\u00A0Your phone's share sheet is the problem. By default, AI apps are buried at the bottom.\n\n✅\u00A0Move ChatGPT next to AirDrop on iPhone or pin it to the top on Android.", "The 30-second fix for #AI on mobile", "df30036e-be45-46bd-871b-24e01d71f4c7", false, "-rWNkgdaYZI", 1, [], 42, false, "https://www.youtube.com/shorts/-rWNkgdaYZI", 8, "/downloads/Jeff Su/2025-10-02 The 30-second fix for #AI on mobile/The 30-second fix for #AI on mobile [-rWNkgdaYZI].mp4", false, true, 99, ~U[2025-10-02 13:21:27Z], ~U[2026-04-23 14:51:12Z], ~U[2026-04-23 14:51:12Z], "AI feels like extra work when it should be effortless.\n\n❌\u00A0Your phone's share sheet is the problem. By default, AI apps are buried at the bottom.\n\n✅\u00A0Move ChatGPT next to AirDrop on iPhone or pin it to the top on Android.", "The 30-second fix for #AI on mobile", "-rWNkgdaYZI", 1, 42, false, "https://www.youtube.com/shorts/-rWNkgdaYZI", "/downloads/Jeff Su/2025-10-02 The 30-second fix for #AI on mobile/The 30-second fix for #AI on mobile [-rWNkgdaYZI].mp4", true, ~U[2025-10-02 13:21:27Z]] 16:51:12.702 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms 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" = ?) [1] 16:51:12.703 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=7.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:51:12.704 [debug] QUERY OK source="media_items" db=0.6ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [196] 16:51:12.704 [info] Kicking off download for media item #196 (-rWNkgdaYZI) 16:51:12.712 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=9.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [200, 196, ~U[2026-04-23 14:51:12Z], ~U[2026-04-23 14:51:12Z]] 16:51:12.712 [debug] Current batch of media processed. Will check again in 1000ms 16:51:13.186 [info] GET / 16:51:13.186 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 16:51:13.187 [debug] QUERY OK source="settings" db=0.3ms idle=482.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:13.188 [debug] QUERY OK source="media_profiles" db=0.2ms idle=477.1ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 16:51:13.188 [debug] QUERY OK source="sources" db=0.3ms idle=476.9ms SELECT count(s0."id") FROM "sources" AS s0 [] 16:51:13.189 [debug] QUERY OK source="media_items" db=0.8ms idle=476.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 16:51:13.190 [debug] QUERY OK source="media_items" db=0.7ms idle=137.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 16:51:13.191 [debug] QUERY OK source="settings" db=0.2ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:13.193 [debug] QUERY OK source="settings" db=1.6ms 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 [] 16:51:13.194 [debug] QUERY OK source="settings" db=0.2ms idle=5.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:13.196 [debug] QUERY OK source="tasks" db=1.0ms idle=5.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 16:51:13.201 [debug] QUERY OK source="sources" db=3.9ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:13.201 [debug] QUERY OK source="media_items" db=4.4ms 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", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [43, 44] 16:51:13.204 [debug] QUERY OK source="media_items" db=0.6ms idle=10.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)) [] 16:51:13.206 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=10.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] 16:51:13.207 [debug] QUERY OK source="sources" db=0.6ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:13.211 [debug] QUERY OK source="media_items" db=1.1ms idle=9.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:51:13.224 [debug] QUERY OK source="media_items" db=12.3ms queue=0.1ms idle=10.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] 16:51:13.227 [debug] QUERY OK source="sources" db=1.9ms idle=20.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:13.230 [info] Sent 200 in 43ms 16:51:13.713 [debug] Current batch of media processed. Will check again in 1000ms 16:51:14.713 [debug] Current batch of media processed. Will check again in 1000ms 16:51:15.714 [debug] Current batch of media processed. Will check again in 1000ms 16:51:16.716 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "One iPhone button made me actually use ChatGPT daily.\n\nThe action button launches ChatGPT voice dictation instantly, which means almost no decision fatigue.\n\nI find myself using AI for quick tasks I'd normally skip because it's now effortless.", "duration" => 49, "filename" => "/downloads/Jeff Su/2025-09-25 Activate ChatGPT with iPhone’s Action Button/Activate ChatGPT with iPhone’s Action Button [H4AbF6JP6J4].mp4", "id" => "H4AbF6JP6J4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/H4AbF6JP6J4", "playlist_index" => 9, "timestamp" => 1758804754, "title" => "Activate ChatGPT with iPhone’s Action Button", "upload_date" => "20250925"} 16:51:16.716 [debug] QUERY OK source="sources" db=0.2ms idle=658.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:51:16.717 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=444.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:16.718 [debug] QUERY OK source="media_items" db=0.9ms idle=444.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-25 12:52:34Z], 1] 16:51:16.720 [debug] QUERY OK source="media_items" db=1.1ms idle=446.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["One iPhone button made me actually use ChatGPT daily.\n\nThe action button launches ChatGPT voice dictation instantly, which means almost no decision fatigue.\n\nI find myself using AI for quick tasks I'd normally skip because it's now effortless.", "Activate ChatGPT with iPhone’s Action Button", "4d1b26d8-80d2-4ed8-bf1a-8ec4623d5403", false, "H4AbF6JP6J4", 1, [], 49, false, "https://www.youtube.com/shorts/H4AbF6JP6J4", 9, "/downloads/Jeff Su/2025-09-25 Activate ChatGPT with iPhone’s Action Button/Activate ChatGPT with iPhone’s Action Button [H4AbF6JP6J4].mp4", false, true, 99, ~U[2025-09-25 12:52:34Z], ~U[2026-04-23 14:51:16Z], ~U[2026-04-23 14:51:16Z], "One iPhone button made me actually use ChatGPT daily.\n\nThe action button launches ChatGPT voice dictation instantly, which means almost no decision fatigue.\n\nI find myself using AI for quick tasks I'd normally skip because it's now effortless.", "Activate ChatGPT with iPhone’s Action Button", "H4AbF6JP6J4", 1, 49, false, "https://www.youtube.com/shorts/H4AbF6JP6J4", "/downloads/Jeff Su/2025-09-25 Activate ChatGPT with iPhone’s Action Button/Activate ChatGPT with iPhone’s Action Button [H4AbF6JP6J4].mp4", true, ~U[2025-09-25 12:52:34Z]] 16:51:16.721 [debug] QUERY OK source="sources" db=0.2ms idle=447.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:51:16.721 [debug] QUERY OK source="media_profiles" db=0.4ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:51:16.724 [debug] QUERY OK source="media_items" db=0.4ms queue=1.3ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [197] 16:51:16.724 [info] Kicking off download for media item #197 (H4AbF6JP6J4) 16:51:16.728 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=6.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [201, 197, ~U[2026-04-23 14:51:16Z], ~U[2026-04-23 14:51:16Z]] 16:51:16.728 [debug] Current batch of media processed. Will check again in 1000ms 16:51:17.728 [debug] Current batch of media processed. Will check again in 1000ms 16:51:18.291 [info] {"source":"oban","duration":2083,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:51:18.713 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OKF7ZeWNrfg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/3f/44/3f44456a076eb42528b72e649d603ff640022754dc061ae218906db7318ce8d7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:51:18.731 [debug] Current batch of media processed. Will check again in 1000ms 16:51:18.757 [debug] Running yt-dlp command for action: download_thumbnail 16:51:18.759 [debug] QUERY OK source="settings" db=0.2ms idle=485.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:18.759 [debug] QUERY OK source="settings" db=0.2ms idle=486.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:18.759 [debug] QUERY OK source="settings" db=0.1ms idle=486.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:18.760 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OKF7ZeWNrfg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/43/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/46/17/461748dfd958ade43da3e471a14e50edb6dcb447eebfd60ae129483e5293258f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:51:19.733 [debug] Current batch of media processed. Will check again in 1000ms 16:51:20.735 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "Google's Nano Banana has a superpower Midjourney doesn't.\n\n1️⃣\u00A0Midjourney wins at creating beautiful new images from scratch.\n\n2️⃣\u00A0Nano Banana does something completely different: it edits existing photos with perfect integration.\n\nReplace any object while keeping the exact lighting, shadows, and angles of the original photo.\n\nTwo different tools for two different jobs. One creates, one transforms.", "duration" => 35, "filename" => "/downloads/Jeff Su/2025-09-17 Midjourney vs. Google's Nano Banana/Midjourney vs. Google's Nano Banana [XOfuq-EtZ3A].mp4", "id" => "XOfuq-EtZ3A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/XOfuq-EtZ3A", "playlist_index" => 10, "timestamp" => 1758115193, "title" => "Midjourney vs. Google's Nano Banana", "upload_date" => "20250917"} 16:51:20.735 [debug] QUERY OK source="sources" db=0.3ms idle=667.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:51:20.736 [debug] QUERY OK source="sources" db=0.2ms idle=463.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:20.738 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=463.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-17 13:19:53Z], 1] 16:51:21.886 [debug] QUERY OK source="media_items" db=1147.3ms idle=465.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Google's Nano Banana has a superpower Midjourney doesn't.\n\n1️⃣\u00A0Midjourney wins at creating beautiful new images from scratch.\n\n2️⃣\u00A0Nano Banana does something completely different: it edits existing photos with perfect integration.\n\nReplace any object while keeping the exact lighting, shadows, and angles of the original photo.\n\nTwo different tools for two different jobs. One creates, one transforms.", "Midjourney vs. Google's Nano Banana", "cf7c0d54-68c1-437d-814f-1f97edcd30da", false, "XOfuq-EtZ3A", 1, [], 35, false, "https://www.youtube.com/shorts/XOfuq-EtZ3A", 10, "/downloads/Jeff Su/2025-09-17 Midjourney vs. Google's Nano Banana/Midjourney vs. Google's Nano Banana [XOfuq-EtZ3A].mp4", false, true, 99, ~U[2025-09-17 13:19:53Z], ~U[2026-04-23 14:51:20Z], ~U[2026-04-23 14:51:20Z], "Google's Nano Banana has a superpower Midjourney doesn't.\n\n1️⃣\u00A0Midjourney wins at creating beautiful new images from scratch.\n\n2️⃣\u00A0Nano Banana does something completely different: it edits existing photos with perfect integration.\n\nReplace any object while keeping the exact lighting, shadows, and angles of the original photo.\n\nTwo different tools for two different jobs. One creates, one transforms.", "Midjourney vs. Google's Nano Banana", "XOfuq-EtZ3A", 1, 35, false, "https://www.youtube.com/shorts/XOfuq-EtZ3A", "/downloads/Jeff Su/2025-09-17 Midjourney vs. Google's Nano Banana/Midjourney vs. Google's Nano Banana [XOfuq-EtZ3A].mp4", true, ~U[2025-09-17 13:19:53Z]] 16:51:21.887 [debug] QUERY OK source="sources" db=1.1ms idle=1150.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:51:21.892 [debug] QUERY OK source="media_profiles" db=3.6ms queue=0.3ms idle=1151.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] 16:51:21.893 [debug] QUERY OK source="media_items" db=0.6ms idle=1154.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 [198] 16:51:21.893 [info] Kicking off download for media item #198 (XOfuq-EtZ3A) 16:51:21.897 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=8.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [202, 198, ~U[2026-04-23 14:51:21Z], ~U[2026-04-23 14:51:21Z]] 16:51:21.897 [debug] Current batch of media processed. Will check again in 1000ms 16:51:22.900 [debug] Current batch of media processed. Will check again in 1000ms 16:51:23.900 [debug] Current batch of media processed. Will check again in 1000ms 16:51:24.902 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "You can drag ANY text, image, or file directly into ChatGPT for instant analysis.\n\nYou can take this a step further with Text Replacement.\n\nTurn your most-used prompts into simple shortcuts that expand automatically.\n\nTakes 30 seconds to set up, saves hours every week.\n\n== PROMPT ==\n\nAnalyze this excerpt. Share the top 5 takeaways and share a clear, concise, and objective summary.\n\n== END ==", "duration" => 35, "filename" => "/downloads/Jeff Su/2025-09-10 AI Tip for iPhone Users/AI Tip for iPhone Users [0khAlILG8e4].mp4", "id" => "0khAlILG8e4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/0khAlILG8e4", "playlist_index" => 11, "timestamp" => 1757509202, "title" => "AI Tip for iPhone Users", "upload_date" => "20250910"} 16:51:24.902 [debug] QUERY OK source="sources" db=0.2ms idle=1016.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:51:24.903 [debug] QUERY OK source="sources" db=0.2ms idle=1016.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:24.904 [debug] QUERY OK source="media_items" db=0.8ms idle=1017.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-10 13:00:02Z], 1] 16:51:24.905 [debug] QUERY OK source="media_items" db=1.1ms idle=1009.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["You can drag ANY text, image, or file directly into ChatGPT for instant analysis.\n\nYou can take this a step further with Text Replacement.\n\nTurn your most-used prompts into simple shortcuts that expand automatically.\n\nTakes 30 seconds to set up, saves hours every week.\n\n== PROMPT ==\n\nAnalyze this excerpt. Share the top 5 takeaways and share a clear, concise, and objective summary.\n\n== END ==", "AI Tip for iPhone Users", "afe5065a-234e-4814-85d4-db755bee8bb9", false, "0khAlILG8e4", 1, [], 35, false, "https://www.youtube.com/shorts/0khAlILG8e4", 11, "/downloads/Jeff Su/2025-09-10 AI Tip for iPhone Users/AI Tip for iPhone Users [0khAlILG8e4].mp4", false, true, 99, ~U[2025-09-10 13:00:02Z], ~U[2026-04-23 14:51:24Z], ~U[2026-04-23 14:51:24Z], "You can drag ANY text, image, or file directly into ChatGPT for instant analysis.\n\nYou can take this a step further with Text Replacement.\n\nTurn your most-used prompts into simple shortcuts that expand automatically.\n\nTakes 30 seconds to set up, saves hours every week.\n\n== PROMPT ==\n\nAnalyze this excerpt. Share the top 5 takeaways and share a clear, concise, and objective summary.\n\n== END ==", "AI Tip for iPhone Users", "0khAlILG8e4", 1, 35, false, "https://www.youtube.com/shorts/0khAlILG8e4", "/downloads/Jeff Su/2025-09-10 AI Tip for iPhone Users/AI Tip for iPhone Users [0khAlILG8e4].mp4", true, ~U[2025-09-10 13:00:02Z]] 16:51:24.906 [debug] QUERY OK source="sources" db=0.2ms idle=8.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:24.906 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:51:24.907 [debug] QUERY OK source="media_items" db=0.3ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [199] 16:51:24.907 [info] Kicking off download for media item #199 (0khAlILG8e4) 16:51:24.910 [debug] QUERY OK source="tasks" db=0.2ms idle=4.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [203, 199, ~U[2026-04-23 14:51:24Z], ~U[2026-04-23 14:51:24Z]] 16:51:24.910 [debug] Current batch of media processed. Will check again in 1000ms 16:51:25.234 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=o64Mv-ArFDI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/46/79/46794340d182639dd4a221a2c962d57a54b2ae5800a4d77ffcfa130f39047f65.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:51:25.274 [debug] Running yt-dlp command for action: download_thumbnail 16:51:25.275 [debug] QUERY OK source="settings" db=0.2ms idle=368.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:25.276 [debug] QUERY OK source="settings" db=0.1ms idle=368.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:25.276 [debug] QUERY OK source="settings" db=0.1ms idle=366.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:25.276 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=o64Mv-ArFDI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/44/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d2/c1/d2c1eb888b4cb79aef2e363579ce646375f3a45cc60fe07c99af62af9f024180.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:51:25.911 [debug] Current batch of media processed. Will check again in 1000ms 16:51:26.458 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OKF7ZeWNrfg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/43/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/46/17/461748dfd958ade43da3e471a14e50edb6dcb447eebfd60ae129483e5293258f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:51:26.460 [debug] QUERY OK db=0.1ms idle=1550.0ms begin [] 16:51:26.462 [debug] QUERY OK source="media_items" db=1.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:51:18Z], "/downloads/Jeff Su/2024-05-28 Top 5 LinkedIn Profile Tips! (backed by data)/Top 5 LinkedIn Profile Tips! (backed by data) [OKF7ZeWNrfg].mp4", "/downloads/Jeff Su/2024-05-28 Top 5 LinkedIn Profile Tips! (backed by data)/Top 5 LinkedIn Profile Tips! (backed by data) [OKF7ZeWNrfg].info.json", "/downloads/Jeff Su/2024-05-28 Top 5 LinkedIn Profile Tips! (backed by data)/Top 5 LinkedIn Profile Tips! (backed by data) [OKF7ZeWNrfg].nfo", "/downloads/Jeff Su/2024-05-28 Top 5 LinkedIn Profile Tips! (backed by data)/Top 5 LinkedIn Profile Tips! (backed by data) [OKF7ZeWNrfg]-thumb.jpg", ~U[2026-04-23 14:51:26Z], 43] 16:51:26.464 [debug] QUERY OK source="media_metadata" db=1.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/43/metadata.json.gz", "/config/metadata/media_items/43/thumbnail.jpg", 43, ~U[2026-04-23 14:51:26Z], ~U[2026-04-23 14:51:26Z]] 16:51:26.465 [debug] QUERY OK db=0.4ms commit [] 16:51:26.467 [debug] QUERY OK source="media_items" db=1.7ms idle=1189.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [27525490, ~U[2026-04-23 14:51:26Z], 43] 16:51:26.467 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:51:26.468 [info] {"args":{"id":43},"id":47,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":34088772,"event":"job:stop","queue_time":627377866,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:51:26.476 [info] {"args":{"id":45},"id":49,"meta":{},"system_time":1776955886476246125,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:51:26.477 [debug] QUERY OK source="media_items" db=0.4ms idle=576.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" = ?) [45] 16:51:26.477 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:51:26.482 [debug] QUERY OK source="sources" db=4.9ms queue=0.1ms idle=12.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:26.483 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=15.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] 16:51:26.485 [debug] QUERY OK source="media_items" db=0.4ms queue=0.2ms idle=15.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 [45] 16:51:26.487 [debug] QUERY OK source="media_metadata" db=0.3ms idle=10.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [45] 16:51:26.488 [debug] QUERY OK source="media_profiles" db=0.8ms idle=10.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] 16:51:26.489 [debug] QUERY OK source="settings" db=0.7ms idle=6.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:26.491 [debug] QUERY OK source="settings" db=0.8ms queue=0.2ms idle=6.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:26.492 [debug] Running yt-dlp command for action: get_downloadable_status 16:51:26.494 [debug] QUERY OK source="settings" db=0.3ms idle=8.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:26.495 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=7.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:26.496 [debug] QUERY OK source="settings" db=0.9ms idle=7.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:26.496 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=qcis85AStL4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ce/77/ce774b9c6b4cd314dda97b5859e4b85a19796acb79b6587e5491c38ba55d0e37.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:51:26.912 [debug] Current batch of media processed. Will check again in 1000ms 16:51:27.913 [debug] Current batch of media processed. Will check again in 1000ms 16:51:28.915 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "Scaffolding is a great way to teach yourself AI.\n\nGo to claude.ai/artifacts and view any full chat. You see every prompt, revision, and mistake someone made building their app.\n\nYou don't even have to use Claude, you can just copy and paste the initial prompt into ChatGPT or Gemini (just make sure Canvas is enabled).\n\n@anthropic-ai", "duration" => 39, "filename" => "/downloads/Jeff Su/2025-09-03 learning ai from strangers on the internet/learning ai from strangers on the internet [ppmuBefe48g].mp4", "id" => "ppmuBefe48g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/ppmuBefe48g", "playlist_index" => 12, "timestamp" => 1756903914, "title" => "learning ai from strangers on the internet", "upload_date" => "20250903"} 16:51:28.915 [debug] QUERY OK source="sources" db=0.3ms idle=1018.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:51:28.916 [debug] QUERY OK source="sources" db=0.4ms idle=1019.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:28.918 [debug] QUERY OK source="media_items" db=1.0ms idle=1019.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-03 12:51:54Z], 1] 16:51:28.920 [debug] QUERY OK source="media_items" db=1.1ms idle=1013.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Scaffolding is a great way to teach yourself AI.\n\nGo to claude.ai/artifacts and view any full chat. You see every prompt, revision, and mistake someone made building their app.\n\nYou don't even have to use Claude, you can just copy and paste the initial prompt into ChatGPT or Gemini (just make sure Canvas is enabled).\n\n@anthropic-ai", "learning ai from strangers on the internet", "002d4551-d1fb-4d1c-8868-763be21cb1b7", false, "ppmuBefe48g", 1, [], 39, false, "https://www.youtube.com/shorts/ppmuBefe48g", 12, "/downloads/Jeff Su/2025-09-03 learning ai from strangers on the internet/learning ai from strangers on the internet [ppmuBefe48g].mp4", false, true, 99, ~U[2025-09-03 12:51:54Z], ~U[2026-04-23 14:51:28Z], ~U[2026-04-23 14:51:28Z], "Scaffolding is a great way to teach yourself AI.\n\nGo to claude.ai/artifacts and view any full chat. You see every prompt, revision, and mistake someone made building their app.\n\nYou don't even have to use Claude, you can just copy and paste the initial prompt into ChatGPT or Gemini (just make sure Canvas is enabled).\n\n@anthropic-ai", "learning ai from strangers on the internet", "ppmuBefe48g", 1, 39, false, "https://www.youtube.com/shorts/ppmuBefe48g", "/downloads/Jeff Su/2025-09-03 learning ai from strangers on the internet/learning ai from strangers on the internet [ppmuBefe48g].mp4", true, ~U[2025-09-03 12:51:54Z]] 16:51:28.921 [debug] QUERY OK source="sources" db=0.4ms queue=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" = ?) [1] 16:51:28.921 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 16:51:28.922 [debug] QUERY OK source="media_items" db=0.3ms idle=5.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [200] 16:51:28.922 [info] Kicking off download for media item #200 (ppmuBefe48g) 16:51:28.927 [debug] QUERY OK source="tasks" db=0.5ms queue=0.1ms idle=5.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [204, 200, ~U[2026-04-23 14:51:28Z], ~U[2026-04-23 14:51:28Z]] 16:51:28.927 [debug] Current batch of media processed. Will check again in 1000ms 16:51:29.928 [debug] Current batch of media processed. Will check again in 1000ms 16:51:30.930 [debug] Current batch of media processed. Will check again in 1000ms 16:51:31.633 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=o64Mv-ArFDI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/44/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d2/c1/d2c1eb888b4cb79aef2e363579ce646375f3a45cc60fe07c99af62af9f024180.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:51:31.636 [debug] QUERY OK db=0.2ms queue=0.1ms idle=738.7ms begin [] 16:51:31.639 [debug] QUERY OK source="media_items" db=3.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:51:25Z], "/downloads/Jeff Su/2024-05-14 Google’s NEW Prompting Guide is Incredible!/Google’s NEW Prompting Guide is Incredible! [o64Mv-ArFDI].mp4", "/downloads/Jeff Su/2024-05-14 Google’s NEW Prompting Guide is Incredible!/Google’s NEW Prompting Guide is Incredible! [o64Mv-ArFDI].info.json", "/downloads/Jeff Su/2024-05-14 Google’s NEW Prompting Guide is Incredible!/Google’s NEW Prompting Guide is Incredible! [o64Mv-ArFDI].nfo", "/downloads/Jeff Su/2024-05-14 Google’s NEW Prompting Guide is Incredible!/Google’s NEW Prompting Guide is Incredible! [o64Mv-ArFDI]-thumb.jpg", ~U[2026-04-23 14:51:31Z], 44] 16:51:31.644 [debug] QUERY OK source="media_metadata" db=3.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/44/metadata.json.gz", "/config/metadata/media_items/44/thumbnail.jpg", 44, ~U[2026-04-23 14:51:31Z], ~U[2026-04-23 14:51:31Z]] 16:51:31.645 [debug] QUERY OK db=0.9ms commit [] 16:51:31.649 [debug] QUERY OK source="media_items" db=1.7ms idle=750.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [23227015, ~U[2026-04-23 14:51:31Z], 44] 16:51:31.651 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:51:31.654 [info] {"args":{"id":44},"id":48,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":29517309,"event":"job:stop","queue_time":634132883,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:51:31.662 [info] {"args":{"id":46},"id":50,"meta":{},"system_time":1776955891661825170,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:51:31.663 [debug] QUERY OK source="media_items" db=0.9ms idle=750.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" = ?) [46] 16:51:31.665 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:51:31.667 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=20.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:31.669 [debug] QUERY OK source="media_profiles" db=1.7ms queue=0.3ms idle=17.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] 16:51:31.672 [debug] QUERY OK source="media_items" db=1.0ms queue=0.3ms idle=17.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 [46] 16:51:31.678 [debug] QUERY OK source="media_metadata" db=0.8ms queue=0.7ms idle=14.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [46] 16:51:31.680 [debug] QUERY OK source="media_profiles" db=1.4ms queue=0.7ms idle=15.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] 16:51:31.683 [debug] QUERY OK source="settings" db=1.5ms queue=0.1ms 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 [] 16:51:31.686 [debug] QUERY OK source="settings" db=1.7ms queue=0.7ms idle=14.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:31.689 [debug] Running yt-dlp command for action: get_downloadable_status 16:51:31.691 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:51:31.693 [debug] QUERY OK source="settings" db=1.4ms idle=13.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:31.694 [debug] QUERY OK source="settings" db=0.6ms queue=0.5ms 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 [] 16:51:31.695 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=v0NjRqblySI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d4/0d/d40dc79cec40577448640b443e02c37e58dc78440a2f03d6f2e7509f6e34dc04.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:51:31.930 [debug] Current batch of media processed. Will check again in 1000ms 16:51:32.932 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "Your Google apps have secret AI features you're ignoring.\n\nType @ai in Docs for instant summaries.\nRight-click Drive folders to see what's inside without opening files.\nReference multiple documents in Gemini sidebar with @file tags.", "duration" => 40, "filename" => "/downloads/Jeff Su/2025-08-30 Google AI Features Nobody Knows About/Google AI Features Nobody Knows About [ngYTfihHCNQ].mp4", "id" => "ngYTfihHCNQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/ngYTfihHCNQ", "playlist_index" => 13, "timestamp" => 1756558894, "title" => "Google AI Features Nobody Knows About", "upload_date" => "20250830"} 16:51:32.933 [debug] QUERY OK source="sources" db=0.5ms idle=35.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:51:32.933 [debug] QUERY OK source="sources" db=0.2ms idle=36.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:32.935 [debug] QUERY OK source="media_items" db=0.9ms idle=36.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-30 13:01:34Z], 1] 16:51:32.937 [debug] QUERY OK source="media_items" db=1.3ms idle=38.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Your Google apps have secret AI features you're ignoring.\n\nType @ai in Docs for instant summaries.\nRight-click Drive folders to see what's inside without opening files.\nReference multiple documents in Gemini sidebar with @file tags.", "Google AI Features Nobody Knows About", "607f582f-efbc-411a-8261-89501ccdcbfe", false, "ngYTfihHCNQ", 1, [], 40, false, "https://www.youtube.com/shorts/ngYTfihHCNQ", 13, "/downloads/Jeff Su/2025-08-30 Google AI Features Nobody Knows About/Google AI Features Nobody Knows About [ngYTfihHCNQ].mp4", false, true, 99, ~U[2025-08-30 13:01:34Z], ~U[2026-04-23 14:51:32Z], ~U[2026-04-23 14:51:32Z], "Your Google apps have secret AI features you're ignoring.\n\nType @ai in Docs for instant summaries.\nRight-click Drive folders to see what's inside without opening files.\nReference multiple documents in Gemini sidebar with @file tags.", "Google AI Features Nobody Knows About", "ngYTfihHCNQ", 1, 40, false, "https://www.youtube.com/shorts/ngYTfihHCNQ", "/downloads/Jeff Su/2025-08-30 Google AI Features Nobody Knows About/Google AI Features Nobody Knows About [ngYTfihHCNQ].mp4", true, ~U[2025-08-30 13:01:34Z]] 16:51:32.937 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=21.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:32.939 [debug] QUERY OK source="media_profiles" db=1.7ms idle=4.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:51:32.941 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=6.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [201] 16:51:32.941 [info] Kicking off download for media item #201 (ngYTfihHCNQ) 16:51:32.946 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=7.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [205, 201, ~U[2026-04-23 14:51:32Z], ~U[2026-04-23 14:51:32Z]] 16:51:32.946 [debug] Current batch of media processed. Will check again in 1000ms 16:51:33.648 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=qcis85AStL4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ce/77/ce774b9c6b4cd314dda97b5859e4b85a19796acb79b6587e5491c38ba55d0e37.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:51:33.649 [debug] Running yt-dlp command for action: download 16:51:33.649 [debug] QUERY OK source="settings" db=0.4ms idle=709.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:33.650 [debug] QUERY OK source="settings" db=0.1ms idle=708.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:33.650 [debug] QUERY OK source="settings" db=0.2ms idle=705.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:33.650 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=qcis85AStL4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/27/f5/27f58ac3fcf2155d6641eef311e64fe2aa8f3f9667b1ede0e0c0ca58520b00c8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:51:33.946 [debug] Current batch of media processed. Will check again in 1000ms 16:51:34.947 [debug] Current batch of media processed. Will check again in 1000ms 16:51:35.948 [debug] Current batch of media processed. Will check again in 1000ms 16:51:36.949 [debug] Current batch of media processed. Will check again in 1000ms 16:51:37.950 [debug] Current batch of media processed. Will check again in 1000ms 16:51:38.281 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=v0NjRqblySI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d4/0d/d40dc79cec40577448640b443e02c37e58dc78440a2f03d6f2e7509f6e34dc04.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:51:38.282 [debug] Running yt-dlp command for action: download 16:51:38.284 [debug] QUERY OK source="settings" db=1.6ms idle=1385.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:38.284 [debug] QUERY OK source="settings" db=0.1ms idle=1387.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:38.285 [debug] QUERY OK source="settings" db=0.1ms idle=1387.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:38.285 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=v0NjRqblySI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8a/e2/8ae22e1fd953ed41acc6c778013e6ec4c3e362f6114ab3bddbc56e73e1a894c6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:51:38.951 [debug] Current batch of media processed. Will check again in 1000ms 16:51:39.953 [debug] Current batch of media processed. Will check again in 1000ms 16:51:40.953 [debug] Current batch of media processed. Will check again in 1000ms 16:51:41.954 [debug] Current batch of media processed. Will check again in 1000ms 16:51:42.956 [debug] Current batch of media processed. Will check again in 1000ms 16:51:43.956 [debug] Current batch of media processed. Will check again in 1000ms 16:51:44.958 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "ChatGPT just turned me into a fake developer.\n\nAsked it to write Google Apps Script code to save newsletter emails automatically to a Doc. It gave me everything: code plus instructions.\n\nCopy, paste, run. Done. Now every newsletter saves itself without me lifting a finger.\n\n== FULL PROMPT ==\n\nAct as an automation expert with knowledge of Google Apps Scripts.\n\nCreate a working Apps Script that saves all Gmail emails from a specified sender into a single Google Doc, and explain the setup in beginner-friendly, step-by-step instructions.\n\n== END ==", "duration" => 40, "filename" => "/downloads/Jeff Su/2025-08-20 Here’s how to code…without coding/Here’s how to code…without coding [i1a5MQCvonQ].mp4", "id" => "i1a5MQCvonQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/i1a5MQCvonQ", "playlist_index" => 14, "timestamp" => 1755694829, "title" => "Here’s how to code…without coding", "upload_date" => "20250820"} 16:51:44.958 [debug] QUERY OK source="sources" db=0.3ms idle=1057.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:51:44.959 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1058.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:44.960 [debug] QUERY OK source="media_items" db=0.9ms idle=1021.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-20 13:00:29Z], 1] 16:51:44.963 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=60.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["ChatGPT just turned me into a fake developer.\n\nAsked it to write Google Apps Script code to save newsletter emails automatically to a Doc. It gave me everything: code plus instructions.\n\nCopy, paste, run. Done. Now every newsletter saves itself without me lifting a finger.\n\n== FULL PROMPT ==\n\nAct as an automation expert with knowledge of Google Apps Scripts.\n\nCreate a working Apps Script that saves all Gmail emails from a specified sender into a single Google Doc, and explain the setup in beginner-friendly, step-by-step instructions.\n\n== END ==", "Here’s how to code…without coding", "e743985c-7eac-4138-b96e-9cd299e19543", false, "i1a5MQCvonQ", 1, [], 40, false, "https://www.youtube.com/shorts/i1a5MQCvonQ", 14, "/downloads/Jeff Su/2025-08-20 Here’s how to code…without coding/Here’s how to code…without coding [i1a5MQCvonQ].mp4", false, true, 99, ~U[2025-08-20 13:00:29Z], ~U[2026-04-23 14:51:44Z], ~U[2026-04-23 14:51:44Z], "ChatGPT just turned me into a fake developer.\n\nAsked it to write Google Apps Script code to save newsletter emails automatically to a Doc. It gave me everything: code plus instructions.\n\nCopy, paste, run. Done. Now every newsletter saves itself without me lifting a finger.\n\n== FULL PROMPT ==\n\nAct as an automation expert with knowledge of Google Apps Scripts.\n\nCreate a working Apps Script that saves all Gmail emails from a specified sender into a single Google Doc, and explain the setup in beginner-friendly, step-by-step instructions.\n\n== END ==", "Here’s how to code…without coding", "i1a5MQCvonQ", 1, 40, false, "https://www.youtube.com/shorts/i1a5MQCvonQ", "/downloads/Jeff Su/2025-08-20 Here’s how to code…without coding/Here’s how to code…without coding [i1a5MQCvonQ].mp4", true, ~U[2025-08-20 13:00:29Z]] 16:51:44.963 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=23.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:44.964 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:51:44.965 [debug] QUERY OK source="media_items" db=0.3ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [202] 16:51:44.965 [info] Kicking off download for media item #202 (i1a5MQCvonQ) 16:51:44.969 [debug] QUERY OK source="tasks" db=0.2ms idle=5.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [206, 202, ~U[2026-04-23 14:51:44Z], ~U[2026-04-23 14:51:44Z]] 16:51:44.969 [debug] Current batch of media processed. Will check again in 1000ms 16:51:45.969 [debug] Current batch of media processed. Will check again in 1000ms 16:51:46.971 [debug] Current batch of media processed. Will check again in 1000ms 16:51:47.972 [debug] Current batch of media processed. Will check again in 1000ms 16:51:48.294 [info] {"source":"oban","duration":1256,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:51:48.974 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "Hallucination is just creativity in disguise.\n\nNotebookLM stays grounded for accuracy - perfect for medical reports.\n\nGemini hallucinates more, making it ideal for brainstorming and marketing copy.\n\nWhich Google AI are you using for the wrong tasks?", "duration" => 43, "filename" => "/downloads/Jeff Su/2025-08-14 Why I Want My AI to Hallucinate/Why I Want My AI to Hallucinate [L-VSz47BoBM].mp4", "id" => "L-VSz47BoBM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/L-VSz47BoBM", "playlist_index" => 15, "timestamp" => 1755176429, "title" => "Why I Want My AI to Hallucinate", "upload_date" => "20250814"} 16:51:48.975 [debug] QUERY OK source="sources" db=0.3ms idle=680.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:51:48.975 [debug] QUERY OK source="sources" db=0.2ms idle=74.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:48.977 [debug] QUERY OK source="media_items" db=1.6ms idle=74.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-14 13:00:29Z], 1] 16:51:48.980 [debug] QUERY OK source="media_items" db=2.0ms idle=76.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Hallucination is just creativity in disguise.\n\nNotebookLM stays grounded for accuracy - perfect for medical reports.\n\nGemini hallucinates more, making it ideal for brainstorming and marketing copy.\n\nWhich Google AI are you using for the wrong tasks?", "Why I Want My AI to Hallucinate", "8d493c0b-3fae-43ac-8063-deb9c9e34cfc", false, "L-VSz47BoBM", 1, [], 43, false, "https://www.youtube.com/shorts/L-VSz47BoBM", 15, "/downloads/Jeff Su/2025-08-14 Why I Want My AI to Hallucinate/Why I Want My AI to Hallucinate [L-VSz47BoBM].mp4", false, true, 99, ~U[2025-08-14 13:00:29Z], ~U[2026-04-23 14:51:48Z], ~U[2026-04-23 14:51:48Z], "Hallucination is just creativity in disguise.\n\nNotebookLM stays grounded for accuracy - perfect for medical reports.\n\nGemini hallucinates more, making it ideal for brainstorming and marketing copy.\n\nWhich Google AI are you using for the wrong tasks?", "Why I Want My AI to Hallucinate", "L-VSz47BoBM", 1, 43, false, "https://www.youtube.com/shorts/L-VSz47BoBM", "/downloads/Jeff Su/2025-08-14 Why I Want My AI to Hallucinate/Why I Want My AI to Hallucinate [L-VSz47BoBM].mp4", true, ~U[2025-08-14 13:00:29Z]] 16:51:48.980 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=32.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:48.981 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:51:48.981 [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 [203] 16:51:48.981 [info] Kicking off download for media item #203 (L-VSz47BoBM) 16:51:48.985 [debug] QUERY OK source="tasks" db=0.2ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [207, 203, ~U[2026-04-23 14:51:48Z], ~U[2026-04-23 14:51:48Z]] 16:51:48.985 [debug] Current batch of media processed. Will check again in 1000ms 16:51:49.986 [debug] Current batch of media processed. Will check again in 1000ms 16:51:50.987 [debug] Current batch of media processed. Will check again in 1000ms 16:51:51.988 [debug] Current batch of media processed. Will check again in 1000ms 16:51:52.990 [debug] Current batch of media processed. Will check again in 1000ms 16:51:53.991 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "I pasted the job descriptions for a few roles I'm interested in into a Google Doc.\n\nYour task is to create and populate a table with the following columns:\n\n1. Role title\n2. Quarter the role is posted (YYYYQQ)\n3. Status of my application (Not Started, Researching, Applying. Interviewing, Offer, Rejected,\nDeclined)\n4. Application link (leave blank)\n5. Years of experience needed\n6. Keywords for that role (up to 5)\n\nLet me download the table in .csv format.", "duration" => 38, "filename" => "/downloads/Jeff Su/2025-08-06 #AI tip for Job Seekers/#AI tip for Job Seekers [6jvw6dAFR-M].mp4", "id" => "6jvw6dAFR-M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/6jvw6dAFR-M", "playlist_index" => 16, "timestamp" => 1754491352, "title" => "#AI tip for Job Seekers", "upload_date" => "20250806"} 16:51:53.992 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1090.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:51:53.993 [debug] QUERY OK source="sources" db=0.7ms idle=1091.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:53.995 [debug] QUERY OK source="media_items" db=0.9ms idle=1092.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-06 14:42:32Z], 1] 16:51:54.001 [debug] QUERY OK source="media_items" db=5.3ms idle=1039.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I pasted the job descriptions for a few roles I'm interested in into a Google Doc.\n\nYour task is to create and populate a table with the following columns:\n\n1. Role title\n2. Quarter the role is posted (YYYYQQ)\n3. Status of my application (Not Started, Researching, Applying. Interviewing, Offer, Rejected,\nDeclined)\n4. Application link (leave blank)\n5. Years of experience needed\n6. Keywords for that role (up to 5)\n\nLet me download the table in .csv format.", "#AI tip for Job Seekers", "c27c3194-74c2-4bf6-9300-9c3da2451ae3", false, "6jvw6dAFR-M", 1, [], 38, false, "https://www.youtube.com/shorts/6jvw6dAFR-M", 16, "/downloads/Jeff Su/2025-08-06 #AI tip for Job Seekers/#AI tip for Job Seekers [6jvw6dAFR-M].mp4", false, true, 99, ~U[2025-08-06 14:42:32Z], ~U[2026-04-23 14:51:53Z], ~U[2026-04-23 14:51:53Z], "I pasted the job descriptions for a few roles I'm interested in into a Google Doc.\n\nYour task is to create and populate a table with the following columns:\n\n1. Role title\n2. Quarter the role is posted (YYYYQQ)\n3. Status of my application (Not Started, Researching, Applying. Interviewing, Offer, Rejected,\nDeclined)\n4. Application link (leave blank)\n5. Years of experience needed\n6. Keywords for that role (up to 5)\n\nLet me download the table in .csv format.", "#AI tip for Job Seekers", "6jvw6dAFR-M", 1, 38, false, "https://www.youtube.com/shorts/6jvw6dAFR-M", "/downloads/Jeff Su/2025-08-06 #AI tip for Job Seekers/#AI tip for Job Seekers [6jvw6dAFR-M].mp4", true, ~U[2025-08-06 14:42:32Z]] 16:51:54.002 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=43.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:51:54.003 [debug] QUERY OK source="media_profiles" db=0.4ms idle=10.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:51:54.004 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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 [204] 16:51:54.004 [info] Kicking off download for media item #204 (6jvw6dAFR-M) 16:51:54.008 [debug] QUERY OK source="tasks" db=0.2ms idle=5.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [208, 204, ~U[2026-04-23 14:51:54Z], ~U[2026-04-23 14:51:54Z]] 16:51:54.008 [debug] Current batch of media processed. Will check again in 1000ms 16:51:55.009 [debug] Current batch of media processed. Will check again in 1000ms 16:51:55.352 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=qcis85AStL4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/27/f5/27f58ac3fcf2155d6641eef311e64fe2aa8f3f9667b1ede0e0c0ca58520b00c8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:51:55.388 [debug] Running yt-dlp command for action: download_thumbnail 16:51:55.389 [debug] QUERY OK source="settings" db=0.2ms idle=1384.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:55.389 [debug] QUERY OK source="settings" db=0.1ms idle=1382.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:55.390 [debug] QUERY OK source="settings" db=0.2ms idle=1382.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:55.390 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=qcis85AStL4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/45/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/1d/a9/1da9e0504eed726c8f9cd02d53345ca01e07a212db4cd001fb9c62170c3ae677.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:51:56.009 [debug] Current batch of media processed. Will check again in 1000ms 16:51:57.010 [debug] Current batch of media processed. Will check again in 1000ms 16:51:58.011 [debug] Current batch of media processed. Will check again in 1000ms 16:51:59.012 [debug] Current batch of media processed. Will check again in 1000ms 16:51:59.822 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=v0NjRqblySI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8a/e2/8ae22e1fd953ed41acc6c778013e6ec4c3e362f6114ab3bddbc56e73e1a894c6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:51:59.859 [debug] Running yt-dlp command for action: download_thumbnail 16:51:59.861 [debug] QUERY OK source="settings" db=0.2ms idle=1893.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:59.861 [debug] QUERY OK source="settings" db=0.2ms idle=960.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:59.862 [debug] QUERY OK source="settings" db=0.4ms idle=960.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:51:59.862 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=v0NjRqblySI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/46/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fa/55/fa557ed18165540b1767a52978fb5e0517de913896f6980e22fd938d96ecc487.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:52:00.014 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "Just because we can use AI for something, doesn't mean we should. 🤔\n\nWhile creating a task in Gemini's web app is slow, I often use the mobile app to create notes and calendar events with my voice.\n\nWhy? Because speaking is faster than typing. It's about knowing the right tool for the job.", "duration" => 30, "filename" => "/downloads/Jeff Su/2025-07-30 don’t use #ai for everything/don’t use #ai for everything [jhfiHxChn5Y].mp4", "id" => "jhfiHxChn5Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/jhfiHxChn5Y", "playlist_index" => 17, "timestamp" => 1753878936, "title" => "don’t use #ai for everything", "upload_date" => "20250730"} 16:52:00.015 [debug] QUERY OK source="sources" db=0.6ms idle=1045.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:00.016 [debug] QUERY OK source="sources" db=0.5ms idle=154.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:00.017 [debug] QUERY OK source="media_items" db=0.8ms idle=154.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-30 12:35:36Z], 1] 16:52:00.019 [debug] QUERY OK source="media_items" db=1.1ms idle=155.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Just because we can use AI for something, doesn't mean we should. 🤔\n\nWhile creating a task in Gemini's web app is slow, I often use the mobile app to create notes and calendar events with my voice.\n\nWhy? Because speaking is faster than typing. It's about knowing the right tool for the job.", "don’t use #ai for everything", "dfbccc6a-ca1b-4b91-99cd-a7797e311bd3", false, "jhfiHxChn5Y", 1, [], 30, false, "https://www.youtube.com/shorts/jhfiHxChn5Y", 17, "/downloads/Jeff Su/2025-07-30 don’t use #ai for everything/don’t use #ai for everything [jhfiHxChn5Y].mp4", false, true, 99, ~U[2025-07-30 12:35:36Z], ~U[2026-04-23 14:52:00Z], ~U[2026-04-23 14:52:00Z], "Just because we can use AI for something, doesn't mean we should. 🤔\n\nWhile creating a task in Gemini's web app is slow, I often use the mobile app to create notes and calendar events with my voice.\n\nWhy? Because speaking is faster than typing. It's about knowing the right tool for the job.", "don’t use #ai for everything", "jhfiHxChn5Y", 1, 30, false, "https://www.youtube.com/shorts/jhfiHxChn5Y", "/downloads/Jeff Su/2025-07-30 don’t use #ai for everything/don’t use #ai for everything [jhfiHxChn5Y].mp4", true, ~U[2025-07-30 12:35:36Z]] 16:52:00.019 [debug] QUERY OK source="sources" db=0.2ms idle=48.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:00.020 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=4.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:00.021 [debug] QUERY OK source="media_items" db=0.8ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [205] 16:52:00.021 [info] Kicking off download for media item #205 (jhfiHxChn5Y) 16:52:00.025 [debug] QUERY OK source="tasks" db=0.3ms idle=5.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [209, 205, ~U[2026-04-23 14:52:00Z], ~U[2026-04-23 14:52:00Z]] 16:52:00.025 [debug] Current batch of media processed. Will check again in 1000ms 16:52:00.221 [info] {"source":"oban","duration":248,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:52:01.026 [debug] Current batch of media processed. Will check again in 1000ms 16:52:02.027 [debug] Current batch of media processed. Will check again in 1000ms 16:52:02.592 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=qcis85AStL4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/45/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/1d/a9/1da9e0504eed726c8f9cd02d53345ca01e07a212db4cd001fb9c62170c3ae677.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:52:02.594 [debug] QUERY OK db=0.1ms idle=693.5ms begin [] 16:52:02.596 [debug] QUERY OK source="media_items" db=1.1ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:51:55Z], "/downloads/Jeff Su/2024-04-30 10 Years of Google Presentation Advice in 10 Minutes/10 Years of Google Presentation Advice in 10 Minutes [qcis85AStL4].mp4", "/downloads/Jeff Su/2024-04-30 10 Years of Google Presentation Advice in 10 Minutes/10 Years of Google Presentation Advice in 10 Minutes [qcis85AStL4].info.json", "/downloads/Jeff Su/2024-04-30 10 Years of Google Presentation Advice in 10 Minutes/10 Years of Google Presentation Advice in 10 Minutes [qcis85AStL4].nfo", "/downloads/Jeff Su/2024-04-30 10 Years of Google Presentation Advice in 10 Minutes/10 Years of Google Presentation Advice in 10 Minutes [qcis85AStL4]-thumb.jpg", ~U[2026-04-23 14:52:02Z], 45] 16:52:02.597 [debug] QUERY OK source="media_metadata" db=1.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/45/metadata.json.gz", "/config/metadata/media_items/45/thumbnail.jpg", 45, ~U[2026-04-23 14:52:02Z], ~U[2026-04-23 14:52:02Z]] 16:52:02.598 [debug] QUERY OK db=0.3ms commit [] 16:52:02.600 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=697.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [21770997, ~U[2026-04-23 14:52:02Z], 45] 16:52:02.600 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:52:02.601 [info] {"args":{"id":45},"id":49,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":36124653,"event":"job:stop","queue_time":654474844,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:52:02.609 [info] {"args":{"id":47},"id":51,"meta":{},"system_time":1776955922609138399,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:52:02.610 [debug] QUERY OK source="media_items" db=0.3ms idle=631.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" = ?) [47] 16:52:02.611 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:52:02.611 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:52:02.613 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=11.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] 16:52:02.613 [debug] QUERY OK source="media_items" db=0.3ms idle=11.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [47] 16:52:02.615 [debug] QUERY OK source="media_metadata" db=0.2ms idle=5.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [47] 16:52:02.615 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:02.616 [debug] QUERY OK source="settings" db=0.1ms idle=4.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:02.616 [debug] QUERY OK source="settings" db=0.1ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:02.617 [debug] Running yt-dlp command for action: get_downloadable_status 16:52:02.618 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:52:02.618 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:52:02.618 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:02.619 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_9pKAG_XabM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1f/52/1f5209b5094fe8fc5bd80a8983ee9c1a6d19b64c50ff8f40abed2ec6ffb8fa57.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:52:03.028 [debug] Current batch of media processed. Will check again in 1000ms 16:52:04.030 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 36, "filename" => "/downloads/Jeff Su/2025-07-23 My favorite @Google Gemini tip/My favorite @Google Gemini tip [sAuNzDQW7Zg].mp4", "id" => "sAuNzDQW7Zg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/sAuNzDQW7Zg", "playlist_index" => 18, "timestamp" => 1753279103, "title" => "My favorite @Google Gemini tip", "upload_date" => "20250723"} 16:52:04.032 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=129.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:04.035 [debug] QUERY OK source="sources" db=2.3ms queue=0.1ms idle=131.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:04.038 [debug] QUERY OK source="media_items" db=3.0ms queue=0.1ms idle=134.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-23 13:58:23Z], 1] 16:52:04.042 [debug] QUERY OK source="media_items" db=2.9ms idle=138.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My favorite @Google Gemini tip", "08aace3f-2598-4528-a2ae-ad1a31d2e011", false, "sAuNzDQW7Zg", 1, [], 36, false, "https://www.youtube.com/shorts/sAuNzDQW7Zg", 18, "/downloads/Jeff Su/2025-07-23 My favorite @Google Gemini tip/My favorite @Google Gemini tip [sAuNzDQW7Zg].mp4", false, true, 99, ~U[2025-07-23 13:58:23Z], ~U[2026-04-23 14:52:04Z], ~U[2026-04-23 14:52:04Z], "", "My favorite @Google Gemini tip", "sAuNzDQW7Zg", 1, 36, false, "https://www.youtube.com/shorts/sAuNzDQW7Zg", "/downloads/Jeff Su/2025-07-23 My favorite @Google Gemini tip/My favorite @Google Gemini tip [sAuNzDQW7Zg].mp4", true, ~U[2025-07-23 13:58:23Z]] 16:52:04.045 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=58.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:04.046 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.4ms idle=12.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] 16:52:04.048 [debug] QUERY OK source="media_items" db=1.8ms idle=11.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [206] 16:52:04.049 [info] Kicking off download for media item #206 (sAuNzDQW7Zg) 16:52:04.053 [debug] QUERY OK source="tasks" db=0.2ms idle=7.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [210, 206, ~U[2026-04-23 14:52:04Z], ~U[2026-04-23 14:52:04Z]] 16:52:04.053 [debug] Current batch of media processed. Will check again in 1000ms 16:52:05.053 [debug] Current batch of media processed. Will check again in 1000ms 16:52:05.886 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=v0NjRqblySI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/46/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fa/55/fa557ed18165540b1767a52978fb5e0517de913896f6980e22fd938d96ecc487.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:52:05.888 [debug] QUERY OK db=0.1ms idle=1839.6ms begin [] 16:52:05.890 [debug] QUERY OK source="media_items" db=1.1ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:51:59Z], "/downloads/Jeff Su/2024-04-16 3 Workspace Templates that TRIPLED My Productivity/3 Workspace Templates that TRIPLED My Productivity [v0NjRqblySI].mp4", "/downloads/Jeff Su/2024-04-16 3 Workspace Templates that TRIPLED My Productivity/3 Workspace Templates that TRIPLED My Productivity [v0NjRqblySI].info.json", "/downloads/Jeff Su/2024-04-16 3 Workspace Templates that TRIPLED My Productivity/3 Workspace Templates that TRIPLED My Productivity [v0NjRqblySI].nfo", "/downloads/Jeff Su/2024-04-16 3 Workspace Templates that TRIPLED My Productivity/3 Workspace Templates that TRIPLED My Productivity [v0NjRqblySI]-thumb.jpg", ~U[2026-04-23 14:52:05Z], 46] 16:52:05.891 [debug] QUERY OK source="media_metadata" db=0.7ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/46/metadata.json.gz", "/config/metadata/media_items/46/thumbnail.jpg", 46, ~U[2026-04-23 14:52:05Z], ~U[2026-04-23 14:52:05Z]] 16:52:05.892 [debug] QUERY OK db=0.6ms commit [] 16:52:05.894 [debug] QUERY OK source="media_items" db=1.3ms idle=1840.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [20271666, ~U[2026-04-23 14:52:05Z], 46] 16:52:05.894 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:52:05.894 [info] {"args":{"id":46},"id":50,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":34232600,"event":"job:stop","queue_time":655659844,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:52:05.902 [info] {"args":{"id":48},"id":52,"meta":{},"system_time":1776955925902087156,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:52:05.903 [debug] QUERY OK source="media_items" db=0.5ms idle=10.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" = ?) [48] 16:52:05.903 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:52:05.904 [debug] QUERY OK source="sources" db=0.4ms queue=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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:05.904 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:05.905 [debug] QUERY OK source="media_items" db=0.6ms 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 [48] 16:52:05.907 [debug] QUERY OK source="media_metadata" db=0.2ms idle=4.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [48] 16:52:05.907 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 16:52:05.908 [debug] QUERY OK source="settings" db=0.4ms 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 [] 16:52:05.909 [debug] QUERY OK source="settings" db=0.3ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:05.910 [debug] Running yt-dlp command for action: get_downloadable_status 16:52:05.915 [debug] QUERY OK source="settings" db=0.4ms 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 [] 16:52:05.924 [debug] QUERY OK source="settings" db=8.1ms queue=0.1ms idle=9.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:05.926 [debug] QUERY OK source="settings" db=1.4ms queue=0.1ms idle=17.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:05.926 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=2uN8PTXMY5c --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b7/c3/b7c37aad04f920ec30cc5e66aebd731b302ca73278e72839ed6553183650531e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:52:06.054 [debug] Current batch of media processed. Will check again in 1000ms 16:52:07.055 [debug] Current batch of media processed. Will check again in 1000ms 16:52:08.057 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 39, "filename" => "/downloads/Jeff Su/2025-07-08 Which ChatGPT model should you use?/Which ChatGPT model should you use? [N9pgfFAddxc].mp4", "id" => "N9pgfFAddxc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/N9pgfFAddxc", "playlist_index" => 19, "timestamp" => 1751978365, "title" => "Which ChatGPT model should you use?", "upload_date" => "20250708"} 16:52:08.058 [debug] QUERY OK source="sources" db=1.4ms idle=156.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:08.059 [debug] QUERY OK source="sources" db=0.2ms idle=158.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:08.061 [debug] QUERY OK source="media_items" db=1.0ms idle=158.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-08 12:39:25Z], 1] 16:52:08.062 [debug] QUERY OK source="media_items" db=0.8ms idle=160.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Which ChatGPT model should you use?", "0adfc159-0ae6-447a-931e-a9f3abf3671b", false, "N9pgfFAddxc", 1, [], 39, false, "https://www.youtube.com/shorts/N9pgfFAddxc", 19, "/downloads/Jeff Su/2025-07-08 Which ChatGPT model should you use?/Which ChatGPT model should you use? [N9pgfFAddxc].mp4", false, true, 99, ~U[2025-07-08 12:39:25Z], ~U[2026-04-23 14:52:08Z], ~U[2026-04-23 14:52:08Z], "", "Which ChatGPT model should you use?", "N9pgfFAddxc", 1, 39, false, "https://www.youtube.com/shorts/N9pgfFAddxc", "/downloads/Jeff Su/2025-07-08 Which ChatGPT model should you use?/Which ChatGPT model should you use? [N9pgfFAddxc].mp4", true, ~U[2025-07-08 12:39:25Z]] 16:52:08.063 [debug] QUERY OK source="sources" db=0.2ms idle=66.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:08.063 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:08.064 [debug] QUERY OK source="media_items" db=0.4ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [207] 16:52:08.064 [info] Kicking off download for media item #207 (N9pgfFAddxc) 16:52:08.068 [debug] QUERY OK source="tasks" db=0.2ms idle=5.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [211, 207, ~U[2026-04-23 14:52:08Z], ~U[2026-04-23 14:52:08Z]] 16:52:08.068 [debug] Current batch of media processed. Will check again in 1000ms 16:52:09.068 [debug] Current batch of media processed. Will check again in 1000ms 16:52:09.095 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_9pKAG_XabM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1f/52/1f5209b5094fe8fc5bd80a8983ee9c1a6d19b64c50ff8f40abed2ec6ffb8fa57.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:52:09.096 [debug] Running yt-dlp command for action: download 16:52:09.097 [debug] QUERY OK source="settings" db=0.5ms idle=1032.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:09.098 [debug] QUERY OK source="settings" db=0.5ms idle=1030.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:09.099 [debug] QUERY OK source="settings" db=0.9ms idle=1030.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:09.099 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_9pKAG_XabM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a5/95/a595eb0d2abed58a5ec1d9cf54803276b47a0a4b7aa173e4bbce76acf83a76ee.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:52:10.069 [debug] Current batch of media processed. Will check again in 1000ms 16:52:11.071 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 35, "filename" => "/downloads/Jeff Su/2025-07-03 my top 3 #chatgpt commands/my top 3 #chatgpt commands [GcvfazVDKdM].mp4", "id" => "GcvfazVDKdM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/GcvfazVDKdM", "playlist_index" => 20, "timestamp" => 1751549118, "title" => "my top 3 #chatgpt commands", "upload_date" => "20250703"} 16:52:11.072 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=1070.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:11.073 [debug] QUERY OK source="sources" db=0.5ms idle=171.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:11.075 [debug] QUERY OK source="media_items" db=1.1ms idle=172.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-03 13:25:18Z], 1] 16:52:11.077 [debug] QUERY OK source="media_items" db=1.5ms idle=174.7ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["my top 3 #chatgpt commands", "a79418c9-ed35-4990-8ecd-de197223b162", false, "GcvfazVDKdM", 1, [], 35, false, "https://www.youtube.com/shorts/GcvfazVDKdM", 20, "/downloads/Jeff Su/2025-07-03 my top 3 #chatgpt commands/my top 3 #chatgpt commands [GcvfazVDKdM].mp4", false, true, 99, ~U[2025-07-03 13:25:18Z], ~U[2026-04-23 14:52:11Z], ~U[2026-04-23 14:52:11Z], "", "my top 3 #chatgpt commands", "GcvfazVDKdM", 1, 35, false, "https://www.youtube.com/shorts/GcvfazVDKdM", "/downloads/Jeff Su/2025-07-03 my top 3 #chatgpt commands/my top 3 #chatgpt commands [GcvfazVDKdM].mp4", true, ~U[2025-07-03 13:25:18Z]] 16:52:11.078 [debug] QUERY OK source="sources" db=0.6ms idle=74.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:11.079 [debug] QUERY OK source="media_profiles" db=0.4ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:11.080 [debug] QUERY OK source="media_items" db=1.0ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [208] 16:52:11.081 [info] Kicking off download for media item #208 (GcvfazVDKdM) 16:52:11.085 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=6.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [212, 208, ~U[2026-04-23 14:52:11Z], ~U[2026-04-23 14:52:11Z]] 16:52:11.085 [debug] Current batch of media processed. Will check again in 1000ms 16:52:12.085 [debug] Current batch of media processed. Will check again in 1000ms 16:52:13.087 [debug] Current batch of media processed. Will check again in 1000ms 16:52:13.344 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=2uN8PTXMY5c --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b7/c3/b7c37aad04f920ec30cc5e66aebd731b302ca73278e72839ed6553183650531e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:52:13.344 [debug] Running yt-dlp command for action: download 16:52:13.345 [debug] QUERY OK source="settings" db=0.4ms idle=443.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:13.346 [debug] QUERY OK source="settings" db=0.5ms idle=444.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:13.346 [debug] QUERY OK source="settings" db=0.5ms idle=445.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:13.348 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=2uN8PTXMY5c --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/16/b0/16b0fb2af07df3ab599418a63377c8256036268aff170d0ca9a34f8ad3bc2da0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:52:14.087 [debug] Current batch of media processed. Will check again in 1000ms 16:52:15.089 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "XX", "duration" => 39, "filename" => "/downloads/Jeff Su/2025-06-12 Feeling behind with AI/Feeling behind with AI [zDgKTKp1000].mp4", "id" => "zDgKTKp1000", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/zDgKTKp1000", "playlist_index" => 21, "timestamp" => 1749735062, "title" => "Feeling behind with AI", "upload_date" => "20250612"} 16:52:15.089 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=188.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:15.090 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=189.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:15.091 [debug] QUERY OK source="media_items" db=0.8ms idle=189.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-12 13:31:02Z], 1] 16:52:15.092 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=190.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["XX", "Feeling behind with AI", "ebafd263-d554-4b84-8a81-c14223c0c0d5", false, "zDgKTKp1000", 1, [], 39, false, "https://www.youtube.com/shorts/zDgKTKp1000", 21, "/downloads/Jeff Su/2025-06-12 Feeling behind with AI/Feeling behind with AI [zDgKTKp1000].mp4", false, true, 99, ~U[2025-06-12 13:31:02Z], ~U[2026-04-23 14:52:15Z], ~U[2026-04-23 14:52:15Z], "XX", "Feeling behind with AI", "zDgKTKp1000", 1, 39, false, "https://www.youtube.com/shorts/zDgKTKp1000", "/downloads/Jeff Su/2025-06-12 Feeling behind with AI/Feeling behind with AI [zDgKTKp1000].mp4", true, ~U[2025-06-12 13:31:02Z]] 16:52:15.093 [debug] QUERY OK source="sources" db=0.2ms idle=81.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:52:15.093 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:15.094 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [209] 16:52:15.094 [info] Kicking off download for media item #209 (zDgKTKp1000) 16:52:15.097 [debug] QUERY OK source="tasks" db=0.2ms idle=4.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [213, 209, ~U[2026-04-23 14:52:15Z], ~U[2026-04-23 14:52:15Z]] 16:52:15.097 [debug] Current batch of media processed. Will check again in 1000ms 16:52:16.098 [debug] Current batch of media processed. Will check again in 1000ms 16:52:17.099 [debug] Current batch of media processed. Will check again in 1000ms 16:52:18.101 [debug] Current batch of media processed. Will check again in 1000ms 16:52:18.297 [info] {"source":"oban","duration":2320,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:52:19.103 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 83, "filename" => "/downloads/Jeff Su/2025-06-04 my last day at google (leaked footage)/my last day at google (leaked footage) [IartOwWmymg].mp4", "id" => "IartOwWmymg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/IartOwWmymg", "playlist_index" => 22, "timestamp" => 1749043812, "title" => "my last day at google (leaked footage)", "upload_date" => "20250604"} 16:52:19.103 [debug] QUERY OK source="sources" db=0.3ms idle=806.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:52:19.104 [debug] QUERY OK source="sources" db=0.2ms idle=203.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:19.105 [debug] QUERY OK source="media_items" db=1.0ms idle=203.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-04 13:30:12Z], 1] 16:52:19.107 [debug] QUERY OK source="media_items" db=0.8ms idle=205.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["my last day at google (leaked footage)", "93c1bbaa-1a15-4ef7-8b23-fe58861ce5d8", false, "IartOwWmymg", 1, [], 83, false, "https://www.youtube.com/shorts/IartOwWmymg", 22, "/downloads/Jeff Su/2025-06-04 my last day at google (leaked footage)/my last day at google (leaked footage) [IartOwWmymg].mp4", false, true, 99, ~U[2025-06-04 13:30:12Z], ~U[2026-04-23 14:52:19Z], ~U[2026-04-23 14:52:19Z], "", "my last day at google (leaked footage)", "IartOwWmymg", 1, 83, false, "https://www.youtube.com/shorts/IartOwWmymg", "/downloads/Jeff Su/2025-06-04 my last day at google (leaked footage)/my last day at google (leaked footage) [IartOwWmymg].mp4", true, ~U[2025-06-04 13:30:12Z]] 16:52:19.108 [debug] QUERY OK source="sources" db=0.2ms idle=88.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:52:19.109 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:19.109 [debug] QUERY OK source="media_items" db=0.5ms 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 [210] 16:52:19.110 [info] Kicking off download for media item #210 (IartOwWmymg) 16:52:19.114 [debug] QUERY OK source="tasks" db=0.2ms idle=5.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [214, 210, ~U[2026-04-23 14:52:19Z], ~U[2026-04-23 14:52:19Z]] 16:52:19.114 [debug] Current batch of media processed. Will check again in 1000ms 16:52:20.114 [debug] Current batch of media processed. Will check again in 1000ms 16:52:21.116 [debug] Current batch of media processed. Will check again in 1000ms 16:52:22.116 [debug] Current batch of media processed. Will check again in 1000ms 16:52:23.118 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 35, "filename" => "/downloads/Jeff Su/2025-05-28 The Problem with Learning #AI/The Problem with Learning #AI [YteEA_W9XGc].mp4", "id" => "YteEA_W9XGc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/YteEA_W9XGc", "playlist_index" => 23, "timestamp" => 1748442620, "title" => "The Problem with Learning #AI", "upload_date" => "20250528"} 16:52:23.119 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=217.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:23.120 [debug] QUERY OK source="sources" db=0.8ms idle=218.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:23.121 [debug] QUERY OK source="media_items" db=1.0ms idle=219.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-28 14:30:20Z], 1] 16:52:23.123 [debug] QUERY OK source="media_items" db=0.8ms idle=221.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Problem with Learning #AI", "9d07c374-983f-405c-9a02-2bce74b071b8", false, "YteEA_W9XGc", 1, [], 35, false, "https://www.youtube.com/shorts/YteEA_W9XGc", 23, "/downloads/Jeff Su/2025-05-28 The Problem with Learning #AI/The Problem with Learning #AI [YteEA_W9XGc].mp4", false, true, 99, ~U[2025-05-28 14:30:20Z], ~U[2026-04-23 14:52:23Z], ~U[2026-04-23 14:52:23Z], "", "The Problem with Learning #AI", "YteEA_W9XGc", 1, 35, false, "https://www.youtube.com/shorts/YteEA_W9XGc", "/downloads/Jeff Su/2025-05-28 The Problem with Learning #AI/The Problem with Learning #AI [YteEA_W9XGc].mp4", true, ~U[2025-05-28 14:30:20Z]] 16:52:23.123 [debug] QUERY OK source="sources" db=0.2ms idle=95.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:52:23.124 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:23.125 [debug] QUERY OK source="media_items" db=0.3ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [211] 16:52:23.125 [info] Kicking off download for media item #211 (YteEA_W9XGc) 16:52:23.129 [debug] QUERY OK source="tasks" db=0.2ms idle=5.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [215, 211, ~U[2026-04-23 14:52:23Z], ~U[2026-04-23 14:52:23Z]] 16:52:23.130 [debug] Current batch of media processed. Will check again in 1000ms 16:52:24.130 [debug] Current batch of media processed. Will check again in 1000ms 16:52:25.131 [debug] Current batch of media processed. Will check again in 1000ms 16:52:26.132 [debug] Current batch of media processed. Will check again in 1000ms 16:52:27.133 [debug] Current batch of media processed. Will check again in 1000ms 16:52:28.135 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 53, "filename" => "/downloads/Jeff Su/2025-05-22 Second Brain, #Simplified/Second Brain, #Simplified [PimcgZvyw_Y].mp4", "id" => "PimcgZvyw_Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/PimcgZvyw_Y", "playlist_index" => 24, "timestamp" => 1747919707, "title" => "Second Brain, #Simplified", "upload_date" => "20250522"} 16:52:28.136 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1234.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:28.136 [debug] QUERY OK source="sources" db=0.2ms idle=1235.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:28.138 [debug] QUERY OK source="media_items" db=1.1ms idle=1236.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-22 13:15:07Z], 1] 16:52:28.139 [debug] QUERY OK source="media_items" db=0.8ms idle=1103.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Second Brain, #Simplified", "a55301e5-c794-40fa-befb-6f75c5d040c9", false, "PimcgZvyw_Y", 1, [], 53, false, "https://www.youtube.com/shorts/PimcgZvyw_Y", 24, "/downloads/Jeff Su/2025-05-22 Second Brain, #Simplified/Second Brain, #Simplified [PimcgZvyw_Y].mp4", false, true, 99, ~U[2025-05-22 13:15:07Z], ~U[2026-04-23 14:52:28Z], ~U[2026-04-23 14:52:28Z], "", "Second Brain, #Simplified", "PimcgZvyw_Y", 1, 53, false, "https://www.youtube.com/shorts/PimcgZvyw_Y", "/downloads/Jeff Su/2025-05-22 Second Brain, #Simplified/Second Brain, #Simplified [PimcgZvyw_Y].mp4", true, ~U[2025-05-22 13:15:07Z]] 16:52:28.140 [debug] QUERY OK source="sources" db=0.3ms idle=102.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:28.141 [debug] QUERY OK source="media_profiles" db=0.4ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:28.141 [debug] QUERY OK source="media_items" db=0.5ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [212] 16:52:28.142 [info] Kicking off download for media item #212 (PimcgZvyw_Y) 16:52:28.146 [debug] QUERY OK source="tasks" db=0.2ms idle=5.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [216, 212, ~U[2026-04-23 14:52:28Z], ~U[2026-04-23 14:52:28Z]] 16:52:28.146 [debug] Current batch of media processed. Will check again in 1000ms 16:52:29.146 [debug] Current batch of media processed. Will check again in 1000ms 16:52:30.147 [debug] Current batch of media processed. Will check again in 1000ms 16:52:31.148 [debug] Current batch of media processed. Will check again in 1000ms 16:52:32.150 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 46, "filename" => "/downloads/Jeff Su/2025-05-11 How working at Google is really like 🙃/How working at Google is really like 🙃 [jdeYy1STk5M].mp4", "id" => "jdeYy1STk5M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/jdeYy1STk5M", "playlist_index" => 25, "timestamp" => 1746968473, "title" => "How working at Google is really like 🙃", "upload_date" => "20250511"} 16:52:32.151 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=249.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:32.152 [debug] QUERY OK source="sources" db=0.4ms idle=250.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:32.154 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=251.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-11 13:01:13Z], 1] 16:52:32.156 [debug] QUERY OK source="media_items" db=0.9ms idle=253.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How working at Google is really like 🙃", "823d820a-87aa-494c-9d0c-11c4323db635", false, "jdeYy1STk5M", 1, [], 46, false, "https://www.youtube.com/shorts/jdeYy1STk5M", 25, "/downloads/Jeff Su/2025-05-11 How working at Google is really like 🙃/How working at Google is really like 🙃 [jdeYy1STk5M].mp4", false, true, 99, ~U[2025-05-11 13:01:13Z], ~U[2026-04-23 14:52:32Z], ~U[2026-04-23 14:52:32Z], "", "How working at Google is really like 🙃", "jdeYy1STk5M", 1, 46, false, "https://www.youtube.com/shorts/jdeYy1STk5M", "/downloads/Jeff Su/2025-05-11 How working at Google is really like 🙃/How working at Google is really like 🙃 [jdeYy1STk5M].mp4", true, ~U[2025-05-11 13:01:13Z]] 16:52:32.156 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=111.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:52:32.157 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:32.158 [debug] QUERY OK source="media_items" db=0.4ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [213] 16:52:32.158 [info] Kicking off download for media item #213 (jdeYy1STk5M) 16:52:32.162 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=5.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [217, 213, ~U[2026-04-23 14:52:32Z], ~U[2026-04-23 14:52:32Z]] 16:52:32.162 [debug] Current batch of media processed. Will check again in 1000ms 16:52:33.162 [debug] Current batch of media processed. Will check again in 1000ms 16:52:34.163 [debug] Current batch of media processed. Will check again in 1000ms 16:52:35.164 [debug] Current batch of media processed. Will check again in 1000ms 16:52:35.829 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=2uN8PTXMY5c --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/16/b0/16b0fb2af07df3ab599418a63377c8256036268aff170d0ca9a34f8ad3bc2da0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:52:35.867 [debug] Running yt-dlp command for action: download_thumbnail 16:52:35.868 [debug] QUERY OK source="settings" db=0.2ms idle=1966.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:35.868 [debug] QUERY OK source="settings" db=0.1ms idle=1967.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:35.868 [debug] QUERY OK source="settings" db=0.1ms idle=1967.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:35.869 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=2uN8PTXMY5c --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/48/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6b/16/6b16f2d142214436724804bc492460232f9cbf632bc7fc48e0fa2e91663b0fc6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:52:36.166 [debug] Current batch of media processed. Will check again in 1000ms 16:52:37.167 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 52, "filename" => "/downloads/Jeff Su/2025-05-08 AI Agents explained in 3 steps/AI Agents explained in 3 steps [BF2k_fKuCVM].mp4", "id" => "BF2k_fKuCVM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/BF2k_fKuCVM", "playlist_index" => 26, "timestamp" => 1746710336, "title" => "AI Agents explained in 3 steps", "upload_date" => "20250508"} 16:52:37.167 [debug] QUERY OK source="sources" db=0.3ms idle=1104.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:37.168 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=267.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:37.169 [debug] QUERY OK source="media_items" db=0.9ms idle=267.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-08 13:18:56Z], 1] 16:52:37.912 [debug] QUERY OK source="media_items" db=742.3ms idle=269.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["AI Agents explained in 3 steps", "023c8d6b-b9ad-4121-b3a4-ae63025e11cd", false, "BF2k_fKuCVM", 1, [], 52, false, "https://www.youtube.com/shorts/BF2k_fKuCVM", 26, "/downloads/Jeff Su/2025-05-08 AI Agents explained in 3 steps/AI Agents explained in 3 steps [BF2k_fKuCVM].mp4", false, true, 99, ~U[2025-05-08 13:18:56Z], ~U[2026-04-23 14:52:37Z], ~U[2026-04-23 14:52:37Z], "", "AI Agents explained in 3 steps", "BF2k_fKuCVM", 1, 52, false, "https://www.youtube.com/shorts/BF2k_fKuCVM", "/downloads/Jeff Su/2025-05-08 AI Agents explained in 3 steps/AI Agents explained in 3 steps [BF2k_fKuCVM].mp4", true, ~U[2025-05-08 13:18:56Z]] 16:52:37.913 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=847.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:52:37.914 [debug] QUERY OK source="media_profiles" db=0.3ms idle=745.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] 16:52:37.914 [debug] QUERY OK source="media_items" db=0.4ms idle=745.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 [214] 16:52:37.915 [info] Kicking off download for media item #214 (BF2k_fKuCVM) 16:52:37.920 [debug] QUERY OK source="tasks" db=0.3ms idle=6.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [218, 214, ~U[2026-04-23 14:52:37Z], ~U[2026-04-23 14:52:37Z]] 16:52:37.920 [debug] Current batch of media processed. Will check again in 1000ms 16:52:38.921 [debug] Current batch of media processed. Will check again in 1000ms 16:52:39.922 [debug] Current batch of media processed. Will check again in 1000ms 16:52:40.894 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_9pKAG_XabM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a5/95/a595eb0d2abed58a5ec1d9cf54803276b47a0a4b7aa173e4bbce76acf83a76ee.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:52:40.924 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "XX", "duration" => 39, "filename" => "/downloads/Jeff Su/2025-03-21 Why @Google Tasks gets so much hate/Why @Google Tasks gets so much hate [IXIpqUjNKvM].mp4", "id" => "IXIpqUjNKvM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/IXIpqUjNKvM", "playlist_index" => 27, "timestamp" => 1742562020, "title" => "Why @Google Tasks gets so much hate", "upload_date" => "20250321"} 16:52:40.925 [debug] QUERY OK source="sources" db=0.4ms idle=1020.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:40.926 [debug] QUERY OK source="sources" db=0.9ms idle=1021.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:40.928 [debug] QUERY OK source="media_items" db=1.8ms idle=1022.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-21 13:00:20Z], 1] 16:52:40.931 [debug] QUERY OK source="media_items" db=2.3ms idle=1025.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["XX", "Why @Google Tasks gets so much hate", "db06dd4b-7771-4b22-9838-1ae0576f7c7c", false, "IXIpqUjNKvM", 1, [], 39, false, "https://www.youtube.com/shorts/IXIpqUjNKvM", 27, "/downloads/Jeff Su/2025-03-21 Why @Google Tasks gets so much hate/Why @Google Tasks gets so much hate [IXIpqUjNKvM].mp4", false, true, 99, ~U[2025-03-21 13:00:20Z], ~U[2026-04-23 14:52:40Z], ~U[2026-04-23 14:52:40Z], "XX", "Why @Google Tasks gets so much hate", "IXIpqUjNKvM", 1, 39, false, "https://www.youtube.com/shorts/IXIpqUjNKvM", "/downloads/Jeff Su/2025-03-21 Why @Google Tasks gets so much hate/Why @Google Tasks gets so much hate [IXIpqUjNKvM].mp4", true, ~U[2025-03-21 13:00:20Z]] 16:52:40.933 [debug] QUERY OK source="sources" db=1.0ms idle=860.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:52:40.933 [debug] Running yt-dlp command for action: download_thumbnail 16:52:40.934 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=8.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:40.935 [debug] QUERY OK source="media_items" db=0.8ms 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 [215] 16:52:40.935 [info] Kicking off download for media item #215 (IXIpqUjNKvM) 16:52:40.935 [debug] QUERY OK source="settings" db=0.2ms idle=6.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:40.936 [debug] QUERY OK source="settings" db=0.1ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:40.941 [debug] QUERY OK source="tasks" db=0.3ms idle=5.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [219, 215, ~U[2026-04-23 14:52:40Z], ~U[2026-04-23 14:52:40Z]] 16:52:40.941 [debug] QUERY OK source="settings" db=0.1ms idle=5.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:40.941 [debug] Current batch of media processed. Will check again in 1000ms 16:52:40.941 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_9pKAG_XabM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/47/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fb/84/fb844297481b1750fceea0b06b6c56cb902a530192f34de5228a965f881ef816.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:52:41.941 [debug] Current batch of media processed. Will check again in 1000ms 16:52:42.942 [debug] Current batch of media processed. Will check again in 1000ms 16:52:43.159 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=2uN8PTXMY5c --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/48/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6b/16/6b16f2d142214436724804bc492460232f9cbf632bc7fc48e0fa2e91663b0fc6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:52:43.160 [debug] QUERY OK db=0.0ms idle=255.8ms begin [] 16:52:43.161 [debug] QUERY OK source="media_items" db=1.2ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:52:35Z], "/downloads/Jeff Su/2024-03-19 Top 5 ChatGPT Prompts for Job Seekers!/Top 5 ChatGPT Prompts for Job Seekers! [2uN8PTXMY5c].mp4", "/downloads/Jeff Su/2024-03-19 Top 5 ChatGPT Prompts for Job Seekers!/Top 5 ChatGPT Prompts for Job Seekers! [2uN8PTXMY5c].info.json", "/downloads/Jeff Su/2024-03-19 Top 5 ChatGPT Prompts for Job Seekers!/Top 5 ChatGPT Prompts for Job Seekers! [2uN8PTXMY5c].nfo", "/downloads/Jeff Su/2024-03-19 Top 5 ChatGPT Prompts for Job Seekers!/Top 5 ChatGPT Prompts for Job Seekers! [2uN8PTXMY5c]-thumb.jpg", ~U[2026-04-23 14:52:43Z], 48] 16:52:43.166 [debug] QUERY OK source="media_metadata" db=4.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/48/metadata.json.gz", "/config/metadata/media_items/48/thumbnail.jpg", 48, ~U[2026-04-23 14:52:43Z], ~U[2026-04-23 14:52:43Z]] 16:52:43.166 [debug] QUERY OK db=0.5ms commit [] 16:52:43.169 [debug] QUERY OK source="media_items" db=1.7ms idle=263.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [23039554, ~U[2026-04-23 14:52:43Z], 48] 16:52:43.169 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:52:43.170 [info] {"args":{"id":48},"id":52,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":37267461,"event":"job:stop","queue_time":680900933,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:52:43.177 [info] {"args":{"id":49},"id":53,"meta":{},"system_time":1776955963177065253,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:52:43.178 [debug] QUERY OK source="media_items" db=1.3ms idle=87.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" = ?) [49] 16:52:43.179 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:52:43.180 [debug] QUERY OK source="sources" db=0.8ms 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" = ?) [1] 16:52:43.182 [debug] QUERY OK source="media_profiles" db=0.6ms idle=12.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] 16:52:43.182 [debug] QUERY OK source="media_items" db=0.4ms idle=12.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 [49] 16:52:43.185 [debug] QUERY OK source="media_metadata" db=0.2ms idle=7.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [49] 16:52:43.186 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 16:52:43.187 [debug] QUERY OK source="settings" db=1.0ms idle=5.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:43.188 [debug] QUERY OK source="settings" db=0.2ms idle=6.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:43.188 [debug] Running yt-dlp command for action: get_downloadable_status 16:52:43.189 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:52:43.190 [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 [] 16:52:43.190 [debug] QUERY OK source="settings" db=0.2ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:43.190 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BE-p6965TmE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/38/94/38943af05036d51a52facdc3bb7ebda92f2afab3ba38664b0bc89993f8521642.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:52:43.943 [debug] Current batch of media processed. Will check again in 1000ms 16:52:44.945 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "duration" => 33, "filename" => "/downloads/Jeff Su/2025-03-13 Here's my favorite #claude feature/Here's my favorite #claude feature [7SN1O1Lh8BA].mp4", "id" => "7SN1O1Lh8BA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/7SN1O1Lh8BA", "playlist_index" => 28, "timestamp" => 1741871292, "title" => "Here's my favorite #claude feature", "upload_date" => "20250313"} 16:52:44.946 [debug] QUERY OK source="sources" db=0.2ms idle=853.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:44.946 [debug] QUERY OK source="sources" db=0.2ms idle=42.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:44.948 [debug] QUERY OK source="media_items" db=1.1ms idle=42.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-13 13:08:12Z], 1] 16:52:45.367 [debug] QUERY OK source="media_items" db=418.5ms idle=44.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "Here's my favorite #claude feature", "86bd90cf-9ba9-4bd0-92fa-b004d57d20e8", false, "7SN1O1Lh8BA", 1, [], 33, false, "https://www.youtube.com/shorts/7SN1O1Lh8BA", 28, "/downloads/Jeff Su/2025-03-13 Here's my favorite #claude feature/Here's my favorite #claude feature [7SN1O1Lh8BA].mp4", false, true, 99, ~U[2025-03-13 13:08:12Z], ~U[2026-04-23 14:52:44Z], ~U[2026-04-23 14:52:44Z], "XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "Here's my favorite #claude feature", "7SN1O1Lh8BA", 1, 33, false, "https://www.youtube.com/shorts/7SN1O1Lh8BA", "/downloads/Jeff Su/2025-03-13 Here's my favorite #claude feature/Here's my favorite #claude feature [7SN1O1Lh8BA].mp4", true, ~U[2025-03-13 13:08:12Z]] 16:52:45.368 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=421.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:52:45.369 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=421.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] 16:52:45.370 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=421.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 [216] 16:52:45.370 [info] Kicking off download for media item #216 (7SN1O1Lh8BA) 16:52:45.906 [debug] QUERY OK source="tasks" db=0.5ms idle=537.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [220, 216, ~U[2026-04-23 14:52:45Z], ~U[2026-04-23 14:52:45Z]] 16:52:45.907 [debug] Current batch of media processed. Will check again in 1000ms 16:52:46.907 [debug] Current batch of media processed. Will check again in 1000ms 16:52:47.104 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_9pKAG_XabM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/47/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fb/84/fb844297481b1750fceea0b06b6c56cb902a530192f34de5228a965f881ef816.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:52:47.106 [debug] QUERY OK db=0.9ms idle=1198.9ms begin [] 16:52:47.110 [debug] QUERY OK source="media_items" db=3.1ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:52:40Z], "/downloads/Jeff Su/2024-04-02 A GENIUS Way to use ChatGPT for Presentations!/A GENIUS Way to use ChatGPT for Presentations! [_9pKAG_XabM].mp4", "/downloads/Jeff Su/2024-04-02 A GENIUS Way to use ChatGPT for Presentations!/A GENIUS Way to use ChatGPT for Presentations! [_9pKAG_XabM].info.json", "/downloads/Jeff Su/2024-04-02 A GENIUS Way to use ChatGPT for Presentations!/A GENIUS Way to use ChatGPT for Presentations! [_9pKAG_XabM].nfo", "/downloads/Jeff Su/2024-04-02 A GENIUS Way to use ChatGPT for Presentations!/A GENIUS Way to use ChatGPT for Presentations! [_9pKAG_XabM]-thumb.jpg", ~U[2026-04-23 14:52:47Z], 47] 16:52:47.113 [debug] QUERY OK source="media_metadata" db=2.7ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/47/metadata.json.gz", "/config/metadata/media_items/47/thumbnail.jpg", 47, ~U[2026-04-23 14:52:47Z], ~U[2026-04-23 14:52:47Z]] 16:52:47.114 [debug] QUERY OK db=0.4ms commit [] 16:52:47.118 [debug] QUERY OK source="media_items" db=4.0ms idle=1015.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [59791664, ~U[2026-04-23 14:52:47Z], 47] 16:52:47.120 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:52:47.121 [info] {"args":{"id":47},"id":51,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":44511335,"event":"job:stop","queue_time":682607863,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:52:47.131 [info] {"args":{"id":50},"id":54,"meta":{},"system_time":1776955967130906078,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:52:47.131 [debug] QUERY OK source="media_items" db=0.3ms idle=29.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" = ?) [50] 16:52:47.131 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:52:47.133 [debug] QUERY OK source="sources" db=0.9ms queue=0.7ms 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" = ?) [1] 16:52:47.135 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=15.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] 16:52:47.136 [debug] QUERY OK source="media_items" db=0.5ms idle=14.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [50] 16:52:47.139 [debug] QUERY OK source="media_metadata" db=0.2ms idle=8.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [50] 16:52:47.140 [debug] QUERY OK source="media_profiles" db=0.7ms idle=8.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:47.142 [debug] QUERY OK source="settings" db=1.0ms idle=7.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:47.144 [debug] QUERY OK source="settings" db=0.6ms queue=0.3ms idle=8.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:47.145 [debug] Running yt-dlp command for action: get_downloadable_status 16:52:47.147 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:52:47.148 [debug] QUERY OK source="settings" db=0.8ms idle=8.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:47.150 [debug] QUERY OK source="settings" db=0.9ms queue=0.4ms idle=8.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:47.150 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cYbcgtK0v_Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/3c/7b/3c7b9be02cc3901093c7cfe6b7d1a6129e65390e84ea371a3b8ed4ef4f671e67.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:52:47.908 [debug] Current batch of media processed. Will check again in 1000ms 16:52:48.300 [info] {"source":"oban","duration":2286,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:52:48.910 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "duration" => 46, "filename" => "/downloads/Jeff Su/2025-02-24 Always always always #negotiate your salary!/Always always always #negotiate your salary! [4o7s8leryo0].mp4", "id" => "4o7s8leryo0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/4o7s8leryo0", "playlist_index" => 29, "timestamp" => 1740416411, "title" => "Always always always #negotiate your salary!", "upload_date" => "20250224"} 16:52:48.911 [debug] QUERY OK source="sources" db=0.3ms idle=807.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:52:48.912 [debug] QUERY OK source="sources" db=0.1ms idle=611.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:48.913 [debug] QUERY OK source="media_items" db=0.8ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-24 17:00:11Z], 1] 16:52:48.921 [debug] QUERY OK source="media_items" db=7.3ms idle=9.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "Always always always #negotiate your salary!", "3fdd0f46-2139-43f3-9b23-b385068c2bee", false, "4o7s8leryo0", 1, [], 46, false, "https://www.youtube.com/shorts/4o7s8leryo0", 29, "/downloads/Jeff Su/2025-02-24 Always always always #negotiate your salary!/Always always always #negotiate your salary! [4o7s8leryo0].mp4", false, true, 99, ~U[2025-02-24 17:00:11Z], ~U[2026-04-23 14:52:48Z], ~U[2026-04-23 14:52:48Z], "XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "Always always always #negotiate your salary!", "4o7s8leryo0", 1, 46, false, "https://www.youtube.com/shorts/4o7s8leryo0", "/downloads/Jeff Su/2025-02-24 Always always always #negotiate your salary!/Always always always #negotiate your salary! [4o7s8leryo0].mp4", true, ~U[2025-02-24 17:00:11Z]] 16:52:48.921 [debug] QUERY OK source="sources" db=0.2ms idle=16.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:48.922 [debug] QUERY OK source="media_profiles" db=0.2ms idle=10.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:48.922 [debug] QUERY OK source="media_items" db=0.2ms idle=10.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [217] 16:52:48.922 [info] Kicking off download for media item #217 (4o7s8leryo0) 16:52:48.926 [debug] QUERY OK source="tasks" db=0.2ms idle=4.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [221, 217, ~U[2026-04-23 14:52:48Z], ~U[2026-04-23 14:52:48Z]] 16:52:48.926 [debug] Current batch of media processed. Will check again in 1000ms 16:52:49.926 [debug] Current batch of media processed. Will check again in 1000ms 16:52:50.036 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BE-p6965TmE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/38/94/38943af05036d51a52facdc3bb7ebda92f2afab3ba38664b0bc89993f8521642.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:52:50.036 [debug] Running yt-dlp command for action: download 16:52:50.037 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=1114.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:50.037 [debug] QUERY OK source="settings" db=0.2ms idle=1112.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:50.038 [debug] QUERY OK source="settings" db=0.3ms idle=1112.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:50.039 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BE-p6965TmE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/3f/3d/3f3dec0e9b5a0caa50149895a518a1989faad73f26e27e96371b01ce7272f078.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:52:50.928 [debug] Current batch of media processed. Will check again in 1000ms 16:52:51.929 [debug] Current batch of media processed. Will check again in 1000ms 16:52:52.930 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 55, "filename" => "/downloads/Jeff Su/2025-01-12 Stop #spam texts on your iPhone/Stop #spam texts on your iPhone [-YkoRmaj0zI].mp4", "id" => "-YkoRmaj0zI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/-YkoRmaj0zI", "playlist_index" => 30, "timestamp" => 1736690532, "title" => "Stop #spam texts on your iPhone", "upload_date" => "20250112"} 16:52:52.933 [debug] QUERY OK source="sources" db=2.9ms queue=0.1ms idle=1026.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:52.935 [debug] QUERY OK source="sources" db=1.1ms idle=1029.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:52.938 [debug] QUERY OK source="media_items" db=2.7ms idle=1031.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-12 14:02:12Z], 1] 16:52:52.941 [debug] QUERY OK source="media_items" db=1.5ms queue=0.1ms idle=828.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Stop #spam texts on your iPhone", "d48b734a-e576-40f4-9079-9cb71e720016", false, "-YkoRmaj0zI", 1, [], 55, false, "https://www.youtube.com/shorts/-YkoRmaj0zI", 30, "/downloads/Jeff Su/2025-01-12 Stop #spam texts on your iPhone/Stop #spam texts on your iPhone [-YkoRmaj0zI].mp4", false, true, 99, ~U[2025-01-12 14:02:12Z], ~U[2026-04-23 14:52:52Z], ~U[2026-04-23 14:52:52Z], "", "Stop #spam texts on your iPhone", "-YkoRmaj0zI", 1, 55, false, "https://www.youtube.com/shorts/-YkoRmaj0zI", "/downloads/Jeff Su/2025-01-12 Stop #spam texts on your iPhone/Stop #spam texts on your iPhone [-YkoRmaj0zI].mp4", true, ~U[2025-01-12 14:02:12Z]] 16:52:52.943 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=37.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:52:52.946 [debug] QUERY OK source="media_profiles" db=1.9ms idle=10.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:52.949 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=12.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 [218] 16:52:52.949 [info] Kicking off download for media item #218 (-YkoRmaj0zI) 16:52:52.955 [debug] QUERY OK source="tasks" db=0.4ms idle=11.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [222, 218, ~U[2026-04-23 14:52:52Z], ~U[2026-04-23 14:52:52Z]] 16:52:52.955 [debug] Current batch of media processed. Will check again in 1000ms 16:52:53.955 [debug] Current batch of media processed. Will check again in 1000ms 16:52:54.674 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cYbcgtK0v_Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/3c/7b/3c7b9be02cc3901093c7cfe6b7d1a6129e65390e84ea371a3b8ed4ef4f671e67.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:52:54.674 [debug] Running yt-dlp command for action: download 16:52:54.675 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=1720.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:54.677 [debug] QUERY OK source="settings" db=1.9ms idle=1720.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:54.679 [debug] QUERY OK source="settings" db=2.1ms idle=1722.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:52:54.680 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cYbcgtK0v_Q --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/08/de/08deff390e03ad51abb985f7acfd5920ec9f02fbaa035c0130d0f74e5ad7aa12.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:52:54.956 [debug] Current batch of media processed. Will check again in 1000ms 16:52:55.958 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 22, "filename" => "/downloads/Jeff Su/2025-01-06 My Daily Morning Routine/My Daily Morning Routine [uk1KFbEVPao].mp4", "id" => "uk1KFbEVPao", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/uk1KFbEVPao", "playlist_index" => 31, "timestamp" => 1736170659, "title" => "My Daily Morning Routine", "upload_date" => "20250106"} 16:52:55.958 [debug] QUERY OK source="sources" db=0.3ms idle=1054.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:55.959 [debug] QUERY OK source="sources" db=0.3ms idle=840.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:55.960 [debug] QUERY OK source="media_items" db=1.0ms idle=55.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-06 13:37:39Z], 1] 16:52:55.962 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=57.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Daily Morning Routine", "b1aeca21-161f-4d88-bdd6-cb9df8b2f090", false, "uk1KFbEVPao", 1, [], 22, false, "https://www.youtube.com/shorts/uk1KFbEVPao", 31, "/downloads/Jeff Su/2025-01-06 My Daily Morning Routine/My Daily Morning Routine [uk1KFbEVPao].mp4", false, true, 99, ~U[2025-01-06 13:37:39Z], ~U[2026-04-23 14:52:55Z], ~U[2026-04-23 14:52:55Z], "", "My Daily Morning Routine", "uk1KFbEVPao", 1, 22, false, "https://www.youtube.com/shorts/uk1KFbEVPao", "/downloads/Jeff Su/2025-01-06 My Daily Morning Routine/My Daily Morning Routine [uk1KFbEVPao].mp4", true, ~U[2025-01-06 13:37:39Z]] 16:52:55.963 [debug] QUERY OK source="sources" db=0.3ms idle=58.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:52:55.963 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:55.964 [debug] QUERY OK source="media_items" db=0.3ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [219] 16:52:55.964 [info] Kicking off download for media item #219 (uk1KFbEVPao) 16:52:55.968 [debug] QUERY OK source="tasks" db=0.2ms idle=4.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [223, 219, ~U[2026-04-23 14:52:55Z], ~U[2026-04-23 14:52:55Z]] 16:52:55.968 [debug] Current batch of media processed. Will check again in 1000ms 16:52:56.968 [debug] Current batch of media processed. Will check again in 1000ms 16:52:57.969 [debug] Current batch of media processed. Will check again in 1000ms 16:52:58.970 [debug] Current batch of media processed. Will check again in 1000ms 16:52:59.972 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 39, "filename" => "/downloads/Jeff Su/2024-12-29 There are 3 types of #ai tools/There are 3 types of #ai tools [UraKnngFnsw].mp4", "id" => "UraKnngFnsw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/UraKnngFnsw", "playlist_index" => 32, "timestamp" => 1735478103, "title" => "There are 3 types of #ai tools", "upload_date" => "20241229"} 16:52:59.973 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=845.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:52:59.973 [debug] QUERY OK source="sources" db=0.2ms idle=69.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:52:59.975 [debug] QUERY OK source="media_items" db=0.8ms idle=70.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-29 13:15:03Z], 1] 16:52:59.977 [debug] QUERY OK source="media_items" db=1.6ms idle=71.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There are 3 types of #ai tools", "56274be4-3398-4668-8521-149db56592a0", false, "UraKnngFnsw", 1, [], 39, false, "https://www.youtube.com/shorts/UraKnngFnsw", 32, "/downloads/Jeff Su/2024-12-29 There are 3 types of #ai tools/There are 3 types of #ai tools [UraKnngFnsw].mp4", false, true, 99, ~U[2024-12-29 13:15:03Z], ~U[2026-04-23 14:52:59Z], ~U[2026-04-23 14:52:59Z], "", "There are 3 types of #ai tools", "UraKnngFnsw", 1, 39, false, "https://www.youtube.com/shorts/UraKnngFnsw", "/downloads/Jeff Su/2024-12-29 There are 3 types of #ai tools/There are 3 types of #ai tools [UraKnngFnsw].mp4", true, ~U[2024-12-29 13:15:03Z]] 16:52:59.978 [debug] QUERY OK source="sources" db=0.9ms idle=73.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:52:59.979 [debug] QUERY OK source="media_profiles" db=0.5ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:52:59.980 [debug] QUERY OK source="media_items" db=0.4ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [220] 16:52:59.980 [info] Kicking off download for media item #220 (UraKnngFnsw) 16:52:59.984 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=5.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [224, 220, ~U[2026-04-23 14:52:59Z], ~U[2026-04-23 14:52:59Z]] 16:52:59.984 [debug] Current batch of media processed. Will check again in 1000ms 16:53:00.222 [info] {"source":"oban","duration":254,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:53:00.986 [debug] Current batch of media processed. Will check again in 1000ms 16:53:01.987 [debug] Current batch of media processed. Will check again in 1000ms 16:53:02.987 [debug] Current batch of media processed. Will check again in 1000ms 16:53:03.988 [debug] Current batch of media processed. Will check again in 1000ms 16:53:04.990 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "duration" => 29, "filename" => "/downloads/Jeff Su/2024-12-20 Underrated Feature in Outlook and Gmail/Underrated Feature in Outlook and Gmail [k3SoWrEnALM].mp4", "id" => "k3SoWrEnALM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/k3SoWrEnALM", "playlist_index" => 33, "timestamp" => 1734702662, "title" => "Underrated Feature in Outlook and Gmail", "upload_date" => "20241220"} 16:53:04.990 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1086.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:04.991 [debug] QUERY OK source="sources" db=0.2ms idle=1087.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:04.992 [debug] QUERY OK source="media_items" db=0.9ms idle=1087.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-20 13:51:02Z], 1] 16:53:04.994 [debug] QUERY OK source="media_items" db=0.7ms idle=1089.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "Underrated Feature in Outlook and Gmail", "4122f992-d732-4d1a-a736-11d4fa24c29c", false, "k3SoWrEnALM", 1, [], 29, false, "https://www.youtube.com/shorts/k3SoWrEnALM", 33, "/downloads/Jeff Su/2024-12-20 Underrated Feature in Outlook and Gmail/Underrated Feature in Outlook and Gmail [k3SoWrEnALM].mp4", false, true, 99, ~U[2024-12-20 13:51:02Z], ~U[2026-04-23 14:53:04Z], ~U[2026-04-23 14:53:04Z], "XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "Underrated Feature in Outlook and Gmail", "k3SoWrEnALM", 1, 29, false, "https://www.youtube.com/shorts/k3SoWrEnALM", "/downloads/Jeff Su/2024-12-20 Underrated Feature in Outlook and Gmail/Underrated Feature in Outlook and Gmail [k3SoWrEnALM].mp4", true, ~U[2024-12-20 13:51:02Z]] 16:53:04.994 [debug] QUERY OK source="sources" db=0.4ms idle=856.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:04.995 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:04.995 [debug] QUERY OK source="media_items" db=0.3ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [221] 16:53:04.995 [info] Kicking off download for media item #221 (k3SoWrEnALM) 16:53:04.999 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=4.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [225, 221, ~U[2026-04-23 14:53:04Z], ~U[2026-04-23 14:53:04Z]] 16:53:04.999 [debug] Current batch of media processed. Will check again in 1000ms 16:53:06.001 [debug] Current batch of media processed. Will check again in 1000ms 16:53:07.002 [debug] Current batch of media processed. Will check again in 1000ms 16:53:08.003 [debug] Current batch of media processed. Will check again in 1000ms 16:53:09.005 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 34, "filename" => "/downloads/Jeff Su/2024-12-02 #LinkedIn Headline for Job Seekers/#LinkedIn Headline for Job Seekers [WeE3YRGFsFk].mp4", "id" => "WeE3YRGFsFk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/WeE3YRGFsFk", "playlist_index" => 34, "timestamp" => 1733144333, "title" => "#LinkedIn Headline for Job Seekers", "upload_date" => "20241202"} 16:53:09.005 [debug] QUERY OK source="sources" db=0.3ms idle=856.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:09.006 [debug] QUERY OK source="sources" db=0.2ms idle=102.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:09.007 [debug] QUERY OK source="media_items" db=0.8ms idle=102.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-02 12:58:53Z], 1] 16:53:09.008 [debug] QUERY OK source="media_items" db=0.7ms idle=103.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#LinkedIn Headline for Job Seekers", "9fceacc5-33dd-4afe-88b5-dca44529a1f5", false, "WeE3YRGFsFk", 1, [], 34, false, "https://www.youtube.com/shorts/WeE3YRGFsFk", 34, "/downloads/Jeff Su/2024-12-02 #LinkedIn Headline for Job Seekers/#LinkedIn Headline for Job Seekers [WeE3YRGFsFk].mp4", false, true, 99, ~U[2024-12-02 12:58:53Z], ~U[2026-04-23 14:53:09Z], ~U[2026-04-23 14:53:09Z], "", "#LinkedIn Headline for Job Seekers", "WeE3YRGFsFk", 1, 34, false, "https://www.youtube.com/shorts/WeE3YRGFsFk", "/downloads/Jeff Su/2024-12-02 #LinkedIn Headline for Job Seekers/#LinkedIn Headline for Job Seekers [WeE3YRGFsFk].mp4", true, ~U[2024-12-02 12:58:53Z]] 16:53:09.010 [debug] QUERY OK source="sources" db=0.3ms queue=0.7ms idle=105.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:09.010 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:09.011 [debug] QUERY OK source="media_items" db=0.3ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [222] 16:53:09.011 [info] Kicking off download for media item #222 (WeE3YRGFsFk) 16:53:09.015 [debug] QUERY OK source="tasks" db=0.2ms idle=4.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [226, 222, ~U[2026-04-23 14:53:09Z], ~U[2026-04-23 14:53:09Z]] 16:53:09.015 [debug] Current batch of media processed. Will check again in 1000ms 16:53:10.015 [debug] Current batch of media processed. Will check again in 1000ms 16:53:11.016 [debug] Current batch of media processed. Will check again in 1000ms 16:53:12.017 [debug] Current batch of media processed. Will check again in 1000ms 16:53:12.671 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BE-p6965TmE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/3f/3d/3f3dec0e9b5a0caa50149895a518a1989faad73f26e27e96371b01ce7272f078.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:53:12.745 [debug] Running yt-dlp command for action: download_thumbnail 16:53:12.746 [debug] QUERY OK source="settings" db=0.2ms idle=1842.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:12.747 [debug] QUERY OK source="settings" db=0.1ms idle=1842.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:12.747 [debug] QUERY OK source="settings" db=0.1ms idle=1843.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:12.747 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BE-p6965TmE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/49/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/37/24/3724ceea94931d9a244d5d2cd71de37842e6fdac70047f25f620a52525d3589b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:53:13.019 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 42, "filename" => "/downloads/Jeff Su/2024-11-27 Productivity for Normal People #productivity/Productivity for Normal People #productivity [_1sYgJEbAiQ].mp4", "id" => "_1sYgJEbAiQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/_1sYgJEbAiQ", "playlist_index" => 35, "timestamp" => 1732711596, "title" => "Productivity for Normal People #productivity", "upload_date" => "20241127"} 16:53:13.019 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=862.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:13.020 [debug] QUERY OK source="sources" db=0.2ms idle=273.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:13.021 [debug] QUERY OK source="media_items" db=0.9ms idle=273.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-27 12:46:36Z], 1] 16:53:13.023 [debug] QUERY OK source="media_items" db=0.8ms idle=274.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Productivity for Normal People #productivity", "19fa8eaf-16c0-4ae6-9293-2d5db2ca10b2", false, "_1sYgJEbAiQ", 1, [], 42, false, "https://www.youtube.com/shorts/_1sYgJEbAiQ", 35, "/downloads/Jeff Su/2024-11-27 Productivity for Normal People #productivity/Productivity for Normal People #productivity [_1sYgJEbAiQ].mp4", false, true, 99, ~U[2024-11-27 12:46:36Z], ~U[2026-04-23 14:53:13Z], ~U[2026-04-23 14:53:13Z], "", "Productivity for Normal People #productivity", "_1sYgJEbAiQ", 1, 42, false, "https://www.youtube.com/shorts/_1sYgJEbAiQ", "/downloads/Jeff Su/2024-11-27 Productivity for Normal People #productivity/Productivity for Normal People #productivity [_1sYgJEbAiQ].mp4", true, ~U[2024-11-27 12:46:36Z]] 16:53:13.023 [debug] QUERY OK source="sources" db=0.4ms idle=119.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:13.024 [debug] QUERY OK source="media_profiles" db=0.4ms idle=4.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:13.027 [debug] QUERY OK source="media_items" db=2.3ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [223] 16:53:13.027 [info] Kicking off download for media item #223 (_1sYgJEbAiQ) 16:53:13.031 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=7.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [227, 223, ~U[2026-04-23 14:53:13Z], ~U[2026-04-23 14:53:13Z]] 16:53:13.031 [debug] Current batch of media processed. Will check again in 1000ms 16:53:14.032 [debug] Current batch of media processed. Will check again in 1000ms 16:53:15.032 [debug] Current batch of media processed. Will check again in 1000ms 16:53:16.033 [debug] Current batch of media processed. Will check again in 1000ms 16:53:17.035 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "Struggling to keep your colleagues attention while presenting? \n\nHere’s a simple way to make them more eye-catching, no design knowledge needed.", "duration" => 37, "filename" => "/downloads/Jeff Su/2024-11-19 Easy Design Tip for non-Creative Professionals/Easy Design Tip for non-Creative Professionals [U-zAeXr80J8].mp4", "id" => "U-zAeXr80J8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/U-zAeXr80J8", "playlist_index" => 36, "timestamp" => 1732021537, "title" => "Easy Design Tip for non-Creative Professionals", "upload_date" => "20241119"} 16:53:17.037 [debug] QUERY OK source="sources" db=1.8ms queue=0.2ms idle=870.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:17.039 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=130.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:17.042 [debug] QUERY OK source="media_items" db=2.8ms queue=0.1ms idle=131.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-19 13:05:37Z], 1] 16:53:17.045 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=135.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Struggling to keep your colleagues attention while presenting? \n\nHere’s a simple way to make them more eye-catching, no design knowledge needed.", "Easy Design Tip for non-Creative Professionals", "23abc4da-2e4b-473f-aa31-48522eae0a58", false, "U-zAeXr80J8", 1, [], 37, false, "https://www.youtube.com/shorts/U-zAeXr80J8", 36, "/downloads/Jeff Su/2024-11-19 Easy Design Tip for non-Creative Professionals/Easy Design Tip for non-Creative Professionals [U-zAeXr80J8].mp4", false, true, 99, ~U[2024-11-19 13:05:37Z], ~U[2026-04-23 14:53:17Z], ~U[2026-04-23 14:53:17Z], "Struggling to keep your colleagues attention while presenting? \n\nHere’s a simple way to make them more eye-catching, no design knowledge needed.", "Easy Design Tip for non-Creative Professionals", "U-zAeXr80J8", 1, 37, false, "https://www.youtube.com/shorts/U-zAeXr80J8", "/downloads/Jeff Su/2024-11-19 Easy Design Tip for non-Creative Professionals/Easy Design Tip for non-Creative Professionals [U-zAeXr80J8].mp4", true, ~U[2024-11-19 13:05:37Z]] 16:53:17.046 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=137.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:17.048 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.4ms idle=9.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:17.049 [debug] QUERY OK source="media_items" db=0.6ms idle=9.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 [224] 16:53:17.049 [info] Kicking off download for media item #224 (U-zAeXr80J8) 16:53:17.054 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=7.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [228, 224, ~U[2026-04-23 14:53:17Z], ~U[2026-04-23 14:53:17Z]] 16:53:17.054 [debug] Current batch of media processed. Will check again in 1000ms 16:53:18.055 [debug] Current batch of media processed. Will check again in 1000ms 16:53:18.301 [info] {"source":"oban","duration":958,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:53:19.056 [debug] Current batch of media processed. Will check again in 1000ms 16:53:19.158 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BE-p6965TmE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/49/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/37/24/3724ceea94931d9a244d5d2cd71de37842e6fdac70047f25f620a52525d3589b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:53:19.162 [debug] QUERY OK db=0.1ms idle=992.4ms begin [] 16:53:19.163 [debug] QUERY OK source="media_items" db=1.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:53:12Z], "/downloads/Jeff Su/2024-03-05 The Truth about Full-Time Jobs (when you have a side hustle)/The Truth about Full-Time Jobs (when you have a side hustle) [BE-p6965TmE].mp4", "/downloads/Jeff Su/2024-03-05 The Truth about Full-Time Jobs (when you have a side hustle)/The Truth about Full-Time Jobs (when you have a side hustle) [BE-p6965TmE].info.json", "/downloads/Jeff Su/2024-03-05 The Truth about Full-Time Jobs (when you have a side hustle)/The Truth about Full-Time Jobs (when you have a side hustle) [BE-p6965TmE].nfo", "/downloads/Jeff Su/2024-03-05 The Truth about Full-Time Jobs (when you have a side hustle)/The Truth about Full-Time Jobs (when you have a side hustle) [BE-p6965TmE]-thumb.jpg", ~U[2026-04-23 14:53:19Z], 49] 16:53:19.164 [debug] QUERY OK source="media_metadata" db=0.8ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/49/metadata.json.gz", "/config/metadata/media_items/49/thumbnail.jpg", 49, ~U[2026-04-23 14:53:19Z], ~U[2026-04-23 14:53:19Z]] 16:53:19.164 [debug] QUERY OK db=0.2ms commit [] 16:53:19.167 [debug] QUERY OK source="media_items" db=1.7ms idle=863.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [22071238, ~U[2026-04-23 14:53:19Z], 49] 16:53:19.167 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:53:19.168 [info] {"args":{"id":49},"id":53,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":35990275,"event":"job:stop","queue_time":714175875,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:53:19.175 [info] {"args":{"id":51},"id":55,"meta":{},"system_time":1776955999175105242,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:53:19.176 [debug] QUERY OK source="media_items" db=0.7ms idle=10.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" = ?) [51] 16:53:19.177 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:53:19.178 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=10.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:19.179 [debug] QUERY OK source="media_profiles" db=0.5ms idle=10.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:19.180 [debug] QUERY OK source="media_items" db=0.6ms 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 [51] 16:53:19.181 [debug] QUERY OK source="media_metadata" db=0.2ms idle=6.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [51] 16:53:19.182 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 16:53:19.183 [debug] QUERY OK source="settings" db=0.5ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:19.183 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:53:19.186 [debug] Running yt-dlp command for action: get_downloadable_status 16:53:19.187 [debug] QUERY OK source="settings" db=0.2ms idle=6.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:19.188 [debug] QUERY OK source="settings" db=0.4ms idle=6.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:19.188 [debug] QUERY OK source="settings" db=0.4ms idle=6.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:19.188 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y35EHDRNUeo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9e/cc/9eccac6ef66fc80ad844f53d5fac4d690177c5329241d91780eeea354d7079c5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:53:20.057 [debug] Current batch of media processed. Will check again in 1000ms 16:53:21.059 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "Ever had this scenario happen to you? \n\nYou sit down at your desk, ready to start your work day, and pull up your to-do list. The first task reads: \n\n“Work project” \n\nBut you can’t quite remember what the first step will be, where to find the information, or frankly what the work project deliverables even are?! \n\nThis happens all too often with to-do lists and can quite literally waste your time, which is the opposite of what we’re aiming for. \n\nI have good news - there’s a really simple fix. \n\nWhen you have a new task to do, make sure to make note of it with a simple action verb. Tell your future self what \n\nAnd this is not just a hack for work tasks, but for life stuff too. \n\nFor example, using an action verb would turn: \n\n“Present Mom” \n\ninto…\n\n“Pack present for Mom before HK offsite on Wednesday” \n\nYour future self will thank you. Make sure to follow for more instantly actionable tips 💡", "duration" => 38, "filename" => "/downloads/Jeff Su/2024-11-17 Golden Rule for Task Management #productivity/Golden Rule for Task Management #productivity [GrJA5lYGk_k].mp4", "id" => "GrJA5lYGk_k", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/GrJA5lYGk_k", "playlist_index" => 37, "timestamp" => 1731848426, "title" => "Golden Rule for Task Management #productivity", "upload_date" => "20241117"} 16:53:21.059 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=886.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:53:21.060 [debug] QUERY OK source="sources" db=0.2ms idle=152.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:21.061 [debug] QUERY OK source="media_items" db=0.8ms idle=152.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-17 13:00:26Z], 1] 16:53:21.063 [debug] QUERY OK source="media_items" db=1.2ms idle=154.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Ever had this scenario happen to you? \n\nYou sit down at your desk, ready to start your work day, and pull up your to-do list. The first task reads: \n\n“Work project” \n\nBut you can’t quite remember what the first step will be, where to find the information, or frankly what the work project deliverables even are?! \n\nThis happens all too often with to-do lists and can quite literally waste your time, which is the opposite of what we’re aiming for. \n\nI have good news - there’s a really simple fix. \n\nWhen you have a new task to do, make sure to make note of it with a simple action verb. Tell your future self what \n\nAnd this is not just a hack for work tasks, but for life stuff too. \n\nFor example, using an action verb would turn: \n\n“Present Mom” \n\ninto…\n\n“Pack present for Mom before HK offsite on Wednesday” \n\nYour future self will thank you. Make sure to follow for more instantly actionable tips 💡", "Golden Rule for Task Management #productivity", "20f2db78-165f-466f-92c5-49776e8828ea", false, "GrJA5lYGk_k", 1, [], 38, false, "https://www.youtube.com/shorts/GrJA5lYGk_k", 37, "/downloads/Jeff Su/2024-11-17 Golden Rule for Task Management #productivity/Golden Rule for Task Management #productivity [GrJA5lYGk_k].mp4", false, true, 99, ~U[2024-11-17 13:00:26Z], ~U[2026-04-23 14:53:21Z], ~U[2026-04-23 14:53:21Z], "Ever had this scenario happen to you? \n\nYou sit down at your desk, ready to start your work day, and pull up your to-do list. The first task reads: \n\n“Work project” \n\nBut you can’t quite remember what the first step will be, where to find the information, or frankly what the work project deliverables even are?! \n\nThis happens all too often with to-do lists and can quite literally waste your time, which is the opposite of what we’re aiming for. \n\nI have good news - there’s a really simple fix. \n\nWhen you have a new task to do, make sure to make note of it with a simple action verb. Tell your future self what \n\nAnd this is not just a hack for work tasks, but for life stuff too. \n\nFor example, using an action verb would turn: \n\n“Present Mom” \n\ninto…\n\n“Pack present for Mom before HK offsite on Wednesday” \n\nYour future self will thank you. Make sure to follow for more instantly actionable tips 💡", "Golden Rule for Task Management #productivity", "GrJA5lYGk_k", 1, 38, false, "https://www.youtube.com/shorts/GrJA5lYGk_k", "/downloads/Jeff Su/2024-11-17 Golden Rule for Task Management #productivity/Golden Rule for Task Management #productivity [GrJA5lYGk_k].mp4", true, ~U[2024-11-17 13:00:26Z]] 16:53:21.064 [debug] QUERY OK source="sources" db=0.2ms idle=155.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:21.064 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:21.065 [debug] QUERY OK source="media_items" db=0.3ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [225] 16:53:21.065 [info] Kicking off download for media item #225 (GrJA5lYGk_k) 16:53:21.068 [debug] QUERY OK source="tasks" db=0.2ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [229, 225, ~U[2026-04-23 14:53:21Z], ~U[2026-04-23 14:53:21Z]] 16:53:21.069 [debug] Current batch of media processed. Will check again in 1000ms 16:53:22.069 [debug] Current batch of media processed. Will check again in 1000ms 16:53:23.070 [debug] Current batch of media processed. Will check again in 1000ms 16:53:24.072 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 37, "filename" => "/downloads/Jeff Su/2024-10-09 Search #googledrive like a pro!/Search #googledrive like a pro! [Z6vurIsNnRs].mp4", "id" => "Z6vurIsNnRs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/Z6vurIsNnRs", "playlist_index" => 38, "timestamp" => 1728481798, "title" => "Search #googledrive like a pro!", "upload_date" => "20241009"} 16:53:24.072 [debug] QUERY OK source="sources" db=0.3ms idle=1164.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:24.073 [debug] QUERY OK source="sources" db=0.5ms idle=1165.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:24.074 [debug] QUERY OK source="media_items" db=0.9ms idle=1165.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-09 13:49:58Z], 1] 16:53:24.076 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=1167.3ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Search #googledrive like a pro!", "4feba767-60b4-484f-b996-c8407255197b", false, "Z6vurIsNnRs", 1, [], 37, false, "https://www.youtube.com/shorts/Z6vurIsNnRs", 38, "/downloads/Jeff Su/2024-10-09 Search #googledrive like a pro!/Search #googledrive like a pro! [Z6vurIsNnRs].mp4", false, true, 99, ~U[2024-10-09 13:49:58Z], ~U[2026-04-23 14:53:24Z], ~U[2026-04-23 14:53:24Z], "", "Search #googledrive like a pro!", "Z6vurIsNnRs", 1, 37, false, "https://www.youtube.com/shorts/Z6vurIsNnRs", "/downloads/Jeff Su/2024-10-09 Search #googledrive like a pro!/Search #googledrive like a pro! [Z6vurIsNnRs].mp4", true, ~U[2024-10-09 13:49:58Z]] 16:53:24.077 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=896.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:24.078 [debug] QUERY OK source="media_profiles" db=0.6ms queue=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] 16:53:24.079 [debug] QUERY OK source="media_items" db=0.3ms idle=5.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [226] 16:53:24.079 [info] Kicking off download for media item #226 (Z6vurIsNnRs) 16:53:24.090 [debug] QUERY OK source="tasks" db=0.5ms queue=0.6ms idle=11.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [230, 226, ~U[2026-04-23 14:53:24Z], ~U[2026-04-23 14:53:24Z]] 16:53:24.091 [debug] Current batch of media processed. Will check again in 1000ms 16:53:25.089 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cYbcgtK0v_Q --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/08/de/08deff390e03ad51abb985f7acfd5920ec9f02fbaa035c0130d0f74e5ad7aa12.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:53:25.091 [debug] Current batch of media processed. Will check again in 1000ms 16:53:25.129 [debug] Running yt-dlp command for action: download_thumbnail 16:53:25.131 [debug] QUERY OK source="settings" db=0.2ms idle=1051.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:25.133 [debug] QUERY OK source="settings" db=1.5ms idle=1043.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:25.133 [debug] QUERY OK source="settings" db=0.5ms idle=1043.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:25.134 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cYbcgtK0v_Q --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/50/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/82/4a/824afed70e966091534099f74c4f4820312e1b9da1c53a47f38fe01ef81ef197.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:53:25.440 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y35EHDRNUeo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9e/cc/9eccac6ef66fc80ad844f53d5fac4d690177c5329241d91780eeea354d7079c5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:53:25.440 [debug] Running yt-dlp command for action: download 16:53:25.441 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=1258.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:25.442 [debug] QUERY OK source="settings" db=0.3ms idle=310.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:25.442 [debug] QUERY OK source="settings" db=0.4ms 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 [] 16:53:25.443 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y35EHDRNUeo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/95/71/95718c2486a80202940057d96c6c883be3884a9eabbb74788aa01854c5484ed0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:53:26.092 [debug] Current batch of media processed. Will check again in 1000ms 16:53:27.093 [debug] Current batch of media processed. Will check again in 1000ms 16:53:28.094 [debug] Current batch of media processed. Will check again in 1000ms 16:53:29.096 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 27, "filename" => "/downloads/Jeff Su/2024-10-04 Windows users can use CTRL 😇/Windows users can use CTRL 😇 [vSC7JzXUecA].mp4", "id" => "vSC7JzXUecA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/vSC7JzXUecA", "playlist_index" => 39, "timestamp" => 1728051918, "title" => "Windows users can use CTRL 😇", "upload_date" => "20241004"} 16:53:29.099 [debug] QUERY OK source="sources" db=2.5ms queue=0.1ms idle=903.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:29.100 [debug] QUERY OK source="sources" db=0.8ms idle=191.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:29.102 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=192.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-04 14:25:18Z], 1] 16:53:29.105 [debug] QUERY OK source="media_items" db=1.2ms idle=195.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Windows users can use CTRL 😇", "628a0d73-c302-42e2-998e-63efdf57989c", false, "vSC7JzXUecA", 1, [], 27, false, "https://www.youtube.com/shorts/vSC7JzXUecA", 39, "/downloads/Jeff Su/2024-10-04 Windows users can use CTRL 😇/Windows users can use CTRL 😇 [vSC7JzXUecA].mp4", false, true, 99, ~U[2024-10-04 14:25:18Z], ~U[2026-04-23 14:53:29Z], ~U[2026-04-23 14:53:29Z], "", "Windows users can use CTRL 😇", "vSC7JzXUecA", 1, 27, false, "https://www.youtube.com/shorts/vSC7JzXUecA", "/downloads/Jeff Su/2024-10-04 Windows users can use CTRL 😇/Windows users can use CTRL 😇 [vSC7JzXUecA].mp4", true, ~U[2024-10-04 14:25:18Z]] 16:53:29.107 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=197.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:29.108 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=8.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:29.110 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=8.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [227] 16:53:29.110 [info] Kicking off download for media item #227 (vSC7JzXUecA) 16:53:29.116 [debug] QUERY OK source="tasks" db=0.4ms idle=8.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [231, 227, ~U[2026-04-23 14:53:29Z], ~U[2026-04-23 14:53:29Z]] 16:53:29.116 [debug] Current batch of media processed. Will check again in 1000ms 16:53:30.116 [debug] Current batch of media processed. Will check again in 1000ms 16:53:31.117 [debug] Current batch of media processed. Will check again in 1000ms 16:53:31.327 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cYbcgtK0v_Q --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/50/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/82/4a/824afed70e966091534099f74c4f4820312e1b9da1c53a47f38fe01ef81ef197.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:53:31.328 [debug] QUERY OK db=0.1ms idle=420.2ms begin [] 16:53:31.329 [debug] QUERY OK source="media_items" db=0.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:53:25Z], "/downloads/Jeff Su/2024-02-20 How to Get Started with Notion (without losing your mind)/How to Get Started with Notion (without losing your mind) [cYbcgtK0v_Q].mp4", "/downloads/Jeff Su/2024-02-20 How to Get Started with Notion (without losing your mind)/How to Get Started with Notion (without losing your mind) [cYbcgtK0v_Q].info.json", "/downloads/Jeff Su/2024-02-20 How to Get Started with Notion (without losing your mind)/How to Get Started with Notion (without losing your mind) [cYbcgtK0v_Q].nfo", "/downloads/Jeff Su/2024-02-20 How to Get Started with Notion (without losing your mind)/How to Get Started with Notion (without losing your mind) [cYbcgtK0v_Q]-thumb.jpg", ~U[2026-04-23 14:53:31Z], 50] 16:53:31.330 [debug] QUERY OK source="media_metadata" db=0.7ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/50/metadata.json.gz", "/config/metadata/media_items/50/thumbnail.jpg", 50, ~U[2026-04-23 14:53:31Z], ~U[2026-04-23 14:53:31Z]] 16:53:31.331 [debug] QUERY OK db=0.2ms commit [] 16:53:31.333 [debug] QUERY OK source="media_items" db=1.4ms queue=0.2ms idle=424.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [39924105, ~U[2026-04-23 14:53:31Z], 50] 16:53:31.334 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:53:31.334 [info] {"args":{"id":50},"id":54,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":44203232,"event":"job:stop","queue_time":714126863,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:53:31.342 [info] {"args":{"id":52},"id":56,"meta":{},"system_time":1776956011341915843,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:53:31.342 [debug] QUERY OK source="media_items" db=0.5ms idle=139.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" = ?) [52] 16:53:31.343 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:53:31.344 [debug] QUERY OK source="sources" db=0.9ms idle=12.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:31.345 [debug] QUERY OK source="media_profiles" db=0.5ms idle=10.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:31.346 [debug] QUERY OK source="media_items" db=0.3ms queue=0.3ms idle=10.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 [52] 16:53:31.347 [debug] QUERY OK source="media_metadata" db=0.3ms idle=5.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [52] 16:53:31.347 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:31.349 [debug] QUERY OK source="settings" db=0.4ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:31.349 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:53:31.350 [debug] Running yt-dlp command for action: get_downloadable_status 16:53:31.351 [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 [] 16:53:31.352 [debug] QUERY OK source="settings" db=0.7ms 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 [] 16:53:31.352 [debug] QUERY OK source="settings" db=0.5ms 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 [] 16:53:31.353 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cTYRwJSOP8U --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2c/a6/2ca6e81964f4db9f49b94a01e16d51f886618640ae0c680fd4a990a5217716ec.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:53:32.118 [debug] Current batch of media processed. Will check again in 1000ms 16:53:33.120 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 20, "filename" => "/downloads/Jeff Su/2024-09-29 Formatting tip for #googleslides/Formatting tip for #googleslides [mcTlcUVvOGk].mp4", "id" => "mcTlcUVvOGk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/mcTlcUVvOGk", "playlist_index" => 40, "timestamp" => 1727614419, "title" => "Formatting tip for #googleslides", "upload_date" => "20240929"} 16:53:33.120 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=916.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:33.121 [debug] QUERY OK source="sources" db=0.2ms idle=213.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:33.122 [debug] QUERY OK source="media_items" db=1.0ms idle=213.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-29 12:53:39Z], 1] 16:53:33.124 [debug] QUERY OK source="media_items" db=0.8ms idle=215.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Formatting tip for #googleslides", "522b0cda-04fa-4827-a3a5-a80eab119ea3", false, "mcTlcUVvOGk", 1, [], 20, false, "https://www.youtube.com/shorts/mcTlcUVvOGk", 40, "/downloads/Jeff Su/2024-09-29 Formatting tip for #googleslides/Formatting tip for #googleslides [mcTlcUVvOGk].mp4", false, true, 99, ~U[2024-09-29 12:53:39Z], ~U[2026-04-23 14:53:33Z], ~U[2026-04-23 14:53:33Z], "", "Formatting tip for #googleslides", "mcTlcUVvOGk", 1, 20, false, "https://www.youtube.com/shorts/mcTlcUVvOGk", "/downloads/Jeff Su/2024-09-29 Formatting tip for #googleslides/Formatting tip for #googleslides [mcTlcUVvOGk].mp4", true, ~U[2024-09-29 12:53:39Z]] 16:53:33.124 [debug] QUERY OK source="sources" db=0.2ms idle=216.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:33.125 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:33.125 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [228] 16:53:33.126 [info] Kicking off download for media item #228 (mcTlcUVvOGk) 16:53:33.130 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=4.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [232, 228, ~U[2026-04-23 14:53:33Z], ~U[2026-04-23 14:53:33Z]] 16:53:33.130 [debug] Current batch of media processed. Will check again in 1000ms 16:53:34.130 [debug] Current batch of media processed. Will check again in 1000ms 16:53:35.134 [debug] Current batch of media processed. Will check again in 1000ms 16:53:36.135 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 56, "filename" => "/downloads/Jeff Su/2024-09-10 Crazy #Gmail tip/Crazy #Gmail tip [3niwhXYYTK0].mp4", "id" => "3niwhXYYTK0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/3niwhXYYTK0", "playlist_index" => 41, "timestamp" => 1725972521, "title" => "Crazy #Gmail tip", "upload_date" => "20240910"} 16:53:36.136 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1227.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:36.136 [debug] QUERY OK source="sources" db=0.3ms idle=1228.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:36.139 [debug] QUERY OK source="media_items" db=2.5ms idle=1229.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-10 12:48:41Z], 1] 16:53:36.144 [debug] QUERY OK source="media_items" db=3.7ms queue=0.1ms idle=1232.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Crazy #Gmail tip", "6010c955-b0ac-4373-9a5d-367051d8c567", false, "3niwhXYYTK0", 1, [], 56, false, "https://www.youtube.com/shorts/3niwhXYYTK0", 41, "/downloads/Jeff Su/2024-09-10 Crazy #Gmail tip/Crazy #Gmail tip [3niwhXYYTK0].mp4", false, true, 99, ~U[2024-09-10 12:48:41Z], ~U[2026-04-23 14:53:36Z], ~U[2026-04-23 14:53:36Z], "", "Crazy #Gmail tip", "3niwhXYYTK0", 1, 56, false, "https://www.youtube.com/shorts/3niwhXYYTK0", "/downloads/Jeff Su/2024-09-10 Crazy #Gmail tip/Crazy #Gmail tip [3niwhXYYTK0].mp4", true, ~U[2024-09-10 12:48:41Z]] 16:53:36.145 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=933.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:36.145 [debug] QUERY OK source="media_profiles" db=0.5ms idle=9.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:36.146 [debug] QUERY OK source="media_items" db=0.4ms idle=9.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [229] 16:53:36.146 [info] Kicking off download for media item #229 (3niwhXYYTK0) 16:53:36.151 [debug] QUERY OK source="tasks" db=0.4ms idle=5.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [233, 229, ~U[2026-04-23 14:53:36Z], ~U[2026-04-23 14:53:36Z]] 16:53:36.151 [debug] Current batch of media processed. Will check again in 1000ms 16:53:37.151 [debug] Current batch of media processed. Will check again in 1000ms 16:53:38.122 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cTYRwJSOP8U --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2c/a6/2ca6e81964f4db9f49b94a01e16d51f886618640ae0c680fd4a990a5217716ec.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:53:38.122 [debug] Running yt-dlp command for action: download 16:53:38.125 [debug] QUERY OK source="settings" db=1.9ms queue=0.1ms idle=908.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:38.126 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=217.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:38.126 [debug] QUERY OK source="settings" db=0.4ms idle=218.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:38.127 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cTYRwJSOP8U --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/6a/9d/6a9dbb09f8936c7a766ef0c5a86b2ea533ac9ebf851560ee9edd2a413a6d64fd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:53:38.152 [debug] Current batch of media processed. Will check again in 1000ms 16:53:39.153 [debug] Current batch of media processed. Will check again in 1000ms 16:53:40.155 [debug] Current batch of media processed. Will check again in 1000ms 16:53:41.156 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 30, "filename" => "/downloads/Jeff Su/2024-08-29 3 Keyboard Shortcuts for #googleworkspace/3 Keyboard Shortcuts for #googleworkspace [EX0tgkZfcxs].mp4", "id" => "EX0tgkZfcxs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/EX0tgkZfcxs", "playlist_index" => 42, "timestamp" => 1724929363, "title" => "3 Keyboard Shortcuts for #googleworkspace", "upload_date" => "20240829"} 16:53:41.156 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1248.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:41.158 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1249.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:41.159 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=1250.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-29 11:02:43Z], 1] 16:53:41.161 [debug] QUERY OK source="media_items" db=0.8ms idle=1252.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["3 Keyboard Shortcuts for #googleworkspace", "1b61cfd5-2766-49bd-b1a1-073a12602c5b", false, "EX0tgkZfcxs", 1, [], 30, false, "https://www.youtube.com/shorts/EX0tgkZfcxs", 42, "/downloads/Jeff Su/2024-08-29 3 Keyboard Shortcuts for #googleworkspace/3 Keyboard Shortcuts for #googleworkspace [EX0tgkZfcxs].mp4", false, true, 99, ~U[2024-08-29 11:02:43Z], ~U[2026-04-23 14:53:41Z], ~U[2026-04-23 14:53:41Z], "", "3 Keyboard Shortcuts for #googleworkspace", "EX0tgkZfcxs", 1, 30, false, "https://www.youtube.com/shorts/EX0tgkZfcxs", "/downloads/Jeff Su/2024-08-29 3 Keyboard Shortcuts for #googleworkspace/3 Keyboard Shortcuts for #googleworkspace [EX0tgkZfcxs].mp4", true, ~U[2024-08-29 11:02:43Z]] 16:53:41.162 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=940.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:41.163 [debug] QUERY OK source="media_profiles" db=0.5ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:41.164 [debug] QUERY OK source="media_items" db=0.5ms 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 [230] 16:53:41.164 [info] Kicking off download for media item #230 (EX0tgkZfcxs) 16:53:41.169 [debug] QUERY OK source="tasks" db=0.3ms idle=5.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [234, 230, ~U[2026-04-23 14:53:41Z], ~U[2026-04-23 14:53:41Z]] 16:53:41.169 [debug] Current batch of media processed. Will check again in 1000ms 16:53:42.169 [debug] Current batch of media processed. Will check again in 1000ms 16:53:43.170 [debug] Current batch of media processed. Will check again in 1000ms 16:53:43.847 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y35EHDRNUeo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/95/71/95718c2486a80202940057d96c6c883be3884a9eabbb74788aa01854c5484ed0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:53:43.900 [debug] Running yt-dlp command for action: download_thumbnail 16:53:43.902 [debug] QUERY OK source="settings" db=0.2ms idle=994.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:43.903 [debug] QUERY OK source="settings" db=0.6ms idle=995.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:43.907 [debug] QUERY OK source="settings" db=3.0ms idle=995.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:43.907 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y35EHDRNUeo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/51/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/32/cb/32cb122d996f94f6175da988b92fafb56f7416937647a26329a530e2f37eec3e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:53:44.171 [debug] Current batch of media processed. Will check again in 1000ms 16:53:45.173 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 51, "filename" => "/downloads/Jeff Su/2024-08-23 #productivity tip for #googleslides/#productivity tip for #googleslides [hdMrkWAX0LQ].mp4", "id" => "hdMrkWAX0LQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/hdMrkWAX0LQ", "playlist_index" => 43, "timestamp" => 1724418594, "title" => "#productivity tip for #googleslides", "upload_date" => "20240823"} 16:53:45.174 [debug] QUERY OK source="sources" db=0.3ms idle=944.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:45.174 [debug] QUERY OK source="sources" db=0.2ms idle=265.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:45.176 [debug] QUERY OK source="media_items" db=0.9ms idle=265.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-23 13:09:54Z], 1] 16:53:45.177 [debug] QUERY OK source="media_items" db=0.9ms idle=267.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#productivity tip for #googleslides", "12c6c0cd-aea9-42c5-854b-d2589cebf6a9", false, "hdMrkWAX0LQ", 1, [], 51, false, "https://www.youtube.com/shorts/hdMrkWAX0LQ", 43, "/downloads/Jeff Su/2024-08-23 #productivity tip for #googleslides/#productivity tip for #googleslides [hdMrkWAX0LQ].mp4", false, true, 99, ~U[2024-08-23 13:09:54Z], ~U[2026-04-23 14:53:45Z], ~U[2026-04-23 14:53:45Z], "", "#productivity tip for #googleslides", "hdMrkWAX0LQ", 1, 51, false, "https://www.youtube.com/shorts/hdMrkWAX0LQ", "/downloads/Jeff Su/2024-08-23 #productivity tip for #googleslides/#productivity tip for #googleslides [hdMrkWAX0LQ].mp4", true, ~U[2024-08-23 13:09:54Z]] 16:53:45.178 [debug] QUERY OK source="sources" db=0.3ms idle=268.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:45.179 [debug] QUERY OK source="media_profiles" db=0.5ms 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] 16:53:45.180 [debug] QUERY OK source="media_items" db=0.3ms 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 [231] 16:53:45.180 [info] Kicking off download for media item #231 (hdMrkWAX0LQ) 16:53:45.190 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=11.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [235, 231, ~U[2026-04-23 14:53:45Z], ~U[2026-04-23 14:53:45Z]] 16:53:45.190 [debug] Current batch of media processed. Will check again in 1000ms 16:53:46.192 [debug] Current batch of media processed. Will check again in 1000ms 16:53:47.192 [debug] Current batch of media processed. Will check again in 1000ms 16:53:48.193 [debug] Current batch of media processed. Will check again in 1000ms 16:53:48.303 [info] {"source":"oban","duration":1044,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:53:49.195 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 37, "filename" => "/downloads/Jeff Su/2024-08-15 Game-Changing #gmail tip for #productivity/Game-Changing #gmail tip for #productivity [lmNEzIUAHds].mp4", "id" => "lmNEzIUAHds", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/lmNEzIUAHds", "playlist_index" => 44, "timestamp" => 1723726757, "title" => "Game-Changing #gmail tip for #productivity", "upload_date" => "20240815"} 16:53:49.196 [debug] QUERY OK source="sources" db=0.6ms idle=951.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:49.197 [debug] QUERY OK source="sources" db=0.4ms idle=892.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:49.198 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=288.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-15 12:59:17Z], 1] 16:53:49.200 [debug] QUERY OK source="media_items" db=1.1ms idle=290.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Game-Changing #gmail tip for #productivity", "6a3045bf-05df-4254-a20c-eb949be64b95", false, "lmNEzIUAHds", 1, [], 37, false, "https://www.youtube.com/shorts/lmNEzIUAHds", 44, "/downloads/Jeff Su/2024-08-15 Game-Changing #gmail tip for #productivity/Game-Changing #gmail tip for #productivity [lmNEzIUAHds].mp4", false, true, 99, ~U[2024-08-15 12:59:17Z], ~U[2026-04-23 14:53:49Z], ~U[2026-04-23 14:53:49Z], "", "Game-Changing #gmail tip for #productivity", "lmNEzIUAHds", 1, 37, false, "https://www.youtube.com/shorts/lmNEzIUAHds", "/downloads/Jeff Su/2024-08-15 Game-Changing #gmail tip for #productivity/Game-Changing #gmail tip for #productivity [lmNEzIUAHds].mp4", true, ~U[2024-08-15 12:59:17Z]] 16:53:49.201 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=291.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:49.202 [debug] QUERY OK source="media_profiles" db=0.4ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:49.203 [debug] QUERY OK source="media_items" db=0.4ms 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 [232] 16:53:49.203 [info] Kicking off download for media item #232 (lmNEzIUAHds) 16:53:49.210 [debug] QUERY OK source="tasks" db=0.4ms idle=8.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [236, 232, ~U[2026-04-23 14:53:49Z], ~U[2026-04-23 14:53:49Z]] 16:53:49.210 [debug] Current batch of media processed. Will check again in 1000ms 16:53:50.211 [debug] Current batch of media processed. Will check again in 1000ms 16:53:50.465 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y35EHDRNUeo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/51/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/32/cb/32cb122d996f94f6175da988b92fafb56f7416937647a26329a530e2f37eec3e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:53:50.468 [debug] QUERY OK db=0.0ms idle=1259.8ms begin [] 16:53:50.471 [debug] QUERY OK source="media_items" db=2.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:53:43Z], "/downloads/Jeff Su/2024-02-06 You’re using ChatGPT wrong/You’re using ChatGPT wrong [Y35EHDRNUeo].mp4", "/downloads/Jeff Su/2024-02-06 You’re using ChatGPT wrong/You’re using ChatGPT wrong [Y35EHDRNUeo].info.json", "/downloads/Jeff Su/2024-02-06 You’re using ChatGPT wrong/You’re using ChatGPT wrong [Y35EHDRNUeo].nfo", "/downloads/Jeff Su/2024-02-06 You’re using ChatGPT wrong/You’re using ChatGPT wrong [Y35EHDRNUeo]-thumb.jpg", ~U[2026-04-23 14:53:50Z], 51] 16:53:50.472 [debug] QUERY OK source="media_metadata" db=0.9ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/51/metadata.json.gz", "/config/metadata/media_items/51/thumbnail.jpg", 51, ~U[2026-04-23 14:53:50Z], ~U[2026-04-23 14:53:50Z]] 16:53:50.472 [debug] QUERY OK db=0.3ms commit [] 16:53:50.476 [debug] QUERY OK source="media_items" db=3.1ms idle=1263.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [27858716, ~U[2026-04-23 14:53:50Z], 51] 16:53:50.477 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:53:50.477 [info] {"args":{"id":51},"id":55,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":31301954,"event":"job:stop","queue_time":741173803,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:53:50.485 [info] {"args":{"id":53},"id":57,"meta":{},"system_time":1776956030485016543,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:53:50.485 [debug] QUERY OK source="media_items" db=0.3ms idle=236.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" = ?) [53] 16:53:50.486 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:53:50.486 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [1] 16:53:50.487 [debug] QUERY OK source="media_profiles" db=0.2ms idle=10.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:50.487 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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 [53] 16:53:50.490 [debug] QUERY OK source="media_metadata" db=0.2ms idle=5.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [53] 16:53:50.490 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:50.492 [debug] QUERY OK source="settings" db=0.8ms 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 [] 16:53:50.493 [debug] QUERY OK source="settings" db=0.9ms idle=5.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:50.494 [debug] Running yt-dlp command for action: get_downloadable_status 16:53:50.496 [debug] QUERY OK source="settings" db=0.3ms idle=8.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:50.496 [debug] QUERY OK source="settings" db=0.1ms idle=6.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:50.497 [debug] QUERY OK source="settings" db=0.2ms idle=6.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:50.497 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=QrmDmQ7ZivM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2a/24/2a248b6b6384e5d539fe1897a0121935bd5919293a81f078ce6a30a0a4258610.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:53:51.212 [debug] Current batch of media processed. Will check again in 1000ms 16:53:52.213 [debug] Current batch of media processed. Will check again in 1000ms 16:53:53.215 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 52, "filename" => "/downloads/Jeff Su/2024-08-08 The #1 Prompting Tip for Productivity #chatgpt #googlegemini/The #1 Prompting Tip for Productivity #chatgpt #googlegemini [UqpHjpBDths].mp4", "id" => "UqpHjpBDths", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/UqpHjpBDths", "playlist_index" => 45, "timestamp" => 1723122470, "title" => "The #1 Prompting Tip for Productivity #chatgpt #googlegemini", "upload_date" => "20240808"} 16:53:53.215 [debug] QUERY OK source="sources" db=0.3ms idle=1306.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:53.216 [debug] QUERY OK source="sources" db=0.5ms idle=1307.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:53.218 [debug] QUERY OK source="media_items" db=1.0ms idle=1308.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-08 13:07:50Z], 1] 16:53:53.219 [debug] QUERY OK source="media_items" db=0.8ms idle=1309.7ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The #1 Prompting Tip for Productivity #chatgpt #googlegemini", "b7cc29da-2dd2-46c6-9cb2-d92d6f623cee", false, "UqpHjpBDths", 1, [], 52, false, "https://www.youtube.com/shorts/UqpHjpBDths", 45, "/downloads/Jeff Su/2024-08-08 The #1 Prompting Tip for Productivity #chatgpt #googlegemini/The #1 Prompting Tip for Productivity #chatgpt #googlegemini [UqpHjpBDths].mp4", false, true, 99, ~U[2024-08-08 13:07:50Z], ~U[2026-04-23 14:53:53Z], ~U[2026-04-23 14:53:53Z], "", "The #1 Prompting Tip for Productivity #chatgpt #googlegemini", "UqpHjpBDths", 1, 52, false, "https://www.youtube.com/shorts/UqpHjpBDths", "/downloads/Jeff Su/2024-08-08 The #1 Prompting Tip for Productivity #chatgpt #googlegemini/The #1 Prompting Tip for Productivity #chatgpt #googlegemini [UqpHjpBDths].mp4", true, ~U[2024-08-08 13:07:50Z]] 16:53:53.220 [debug] QUERY OK source="sources" db=0.2ms idle=967.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:53.221 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=4.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:53.221 [debug] QUERY OK source="media_items" db=0.3ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [233] 16:53:53.221 [info] Kicking off download for media item #233 (UqpHjpBDths) 16:53:53.225 [debug] QUERY OK source="tasks" db=0.3ms idle=4.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [237, 233, ~U[2026-04-23 14:53:53Z], ~U[2026-04-23 14:53:53Z]] 16:53:53.225 [debug] Current batch of media processed. Will check again in 1000ms 16:53:54.225 [debug] Current batch of media processed. Will check again in 1000ms 16:53:55.226 [debug] Current batch of media processed. Will check again in 1000ms 16:53:56.227 [debug] Current batch of media processed. Will check again in 1000ms 16:53:56.239 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=QrmDmQ7ZivM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2a/24/2a248b6b6384e5d539fe1897a0121935bd5919293a81f078ce6a30a0a4258610.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:53:56.239 [debug] Running yt-dlp command for action: download 16:53:56.240 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=1330.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:56.243 [debug] QUERY OK source="settings" db=2.8ms idle=1331.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:56.246 [debug] QUERY OK source="settings" db=2.3ms idle=1334.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:56.246 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=QrmDmQ7ZivM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/b8/85/b885b26c107b056f54fc9099023063d49b9bdb8912d05005608daca3e16f4c4c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:53:57.214 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cTYRwJSOP8U --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/6a/9d/6a9dbb09f8936c7a766ef0c5a86b2ea533ac9ebf851560ee9edd2a413a6d64fd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:53:57.229 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "duration" => 50, "filename" => "/downloads/Jeff Su/2024-07-23 8 Lessons from 8 Years at @Google (Part 2) #careertips/8 Lessons from 8 Years at @Google (Part 2) #careertips [1xvWNhZ29i4].mp4", "id" => "1xvWNhZ29i4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/1xvWNhZ29i4", "playlist_index" => 46, "timestamp" => 1721741203, "title" => "8 Lessons from 8 Years at @Google (Part 2) #careertips", "upload_date" => "20240723"} 16:53:57.233 [debug] QUERY OK source="sources" db=3.2ms queue=0.1ms idle=989.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:53:57.234 [debug] QUERY OK source="sources" db=0.3ms idle=990.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:53:57.235 [debug] QUERY OK source="media_items" db=0.9ms idle=988.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-23 13:26:43Z], 1] 16:53:57.241 [debug] QUERY OK source="media_items" db=3.9ms idle=976.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "8 Lessons from 8 Years at @Google (Part 2) #careertips", "8c9302f6-887d-4697-bb5f-1d84a806a70d", false, "1xvWNhZ29i4", 1, [], 50, false, "https://www.youtube.com/shorts/1xvWNhZ29i4", 46, "/downloads/Jeff Su/2024-07-23 8 Lessons from 8 Years at @Google (Part 2) #careertips/8 Lessons from 8 Years at @Google (Part 2) #careertips [1xvWNhZ29i4].mp4", false, true, 99, ~U[2024-07-23 13:26:43Z], ~U[2026-04-23 14:53:57Z], ~U[2026-04-23 14:53:57Z], "XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "8 Lessons from 8 Years at @Google (Part 2) #careertips", "1xvWNhZ29i4", 1, 50, false, "https://www.youtube.com/shorts/1xvWNhZ29i4", "/downloads/Jeff Su/2024-07-23 8 Lessons from 8 Years at @Google (Part 2) #careertips/8 Lessons from 8 Years at @Google (Part 2) #careertips [1xvWNhZ29i4].mp4", true, ~U[2024-07-23 13:26:43Z]] 16:53:57.241 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=332.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:53:57.245 [debug] QUERY OK source="media_profiles" db=2.3ms idle=9.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:53:57.246 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=11.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [234] 16:53:57.246 [info] Kicking off download for media item #234 (1xvWNhZ29i4) 16:53:57.253 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=11.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [238, 234, ~U[2026-04-23 14:53:57Z], ~U[2026-04-23 14:53:57Z]] 16:53:57.253 [debug] Current batch of media processed. Will check again in 1000ms 16:53:57.260 [debug] Running yt-dlp command for action: download_thumbnail 16:53:57.261 [debug] QUERY OK source="settings" db=0.4ms 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 [] 16:53:57.265 [debug] QUERY OK source="settings" db=3.8ms 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 [] 16:53:57.266 [debug] QUERY OK source="settings" db=0.8ms idle=12.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:53:57.266 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cTYRwJSOP8U --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/52/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/ee/d0/eed05c3aa965300b27668b481ac9ae72659ae767eba8cb834fd28215fc5f8e69.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:53:58.254 [debug] Current batch of media processed. Will check again in 1000ms 16:53:59.255 [debug] Current batch of media processed. Will check again in 1000ms 16:54:00.223 [info] {"source":"oban","duration":876,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:54:00.261 [debug] Current batch of media processed. Will check again in 1000ms 16:54:01.262 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 60, "filename" => "/downloads/Jeff Su/2024-07-10 8 Lessons from 8 Years at @google (Part 1)/8 Lessons from 8 Years at @google (Part 1) [xTUfgULVgAA].mp4", "id" => "xTUfgULVgAA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/xTUfgULVgAA", "playlist_index" => 47, "timestamp" => 1720618703, "title" => "8 Lessons from 8 Years at @google (Part 1)", "upload_date" => "20240710"} 16:54:01.262 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1038.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:01.263 [debug] QUERY OK source="sources" db=0.3ms idle=990.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:01.265 [debug] QUERY OK source="media_items" db=0.9ms idle=354.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-10 13:38:23Z], 1] 16:54:01.268 [debug] QUERY OK source="media_items" db=2.2ms idle=356.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["8 Lessons from 8 Years at @google (Part 1)", "11451aca-5f46-49b2-9cff-c7ec983f5d77", false, "xTUfgULVgAA", 1, [], 60, false, "https://www.youtube.com/shorts/xTUfgULVgAA", 47, "/downloads/Jeff Su/2024-07-10 8 Lessons from 8 Years at @google (Part 1)/8 Lessons from 8 Years at @google (Part 1) [xTUfgULVgAA].mp4", false, true, 99, ~U[2024-07-10 13:38:23Z], ~U[2026-04-23 14:54:01Z], ~U[2026-04-23 14:54:01Z], "", "8 Lessons from 8 Years at @google (Part 1)", "xTUfgULVgAA", 1, 60, false, "https://www.youtube.com/shorts/xTUfgULVgAA", "/downloads/Jeff Su/2024-07-10 8 Lessons from 8 Years at @google (Part 1)/8 Lessons from 8 Years at @google (Part 1) [xTUfgULVgAA].mp4", true, ~U[2024-07-10 13:38:23Z]] 16:54:01.268 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=359.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:01.269 [debug] QUERY OK source="media_profiles" db=0.5ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:01.273 [debug] QUERY OK source="media_items" db=1.7ms idle=7.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [235] 16:54:01.273 [info] Kicking off download for media item #235 (xTUfgULVgAA) 16:54:01.279 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=9.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [239, 235, ~U[2026-04-23 14:54:01Z], ~U[2026-04-23 14:54:01Z]] 16:54:01.279 [debug] Current batch of media processed. Will check again in 1000ms 16:54:02.280 [debug] Current batch of media processed. Will check again in 1000ms 16:54:03.282 [debug] Current batch of media processed. Will check again in 1000ms 16:54:03.406 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cTYRwJSOP8U --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/52/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/ee/d0/eed05c3aa965300b27668b481ac9ae72659ae767eba8cb834fd28215fc5f8e69.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:54:03.406 [debug] QUERY OK db=0.1ms idle=497.4ms begin [] 16:54:03.408 [debug] QUERY OK source="media_items" db=1.1ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:53:57Z], "/downloads/Jeff Su/2024-01-23 The CORRECT way to use Google Gemini/The CORRECT way to use Google Gemini [cTYRwJSOP8U].mp4", "/downloads/Jeff Su/2024-01-23 The CORRECT way to use Google Gemini/The CORRECT way to use Google Gemini [cTYRwJSOP8U].info.json", "/downloads/Jeff Su/2024-01-23 The CORRECT way to use Google Gemini/The CORRECT way to use Google Gemini [cTYRwJSOP8U].nfo", "/downloads/Jeff Su/2024-01-23 The CORRECT way to use Google Gemini/The CORRECT way to use Google Gemini [cTYRwJSOP8U]-thumb.jpg", ~U[2026-04-23 14:54:03Z], 52] 16:54:03.409 [debug] QUERY OK source="media_metadata" db=1.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/52/metadata.json.gz", "/config/metadata/media_items/52/thumbnail.jpg", 52, ~U[2026-04-23 14:54:03Z], ~U[2026-04-23 14:54:03Z]] 16:54:03.409 [debug] QUERY OK db=0.3ms commit [] 16:54:03.412 [debug] QUERY OK source="media_items" db=1.8ms idle=501.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [28237973, ~U[2026-04-23 14:54:03Z], 52] 16:54:03.412 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:54:03.413 [info] {"args":{"id":52},"id":56,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":32070689,"event":"job:stop","queue_time":750340845,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:54:03.420 [info] {"args":{"id":54},"id":58,"meta":{},"system_time":1776956043420011250,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:54:03.421 [debug] QUERY OK source="media_items" db=0.8ms idle=127.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" = ?) [54] 16:54:03.422 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:54:03.423 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=12.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:03.425 [debug] QUERY OK source="media_profiles" db=1.5ms queue=0.1ms idle=11.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:03.427 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=13.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 [54] 16:54:03.429 [debug] QUERY OK source="media_metadata" db=0.2ms idle=9.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [54] 16:54:03.430 [debug] QUERY OK source="media_profiles" db=0.8ms idle=8.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:03.432 [debug] QUERY OK source="settings" db=1.1ms 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 [] 16:54:03.434 [debug] QUERY OK source="settings" db=1.0ms idle=7.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:03.435 [debug] Running yt-dlp command for action: get_downloadable_status 16:54:03.435 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:54:03.436 [debug] QUERY OK source="settings" db=0.1ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:03.436 [debug] QUERY OK source="settings" db=0.1ms idle=5.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:03.437 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cwT7k5oBqBs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/39/be/39befb95f30ae2fcce82951d60fa53ada925064adb6c5f4d81df46dcbc53dcdd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:54:04.282 [debug] Current batch of media processed. Will check again in 1000ms 16:54:05.284 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 27, "filename" => "/downloads/Jeff Su/2024-06-27 📈 The BEST charts to use in #presentations/📈 The BEST charts to use in #presentations [xOqbp4qTHdA].mp4", "id" => "xOqbp4qTHdA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/xOqbp4qTHdA", "playlist_index" => 48, "timestamp" => 1719498195, "title" => "📈 The BEST charts to use in #presentations", "upload_date" => "20240627"} 16:54:05.284 [debug] QUERY OK source="sources" db=0.2ms idle=989.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:05.285 [debug] QUERY OK source="sources" db=0.2ms idle=376.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:05.287 [debug] QUERY OK source="media_items" db=1.0ms idle=376.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-27 14:23:15Z], 1] 16:54:05.290 [debug] QUERY OK source="media_items" db=2.3ms idle=378.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📈 The BEST charts to use in #presentations", "c49d4568-0030-4690-addf-be9795f8205b", false, "xOqbp4qTHdA", 1, [], 27, false, "https://www.youtube.com/shorts/xOqbp4qTHdA", 48, "/downloads/Jeff Su/2024-06-27 📈 The BEST charts to use in #presentations/📈 The BEST charts to use in #presentations [xOqbp4qTHdA].mp4", false, true, 99, ~U[2024-06-27 14:23:15Z], ~U[2026-04-23 14:54:05Z], ~U[2026-04-23 14:54:05Z], "", "📈 The BEST charts to use in #presentations", "xOqbp4qTHdA", 1, 27, false, "https://www.youtube.com/shorts/xOqbp4qTHdA", "/downloads/Jeff Su/2024-06-27 📈 The BEST charts to use in #presentations/📈 The BEST charts to use in #presentations [xOqbp4qTHdA].mp4", true, ~U[2024-06-27 14:23:15Z]] 16:54:05.291 [debug] QUERY OK source="sources" db=0.3ms idle=381.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:05.291 [debug] QUERY OK source="media_profiles" db=0.3ms queue=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] 16:54:05.292 [debug] QUERY OK source="media_items" db=0.3ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [236] 16:54:05.292 [info] Kicking off download for media item #236 (xOqbp4qTHdA) 16:54:05.296 [debug] QUERY OK source="tasks" db=0.6ms idle=4.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [240, 236, ~U[2026-04-23 14:54:05Z], ~U[2026-04-23 14:54:05Z]] 16:54:05.296 [debug] Current batch of media processed. Will check again in 1000ms 16:54:06.297 [debug] Current batch of media processed. Will check again in 1000ms 16:54:07.299 [debug] Current batch of media processed. Will check again in 1000ms 16:54:08.299 [debug] Current batch of media processed. Will check again in 1000ms 16:54:09.301 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 36, "filename" => "/downloads/Jeff Su/2024-06-19 #Presentation mistake to avoid!/#Presentation mistake to avoid! [ktqRzxi0Epg].mp4", "id" => "ktqRzxi0Epg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/ktqRzxi0Epg", "playlist_index" => 49, "timestamp" => 1718802629, "title" => "#Presentation mistake to avoid!", "upload_date" => "20240619"} 16:54:09.302 [debug] QUERY OK source="sources" db=1.0ms idle=997.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:09.303 [debug] QUERY OK source="sources" db=0.3ms idle=393.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:09.304 [debug] QUERY OK source="media_items" db=0.9ms idle=394.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-19 13:10:29Z], 1] 16:54:09.306 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=395.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#Presentation mistake to avoid!", "fe250e08-1ce7-41d0-8d4f-1b20347d948a", false, "ktqRzxi0Epg", 1, [], 36, false, "https://www.youtube.com/shorts/ktqRzxi0Epg", 49, "/downloads/Jeff Su/2024-06-19 #Presentation mistake to avoid!/#Presentation mistake to avoid! [ktqRzxi0Epg].mp4", false, true, 99, ~U[2024-06-19 13:10:29Z], ~U[2026-04-23 14:54:09Z], ~U[2026-04-23 14:54:09Z], "", "#Presentation mistake to avoid!", "ktqRzxi0Epg", 1, 36, false, "https://www.youtube.com/shorts/ktqRzxi0Epg", "/downloads/Jeff Su/2024-06-19 #Presentation mistake to avoid!/#Presentation mistake to avoid! [ktqRzxi0Epg].mp4", true, ~U[2024-06-19 13:10:29Z]] 16:54:09.308 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:09.308 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=5.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:09.309 [debug] QUERY OK source="media_items" db=0.6ms 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 [237] 16:54:09.310 [info] Kicking off download for media item #237 (ktqRzxi0Epg) 16:54:09.314 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=5.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [241, 237, ~U[2026-04-23 14:54:09Z], ~U[2026-04-23 14:54:09Z]] 16:54:09.314 [debug] Current batch of media processed. Will check again in 1000ms 16:54:09.641 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cwT7k5oBqBs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/39/be/39befb95f30ae2fcce82951d60fa53ada925064adb6c5f4d81df46dcbc53dcdd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:54:09.642 [debug] Running yt-dlp command for action: download 16:54:09.642 [debug] QUERY OK source="settings" db=0.2ms idle=333.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:09.643 [debug] QUERY OK source="settings" db=0.1ms idle=333.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:09.643 [debug] QUERY OK source="settings" db=0.3ms idle=330.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:09.644 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cwT7k5oBqBs --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d2/d3/d2d3854ee2de2e59a4eaa74142efb57bef7e87057f34427561d19ca77288dd03.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:54:10.314 [debug] Current batch of media processed. Will check again in 1000ms 16:54:11.315 [debug] Current batch of media processed. Will check again in 1000ms 16:54:12.317 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 32, "filename" => "/downloads/Jeff Su/2024-06-11 #tedtalk vs workplace #presentations/#tedtalk vs workplace #presentations [Fwb8ypjxlXY].mp4", "id" => "Fwb8ypjxlXY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/Fwb8ypjxlXY", "playlist_index" => 50, "timestamp" => 1718111881, "title" => "#tedtalk vs workplace #presentations", "upload_date" => "20240611"} 16:54:12.317 [debug] QUERY OK source="sources" db=0.3ms idle=1408.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:12.318 [debug] QUERY OK source="sources" db=0.2ms idle=1409.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:12.319 [debug] QUERY OK source="media_items" db=1.0ms idle=1409.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-11 13:18:01Z], 1] 16:54:12.321 [debug] QUERY OK source="media_items" db=0.8ms idle=1009.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#tedtalk vs workplace #presentations", "14554111-6ce5-499f-81f3-86f9e3d3a740", false, "Fwb8ypjxlXY", 1, [], 32, false, "https://www.youtube.com/shorts/Fwb8ypjxlXY", 50, "/downloads/Jeff Su/2024-06-11 #tedtalk vs workplace #presentations/#tedtalk vs workplace #presentations [Fwb8ypjxlXY].mp4", false, true, 99, ~U[2024-06-11 13:18:01Z], ~U[2026-04-23 14:54:12Z], ~U[2026-04-23 14:54:12Z], "", "#tedtalk vs workplace #presentations", "Fwb8ypjxlXY", 1, 32, false, "https://www.youtube.com/shorts/Fwb8ypjxlXY", "/downloads/Jeff Su/2024-06-11 #tedtalk vs workplace #presentations/#tedtalk vs workplace #presentations [Fwb8ypjxlXY].mp4", true, ~U[2024-06-11 13:18:01Z]] 16:54:12.322 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:54:12.322 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:12.323 [debug] QUERY OK source="media_items" db=0.3ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [238] 16:54:12.323 [info] Kicking off download for media item #238 (Fwb8ypjxlXY) 16:54:12.327 [debug] QUERY OK source="tasks" db=0.3ms idle=4.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [242, 238, ~U[2026-04-23 14:54:12Z], ~U[2026-04-23 14:54:12Z]] 16:54:12.327 [debug] Current batch of media processed. Will check again in 1000ms 16:54:12.349 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=QrmDmQ7ZivM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/b8/85/b885b26c107b056f54fc9099023063d49b9bdb8912d05005608daca3e16f4c4c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:54:12.385 [debug] Running yt-dlp command for action: download_thumbnail 16:54:12.387 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:54:12.387 [debug] QUERY OK source="settings" db=0.2ms idle=63.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:12.387 [debug] QUERY OK source="settings" db=0.2ms idle=61.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:12.388 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=QrmDmQ7ZivM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/53/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/91/b5/91b52079ff160ddf9335958e2e3f4b281d5cf3ae0f1d3ea0149a1da797ecaccf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:54:13.327 [debug] Current batch of media processed. Will check again in 1000ms 16:54:14.328 [debug] Current batch of media processed. Will check again in 1000ms 16:54:15.329 [debug] Current batch of media processed. Will check again in 1000ms 16:54:16.331 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 60, "filename" => "/downloads/Jeff Su/2024-06-07 Strategy Manager teaches #slidewriting #managementconsulting/Strategy Manager teaches #slidewriting #managementconsulting [E133SQy4wIQ].mp4", "id" => "E133SQy4wIQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/E133SQy4wIQ", "playlist_index" => 51, "timestamp" => 1717769688, "title" => "Strategy Manager teaches #slidewriting #managementconsulting", "upload_date" => "20240607"} 16:54:16.331 [debug] QUERY OK source="sources" db=0.3ms idle=422.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:16.332 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [1] 16:54:16.334 [debug] QUERY OK source="media_items" db=1.5ms idle=423.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-07 14:14:48Z], 1] 16:54:16.336 [debug] QUERY OK source="media_items" db=1.4ms idle=425.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Strategy Manager teaches #slidewriting #managementconsulting", "3c64e3f5-c822-4d1b-ac4d-c97016b06515", false, "E133SQy4wIQ", 1, [], 60, false, "https://www.youtube.com/shorts/E133SQy4wIQ", 51, "/downloads/Jeff Su/2024-06-07 Strategy Manager teaches #slidewriting #managementconsulting/Strategy Manager teaches #slidewriting #managementconsulting [E133SQy4wIQ].mp4", false, true, 99, ~U[2024-06-07 14:14:48Z], ~U[2026-04-23 14:54:16Z], ~U[2026-04-23 14:54:16Z], "", "Strategy Manager teaches #slidewriting #managementconsulting", "E133SQy4wIQ", 1, 60, false, "https://www.youtube.com/shorts/E133SQy4wIQ", "/downloads/Jeff Su/2024-06-07 Strategy Manager teaches #slidewriting #managementconsulting/Strategy Manager teaches #slidewriting #managementconsulting [E133SQy4wIQ].mp4", true, ~U[2024-06-07 14:14:48Z]] 16:54:16.337 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:54:16.338 [debug] QUERY OK source="media_profiles" db=0.6ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:16.339 [debug] QUERY OK source="media_items" db=0.5ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [239] 16:54:16.339 [info] Kicking off download for media item #239 (E133SQy4wIQ) 16:54:16.344 [debug] QUERY OK source="tasks" db=0.5ms idle=6.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [243, 239, ~U[2026-04-23 14:54:16Z], ~U[2026-04-23 14:54:16Z]] 16:54:16.344 [debug] Current batch of media processed. Will check again in 1000ms 16:54:17.346 [debug] Current batch of media processed. Will check again in 1000ms 16:54:18.305 [info] {"source":"oban","duration":961,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:54:18.346 [debug] Current batch of media processed. Will check again in 1000ms 16:54:18.619 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=QrmDmQ7ZivM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/53/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/91/b5/91b52079ff160ddf9335958e2e3f4b281d5cf3ae0f1d3ea0149a1da797ecaccf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:54:18.621 [debug] QUERY OK db=0.1ms idle=712.5ms begin [] 16:54:18.623 [debug] QUERY OK source="media_items" db=1.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:54:12Z], "/downloads/Jeff Su/2024-01-09 You’re Not Unqualified: How to Pass 90% of Your Interviews/You’re Not Unqualified: How to Pass 90% of Your Interviews [QrmDmQ7ZivM].mp4", "/downloads/Jeff Su/2024-01-09 You’re Not Unqualified: How to Pass 90% of Your Interviews/You’re Not Unqualified: How to Pass 90% of Your Interviews [QrmDmQ7ZivM].info.json", "/downloads/Jeff Su/2024-01-09 You’re Not Unqualified: How to Pass 90% of Your Interviews/You’re Not Unqualified: How to Pass 90% of Your Interviews [QrmDmQ7ZivM].nfo", "/downloads/Jeff Su/2024-01-09 You’re Not Unqualified: How to Pass 90% of Your Interviews/You’re Not Unqualified: How to Pass 90% of Your Interviews [QrmDmQ7ZivM]-thumb.jpg", ~U[2026-04-23 14:54:18Z], 53] 16:54:18.626 [debug] QUERY OK source="media_metadata" db=2.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/53/metadata.json.gz", "/config/metadata/media_items/53/thumbnail.jpg", 53, ~U[2026-04-23 14:54:18Z], ~U[2026-04-23 14:54:18Z]] 16:54:18.628 [debug] QUERY OK db=1.4ms commit [] 16:54:18.632 [debug] QUERY OK source="media_items" db=3.8ms idle=719.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [15793630, ~U[2026-04-23 14:54:18Z], 53] 16:54:18.633 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:54:18.635 [info] {"args":{"id":53},"id":57,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":28148334,"event":"job:stop","queue_time":765483843,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:54:18.642 [info] {"args":{"id":55},"id":59,"meta":{},"system_time":1776956058642204103,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:54:18.643 [debug] QUERY OK source="media_items" db=0.4ms idle=314.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" = ?) [55] 16:54:18.643 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:54:18.644 [debug] QUERY OK source="sources" db=0.2ms idle=15.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:18.644 [debug] QUERY OK source="media_profiles" db=0.3ms idle=11.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:18.645 [debug] QUERY OK source="media_items" db=0.3ms 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 [55] 16:54:18.647 [debug] QUERY OK source="media_metadata" db=0.1ms idle=5.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [55] 16:54:18.647 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:18.648 [debug] QUERY OK source="settings" db=0.1ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:18.648 [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 [] 16:54:18.649 [debug] Running yt-dlp command for action: get_downloadable_status 16:54:18.650 [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 [] 16:54:18.650 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:18.650 [debug] QUERY OK source="settings" db=0.2ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:18.651 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=YFHqEM4g_Hc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/3b/cf/3bcf7969cbb791254c076836084b3a226943997a68ab40a4e1b8d8b2ab7659bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:54:19.347 [debug] Current batch of media processed. Will check again in 1000ms 16:54:20.349 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 38, "filename" => "/downloads/Jeff Su/2024-05-31 Google’s advice for #jobseekers #applicants/Google’s advice for #jobseekers #applicants [UBZIe0RQnaE].mp4", "id" => "UBZIe0RQnaE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/UBZIe0RQnaE", "playlist_index" => 52, "timestamp" => 1717165669, "title" => "Google’s advice for #jobseekers #applicants", "upload_date" => "20240531"} 16:54:20.349 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=440.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:20.350 [debug] QUERY OK source="sources" db=0.2ms idle=441.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:20.351 [debug] QUERY OK source="media_items" db=1.0ms idle=441.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-31 14:27:49Z], 1] 16:54:20.353 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=443.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Google’s advice for #jobseekers #applicants", "2095a3e4-752a-4456-becc-0c6d55da84c2", false, "UBZIe0RQnaE", 1, [], 38, false, "https://www.youtube.com/shorts/UBZIe0RQnaE", 52, "/downloads/Jeff Su/2024-05-31 Google’s advice for #jobseekers #applicants/Google’s advice for #jobseekers #applicants [UBZIe0RQnaE].mp4", false, true, 99, ~U[2024-05-31 14:27:49Z], ~U[2026-04-23 14:54:20Z], ~U[2026-04-23 14:54:20Z], "", "Google’s advice for #jobseekers #applicants", "UBZIe0RQnaE", 1, 38, false, "https://www.youtube.com/shorts/UBZIe0RQnaE", "/downloads/Jeff Su/2024-05-31 Google’s advice for #jobseekers #applicants/Google’s advice for #jobseekers #applicants [UBZIe0RQnaE].mp4", true, ~U[2024-05-31 14:27:49Z]] 16:54:20.353 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=21.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:20.354 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:20.355 [debug] QUERY OK source="media_items" db=0.3ms idle=4.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [240] 16:54:20.355 [info] Kicking off download for media item #240 (UBZIe0RQnaE) 16:54:20.359 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=4.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [244, 240, ~U[2026-04-23 14:54:20Z], ~U[2026-04-23 14:54:20Z]] 16:54:20.359 [debug] Current batch of media processed. Will check again in 1000ms 16:54:21.369 [debug] Current batch of media processed. Will check again in 1000ms 16:54:22.369 [debug] Current batch of media processed. Will check again in 1000ms 16:54:23.371 [debug] Current batch of media processed. Will check again in 1000ms 16:54:24.372 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 56, "filename" => "/downloads/Jeff Su/2024-05-21 3 #LinkedIn tips for Job Seekers!/3 #LinkedIn tips for Job Seekers! [HVyrkWLs2Wo].mp4", "id" => "HVyrkWLs2Wo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/HVyrkWLs2Wo", "playlist_index" => 53, "timestamp" => 1716298348, "title" => "3 #LinkedIn tips for Job Seekers!", "upload_date" => "20240521"} 16:54:24.373 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=463.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:54:24.374 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=464.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:24.376 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=465.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-21 13:32:28Z], 1] 16:54:24.377 [debug] QUERY OK source="media_items" db=0.9ms idle=467.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["3 #LinkedIn tips for Job Seekers!", "99890be0-33f5-4987-836a-a66db83d34bd", false, "HVyrkWLs2Wo", 1, [], 56, false, "https://www.youtube.com/shorts/HVyrkWLs2Wo", 53, "/downloads/Jeff Su/2024-05-21 3 #LinkedIn tips for Job Seekers!/3 #LinkedIn tips for Job Seekers! [HVyrkWLs2Wo].mp4", false, true, 99, ~U[2024-05-21 13:32:28Z], ~U[2026-04-23 14:54:24Z], ~U[2026-04-23 14:54:24Z], "", "3 #LinkedIn tips for Job Seekers!", "HVyrkWLs2Wo", 1, 56, false, "https://www.youtube.com/shorts/HVyrkWLs2Wo", "/downloads/Jeff Su/2024-05-21 3 #LinkedIn tips for Job Seekers!/3 #LinkedIn tips for Job Seekers! [HVyrkWLs2Wo].mp4", true, ~U[2024-05-21 13:32:28Z]] 16:54:24.378 [debug] QUERY OK source="sources" db=0.3ms idle=37.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:24.379 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:24.379 [debug] QUERY OK source="media_items" db=0.3ms 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 [241] 16:54:24.379 [info] Kicking off download for media item #241 (HVyrkWLs2Wo) 16:54:24.511 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=YFHqEM4g_Hc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/3b/cf/3bcf7969cbb791254c076836084b3a226943997a68ab40a4e1b8d8b2ab7659bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:54:24.512 [debug] Running yt-dlp command for action: download 16:54:24.512 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=133.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:24.513 [debug] QUERY OK source="settings" db=0.2ms idle=133.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:24.513 [debug] QUERY OK source="settings" db=0.2ms idle=130.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:24.514 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=YFHqEM4g_Hc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/66/31/6631ec4886459727e57acadbf56534378d26885185b273a521526e6c2997cf9d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:54:25.734 [debug] QUERY OK source="tasks" db=1350.8ms queue=0.1ms idle=5.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [245, 241, ~U[2026-04-23 14:54:24Z], ~U[2026-04-23 14:54:24Z]] 16:54:25.734 [debug] Current batch of media processed. Will check again in 1000ms 16:54:26.735 [debug] Current batch of media processed. Will check again in 1000ms 16:54:27.372 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cwT7k5oBqBs --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d2/d3/d2d3854ee2de2e59a4eaa74142efb57bef7e87057f34427561d19ca77288dd03.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:54:27.411 [debug] Running yt-dlp command for action: download_thumbnail 16:54:27.416 [debug] QUERY OK source="settings" db=0.2ms idle=1507.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:27.417 [debug] QUERY OK source="settings" db=0.7ms idle=1507.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:27.418 [debug] QUERY OK source="settings" db=0.3ms idle=1508.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:27.418 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cwT7k5oBqBs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/54/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c1/8a/c18a4bbbc22c080c9980f680568f6fd38d35bd72c58d6723fba76f37554fca2a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:54:27.551 [info] CONNECTED TO Phoenix.LiveView.Socket in 40µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DBZ0BAIVW1wwEnR_ZgtJcR4COQsmUjkfHr0fJWn8sgM0Vg0EXNHXddpu", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "3", "_track_static" => %{"0" => "https://pinch.msdlx.de/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinch.msdlx.de/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 16:54:27.599 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "downloaded"} 16:54:27.600 [debug] QUERY OK source="media_items" db=0.6ms idle=862.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)) [] 16:54:27.603 [debug] QUERY OK source="media_items" db=2.2ms idle=692.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] 16:54:27.604 [debug] QUERY OK source="sources" db=0.3ms idle=187.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:27.604 [debug] Replied in 4ms 16:54:27.607 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "pending"} 16:54:27.611 [debug] QUERY OK source="media_items" db=3.4ms idle=190.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"))) [] 16:54:27.614 [debug] QUERY OK source="media_items" db=1.8ms queue=0.2ms idle=193.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] 16:54:27.615 [debug] QUERY OK source="sources" db=0.2ms idle=14.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:27.615 [debug] Replied in 7ms 16:54:27.618 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:54:27.620 [debug] QUERY OK source="tasks" db=0.6ms idle=16.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 16:54:27.623 [debug] QUERY OK source="sources" db=1.2ms idle=9.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:27.623 [debug] QUERY OK source="media_items" db=1.6ms idle=17.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", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [54, 55] 16:54:27.623 [debug] Replied in 4ms 16:54:27.625 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:54:27.626 [debug] Replied in 759µs 16:54:27.673 [debug] HANDLE EVENT "check_matching_text" in Pinchflat.UpgradeButtonLive Parameters: %{"_target" => ["unlock-pro-textbox"], "_unused_unlock-pro-textbox" => "", "unlock-pro-textbox" => ""} 16:54:27.673 [debug] Replied in 201µs 16:54:27.736 [debug] Current batch of media processed. Will check again in 1000ms 16:54:28.738 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 31, "filename" => "/downloads/Jeff Su/2024-05-17 AI Tip No-one told you about @Google #googlechrome #googlegemini/AI Tip No-one told you about @Google #googlechrome #googlegemini [q2DSO7TDF2A].mp4", "id" => "q2DSO7TDF2A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/q2DSO7TDF2A", "playlist_index" => 54, "timestamp" => 1715950853, "title" => "AI Tip No-one told you about @Google #googlechrome #googlegemini", "upload_date" => "20240517"} 16:54:28.739 [debug] QUERY OK source="sources" db=0.3ms idle=1123.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:28.739 [debug] QUERY OK source="sources" db=0.3ms idle=1118.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:28.741 [debug] QUERY OK source="media_items" db=1.3ms idle=1117.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-17 13:00:53Z], 1] 16:54:29.256 [debug] QUERY OK source="media_items" db=514.6ms idle=1002.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["AI Tip No-one told you about @Google #googlechrome #googlegemini", "4d74955e-5e27-40df-a66d-78e887e2b5cf", false, "q2DSO7TDF2A", 1, [], 31, false, "https://www.youtube.com/shorts/q2DSO7TDF2A", 54, "/downloads/Jeff Su/2024-05-17 AI Tip No-one told you about @Google #googlechrome #googlegemini/AI Tip No-one told you about @Google #googlechrome #googlegemini [q2DSO7TDF2A].mp4", false, true, 99, ~U[2024-05-17 13:00:53Z], ~U[2026-04-23 14:54:28Z], ~U[2026-04-23 14:54:28Z], "", "AI Tip No-one told you about @Google #googlechrome #googlegemini", "q2DSO7TDF2A", 1, 31, false, "https://www.youtube.com/shorts/q2DSO7TDF2A", "/downloads/Jeff Su/2024-05-17 AI Tip No-one told you about @Google #googlechrome #googlegemini/AI Tip No-one told you about @Google #googlechrome #googlegemini [q2DSO7TDF2A].mp4", true, ~U[2024-05-17 13:00:53Z]] 16:54:29.257 [debug] QUERY OK source="sources" db=0.3ms idle=518.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:29.258 [debug] QUERY OK source="media_profiles" db=0.7ms idle=518.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] 16:54:29.259 [debug] QUERY OK source="media_items" db=0.4ms idle=517.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 [242] 16:54:29.259 [info] Kicking off download for media item #242 (q2DSO7TDF2A) 16:54:29.263 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=5.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [246, 242, ~U[2026-04-23 14:54:29Z], ~U[2026-04-23 14:54:29Z]] 16:54:29.263 [debug] Current batch of media processed. Will check again in 1000ms 16:54:30.264 [debug] Current batch of media processed. Will check again in 1000ms 16:54:31.265 [debug] Current batch of media processed. Will check again in 1000ms 16:54:32.267 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 60, "filename" => "/downloads/Jeff Su/2024-05-07 When NOT to use #ChatGPT/When NOT to use #ChatGPT [XWbXle4chy0].mp4", "id" => "XWbXle4chy0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/XWbXle4chy0", "playlist_index" => 55, "timestamp" => 1715088474, "title" => "When NOT to use #ChatGPT", "upload_date" => "20240507"} 16:54:32.268 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1358.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:32.269 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=1359.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:32.271 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1360.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-07 13:27:54Z], 1] 16:54:32.274 [debug] QUERY OK source="media_items" db=2.0ms idle=1362.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["When NOT to use #ChatGPT", "4581fdcf-493d-4edf-9372-dca211e60b17", false, "XWbXle4chy0", 1, [], 60, false, "https://www.youtube.com/shorts/XWbXle4chy0", 55, "/downloads/Jeff Su/2024-05-07 When NOT to use #ChatGPT/When NOT to use #ChatGPT [XWbXle4chy0].mp4", false, true, 99, ~U[2024-05-07 13:27:54Z], ~U[2026-04-23 14:54:32Z], ~U[2026-04-23 14:54:32Z], "", "When NOT to use #ChatGPT", "XWbXle4chy0", 1, 60, false, "https://www.youtube.com/shorts/XWbXle4chy0", "/downloads/Jeff Su/2024-05-07 When NOT to use #ChatGPT/When NOT to use #ChatGPT [XWbXle4chy0].mp4", true, ~U[2024-05-07 13:27:54Z]] 16:54:32.275 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=524.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:32.275 [debug] QUERY OK source="media_profiles" db=0.3ms idle=7.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:32.276 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=6.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [243] 16:54:32.277 [info] Kicking off download for media item #243 (XWbXle4chy0) 16:54:32.283 [debug] QUERY OK source="tasks" db=0.4ms queue=0.1ms idle=7.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [247, 243, ~U[2026-04-23 14:54:32Z], ~U[2026-04-23 14:54:32Z]] 16:54:32.283 [debug] Current batch of media processed. Will check again in 1000ms 16:54:33.284 [debug] Current batch of media processed. Will check again in 1000ms 16:54:33.736 [info] GET /sources 16:54:33.736 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 16:54:33.739 [debug] QUERY OK source="settings" db=2.7ms idle=1459.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:33.740 [debug] QUERY OK source="settings" db=0.6ms idle=1458.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:33.742 [debug] QUERY OK source="settings" db=1.6ms idle=1458.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:33.744 [debug] QUERY OK source="settings" db=0.9ms idle=1460.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:33.745 [debug] QUERY OK source="settings" db=0.6ms idle=993.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:33.748 [debug] QUERY OK source="sources" db=1.4ms queue=0.8ms idle=7.1ms 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)) [] 16:54:33.755 [debug] QUERY OK source="sources" db=3.2ms queue=2.3ms idle=9.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", 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] 16:54:33.757 [info] Sent 200 in 21ms 16:54:33.787 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cwT7k5oBqBs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/54/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c1/8a/c18a4bbbc22c080c9980f680568f6fd38d35bd72c58d6723fba76f37554fca2a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:54:33.788 [debug] QUERY OK db=0.0ms idle=43.6ms begin [] 16:54:33.790 [debug] QUERY OK source="media_items" db=1.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:54:27Z], "/downloads/Jeff Su/2023-12-26 8 Calendar Mistakes to Avoid (for busy people)!/8 Calendar Mistakes to Avoid (for busy people)! [cwT7k5oBqBs].mp4", "/downloads/Jeff Su/2023-12-26 8 Calendar Mistakes to Avoid (for busy people)!/8 Calendar Mistakes to Avoid (for busy people)! [cwT7k5oBqBs].info.json", "/downloads/Jeff Su/2023-12-26 8 Calendar Mistakes to Avoid (for busy people)!/8 Calendar Mistakes to Avoid (for busy people)! [cwT7k5oBqBs].nfo", "/downloads/Jeff Su/2023-12-26 8 Calendar Mistakes to Avoid (for busy people)!/8 Calendar Mistakes to Avoid (for busy people)! [cwT7k5oBqBs]-thumb.jpg", ~U[2026-04-23 14:54:33Z], 54] 16:54:33.792 [debug] QUERY OK source="media_metadata" db=2.0ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/54/metadata.json.gz", "/config/metadata/media_items/54/thumbnail.jpg", 54, ~U[2026-04-23 14:54:33Z], ~U[2026-04-23 14:54:33Z]] 16:54:33.793 [debug] QUERY OK db=0.7ms commit [] 16:54:33.796 [debug] QUERY OK source="media_items" db=2.2ms idle=48.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [22649692, ~U[2026-04-23 14:54:33Z], 54] 16:54:33.797 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:54:33.799 [info] {"args":{"id":54},"id":58,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":30377859,"event":"job:stop","queue_time":774418855,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:54:33.807 [info] {"args":{"id":56},"id":60,"meta":{},"system_time":1776956073807352868,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:54:33.808 [debug] QUERY OK source="media_items" db=0.4ms idle=46.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" = ?) [56] 16:54:33.808 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:54:33.809 [debug] QUERY OK source="sources" db=0.3ms idle=15.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:33.810 [debug] QUERY OK source="media_profiles" db=0.5ms idle=12.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] 16:54:33.811 [debug] QUERY OK source="media_items" db=0.5ms 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 [56] 16:54:33.813 [debug] QUERY OK source="media_metadata" db=0.2ms idle=5.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [56] 16:54:33.814 [debug] QUERY OK source="media_profiles" db=0.3ms idle=5.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:33.815 [debug] QUERY OK source="settings" db=0.5ms idle=5.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:33.816 [debug] QUERY OK source="settings" db=0.2ms queue=0.3ms idle=5.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:33.817 [debug] Running yt-dlp command for action: get_downloadable_status 16:54:33.820 [debug] QUERY OK source="settings" db=0.4ms idle=8.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:33.820 [debug] QUERY OK source="settings" db=0.2ms idle=7.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:33.821 [debug] QUERY OK source="settings" db=0.2ms idle=6.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:33.821 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HT0jiQLT98Y --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/cd/15/cd15afa2ea033986bb1532f9b470779bdbbc9056904508da92fe14e2b9b2c5e2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:54:33.983 [info] CONNECTED TO Phoenix.LiveView.Socket in 41µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "KS02AzkPXw10D2oEehsPeTYIExg3TzwfmIraqMji7zSKJwvMpDbKuyuu", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinch.msdlx.de/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinch.msdlx.de/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 16:54:34.019 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 16:54:34.021 [debug] QUERY OK source="sources" db=1.6ms idle=204.9ms 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)) [] 16:54:34.025 [debug] QUERY OK source="sources" db=2.4ms idle=206.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", 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] 16:54:34.025 [debug] Replied in 5ms 16:54:34.029 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:54:34.029 [debug] Replied in 167µs 16:54:34.284 [debug] Current batch of media processed. Will check again in 1000ms 16:54:35.285 [debug] Current batch of media processed. Will check again in 1000ms 16:54:36.286 [debug] Current batch of media processed. Will check again in 1000ms 16:54:36.401 [info] GET /sources/1 16:54:36.402 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 16:54:36.402 [debug] QUERY OK source="sources" db=0.3ms idle=1493.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:36.403 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1494.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] 16:54:36.404 [debug] QUERY OK source="tasks" db=0.2ms idle=638.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 (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 16:54:36.405 [debug] QUERY OK source="oban_jobs" db=0.8ms queue=0.2ms idle=495.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" = ?) [3] 16:54:36.405 [debug] QUERY OK source="settings" db=0.1ms idle=496.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:36.406 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:36.406 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:54:36.408 [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" = ?) [1] 16:54:36.410 [debug] QUERY OK source="media_items" db=0.5ms queue=0.4ms idle=3.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 16:54:36.412 [debug] QUERY OK source="media_items" db=1.3ms queue=0.2ms idle=4.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 16:54:36.413 [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" = ?) [1] 16:54:36.414 [debug] QUERY OK source="media_items" db=0.2ms queue=0.2ms idle=7.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 16:54:36.414 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=5.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 ? [1, 10, 0] 16:54:36.416 [debug] QUERY OK source="sources" db=0.1ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:36.417 [debug] QUERY OK source="media_items" db=0.4ms queue=0.3ms idle=4.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] 16:54:36.419 [debug] QUERY OK source="media_items" db=1.2ms queue=0.2ms idle=4.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 ? [1, 10, 0] 16:54:36.420 [info] Sent 200 in 18ms 16:54:36.614 [info] CONNECTED TO Phoenix.LiveView.Socket in 35µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "JgMyJRkqUwYPJG4DX14PdjI7BAETUDkYbgvGQhfbLQWLo2vBtwuRQfpr", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinch.msdlx.de/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinch.msdlx.de/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 16:54:36.658 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "pending", "source_id" => 1} 16:54:36.658 [debug] QUERY OK source="sources" db=0.4ms idle=243.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:36.660 [debug] QUERY OK source="media_items" db=0.7ms idle=244.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 16:54:36.661 [debug] QUERY OK source="media_items" db=0.9ms idle=244.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 ? [1, 10, 0] 16:54:36.661 [debug] Replied in 3ms 16:54:36.663 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "downloaded", "source_id" => 1} 16:54:36.664 [debug] QUERY OK source="sources" db=0.3ms idle=246.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:36.665 [debug] QUERY OK source="media_items" db=0.2ms idle=245.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 16:54:36.666 [debug] QUERY OK source="media_items" db=1.2ms idle=6.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] 16:54:36.666 [debug] Replied in 3ms 16:54:36.682 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "other", "source_id" => 1} 16:54:36.682 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:36.683 [debug] QUERY OK source="media_items" db=0.5ms idle=21.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] 16:54:36.684 [debug] QUERY OK source="media_items" db=0.7ms idle=19.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 16:54:36.684 [debug] Replied in 2ms 16:54:36.685 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:54:36.685 [debug] Replied in 134µs 16:54:37.288 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 43, "filename" => "/downloads/Jeff Su/2024-04-23 My favorite #Gmail filter for #productivity/My favorite #Gmail filter for #productivity [8klsJfMzWRI].mp4", "id" => "8klsJfMzWRI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/8klsJfMzWRI", "playlist_index" => 56, "timestamp" => 1713912896, "title" => "My favorite #Gmail filter for #productivity", "upload_date" => "20240423"} 16:54:37.288 [debug] QUERY OK source="sources" db=0.3ms idle=621.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:37.289 [debug] QUERY OK source="sources" db=0.2ms idle=606.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:37.290 [debug] QUERY OK source="media_items" db=0.4ms idle=606.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-23 22:54:56Z], 1] 16:54:37.291 [debug] QUERY OK source="media_items" db=0.8ms idle=605.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My favorite #Gmail filter for #productivity", "63a62bd5-57c8-4029-ab5b-8dc2d8baef16", false, "8klsJfMzWRI", 1, [], 43, false, "https://www.youtube.com/shorts/8klsJfMzWRI", 56, "/downloads/Jeff Su/2024-04-23 My favorite #Gmail filter for #productivity/My favorite #Gmail filter for #productivity [8klsJfMzWRI].mp4", false, true, 99, ~U[2024-04-23 22:54:56Z], ~U[2026-04-23 14:54:37Z], ~U[2026-04-23 14:54:37Z], "", "My favorite #Gmail filter for #productivity", "8klsJfMzWRI", 1, 43, false, "https://www.youtube.com/shorts/8klsJfMzWRI", "/downloads/Jeff Su/2024-04-23 My favorite #Gmail filter for #productivity/My favorite #Gmail filter for #productivity [8klsJfMzWRI].mp4", true, ~U[2024-04-23 22:54:56Z]] 16:54:37.292 [debug] QUERY OK source="sources" db=0.3ms idle=524.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:37.292 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:37.293 [debug] QUERY OK source="media_items" db=0.3ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [244] 16:54:37.293 [info] Kicking off download for media item #244 (8klsJfMzWRI) 16:54:37.297 [debug] QUERY OK source="tasks" db=0.3ms idle=5.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [248, 244, ~U[2026-04-23 14:54:37Z], ~U[2026-04-23 14:54:37Z]] 16:54:37.297 [debug] Current batch of media processed. Will check again in 1000ms 16:54:38.298 [debug] Current batch of media processed. Will check again in 1000ms 16:54:39.299 [debug] Current batch of media processed. Will check again in 1000ms 16:54:40.301 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 51, "filename" => "/downloads/Jeff Su/2024-04-15 #GoogleSheets just received a massive update from @googleworkspace/#GoogleSheets just received a massive update from @googleworkspace [3uAlmp6jmuE].mp4", "id" => "3uAlmp6jmuE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/3uAlmp6jmuE", "playlist_index" => 57, "timestamp" => 1713186003, "title" => "#GoogleSheets just received a massive update from @googleworkspace", "upload_date" => "20240415"} 16:54:40.302 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=1392.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:40.304 [debug] QUERY OK source="sources" db=1.0ms idle=1394.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:40.305 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1395.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-15 13:00:03Z], 1] 16:54:40.307 [debug] QUERY OK source="media_items" db=1.1ms idle=1397.3ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#GoogleSheets just received a massive update from @googleworkspace", "3683153e-8563-4cc6-b49a-ec66e84f5092", false, "3uAlmp6jmuE", 1, [], 51, false, "https://www.youtube.com/shorts/3uAlmp6jmuE", 57, "/downloads/Jeff Su/2024-04-15 #GoogleSheets just received a massive update from @googleworkspace/#GoogleSheets just received a massive update from @googleworkspace [3uAlmp6jmuE].mp4", false, true, 99, ~U[2024-04-15 13:00:03Z], ~U[2026-04-23 14:54:40Z], ~U[2026-04-23 14:54:40Z], "", "#GoogleSheets just received a massive update from @googleworkspace", "3uAlmp6jmuE", 1, 51, false, "https://www.youtube.com/shorts/3uAlmp6jmuE", "/downloads/Jeff Su/2024-04-15 #GoogleSheets just received a massive update from @googleworkspace/#GoogleSheets just received a massive update from @googleworkspace [3uAlmp6jmuE].mp4", true, ~U[2024-04-15 13:00:03Z]] 16:54:40.308 [debug] QUERY OK source="sources" db=0.3ms idle=532.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:40.309 [debug] QUERY OK source="media_profiles" db=0.5ms queue=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] 16:54:40.310 [debug] QUERY OK source="media_items" db=0.5ms 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 [245] 16:54:40.310 [info] Kicking off download for media item #245 (3uAlmp6jmuE) 16:54:40.316 [debug] QUERY OK source="tasks" db=0.4ms idle=7.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [249, 245, ~U[2026-04-23 14:54:40Z], ~U[2026-04-23 14:54:40Z]] 16:54:40.316 [debug] Current batch of media processed. Will check again in 1000ms 16:54:40.499 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HT0jiQLT98Y --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/cd/15/cd15afa2ea033986bb1532f9b470779bdbbc9056904508da92fe14e2b9b2c5e2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:54:40.500 [debug] Running yt-dlp command for action: download 16:54:40.500 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=190.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:40.501 [debug] QUERY OK source="settings" db=0.1ms idle=190.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:40.501 [debug] QUERY OK source="settings" db=0.1ms idle=186.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:40.501 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HT0jiQLT98Y --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/99/13/99130af07f3b4a1da4ab8a91d57daa4c0fb946a8172702a3cb133d302193d8a5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:54:41.317 [debug] Current batch of media processed. Will check again in 1000ms 16:54:42.318 [debug] Current batch of media processed. Will check again in 1000ms 16:54:43.319 [debug] Current batch of media processed. Will check again in 1000ms 16:54:44.247 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=YFHqEM4g_Hc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/66/31/6631ec4886459727e57acadbf56534378d26885185b273a521526e6c2997cf9d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:54:44.298 [debug] Running yt-dlp command for action: download_thumbnail 16:54:44.301 [debug] QUERY OK source="settings" db=0.2ms idle=517.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:44.302 [debug] QUERY OK source="settings" db=1.2ms idle=392.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:44.304 [debug] QUERY OK source="settings" db=1.0ms idle=394.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:44.304 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=YFHqEM4g_Hc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/55/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c9/de/c9de3ce6cf77937d51d99296d0e6248f7ecb836d594b6947a9f014649534731f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:54:44.321 [debug] Current batch of media processed. Will check again in 1000ms 16:54:45.322 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 31, "filename" => "/downloads/Jeff Su/2024-04-04 Answer this tricky #interview question. #jobsearch/Answer this tricky #interview question. #jobsearch [ZRWQ5XNNR_U].mp4", "id" => "ZRWQ5XNNR_U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/ZRWQ5XNNR_U", "playlist_index" => 58, "timestamp" => 1712237062, "title" => "Answer this tricky #interview question. #jobsearch", "upload_date" => "20240404"} 16:54:45.330 [debug] QUERY OK source="sources" db=6.1ms queue=0.8ms idle=1414.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:45.336 [debug] QUERY OK source="sources" db=3.6ms queue=2.3ms idle=1029.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:45.338 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=1034.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-04 13:24:22Z], 1] 16:54:45.340 [debug] QUERY OK source="media_items" db=0.9ms idle=1034.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Answer this tricky #interview question. #jobsearch", "86368968-463c-412e-8683-1e1ae5555698", false, "ZRWQ5XNNR_U", 1, [], 31, false, "https://www.youtube.com/shorts/ZRWQ5XNNR_U", 58, "/downloads/Jeff Su/2024-04-04 Answer this tricky #interview question. #jobsearch/Answer this tricky #interview question. #jobsearch [ZRWQ5XNNR_U].mp4", false, true, 99, ~U[2024-04-04 13:24:22Z], ~U[2026-04-23 14:54:45Z], ~U[2026-04-23 14:54:45Z], "", "Answer this tricky #interview question. #jobsearch", "ZRWQ5XNNR_U", 1, 31, false, "https://www.youtube.com/shorts/ZRWQ5XNNR_U", "/downloads/Jeff Su/2024-04-04 Answer this tricky #interview question. #jobsearch/Answer this tricky #interview question. #jobsearch [ZRWQ5XNNR_U].mp4", true, ~U[2024-04-04 13:24:22Z]] 16:54:45.342 [debug] QUERY OK source="sources" db=1.0ms idle=555.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:45.343 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.5ms idle=12.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:45.344 [debug] QUERY OK source="media_items" db=0.4ms idle=7.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [246] 16:54:45.344 [info] Kicking off download for media item #246 (ZRWQ5XNNR_U) 16:54:45.359 [debug] QUERY OK source="tasks" db=7.5ms idle=9.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [250, 246, ~U[2026-04-23 14:54:45Z], ~U[2026-04-23 14:54:45Z]] 16:54:45.359 [debug] Current batch of media processed. Will check again in 1000ms 16:54:46.360 [debug] Current batch of media processed. Will check again in 1000ms 16:54:47.361 [debug] Current batch of media processed. Will check again in 1000ms 16:54:48.073 [info] GET /sources/1/edit 16:54:48.073 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 16:54:48.074 [debug] QUERY OK source="sources" db=0.3ms idle=1164.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:48.074 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1165.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" [] 16:54:48.075 [debug] QUERY OK source="settings" db=0.2ms idle=1165.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:48.075 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=1166.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:48.076 [debug] QUERY OK source="settings" db=0.2ms idle=284.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:48.080 [info] Sent 200 in 7ms 16:54:48.249 [info] CONNECTED TO Phoenix.LiveView.Socket in 38µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "KSscUH90WC0iEl94Z1oPAQgrHAQ6VzkumOX276mIagf7W6v5NgmWxapD", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinch.msdlx.de/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinch.msdlx.de/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 16:54:48.281 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:54:48.281 [debug] Replied in 176µs 16:54:48.307 [info] {"source":"oban","duration":899,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:54:48.362 [debug] Current batch of media processed. Will check again in 1000ms 16:54:49.364 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 40, "filename" => "/downloads/Jeff Su/2024-03-21 Prepare for your next #interview with #ChatGPT/Prepare for your next #interview with #ChatGPT [o52B2bBu42I].mp4", "id" => "o52B2bBu42I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/o52B2bBu42I", "playlist_index" => 59, "timestamp" => 1711027239, "title" => "Prepare for your next #interview with #ChatGPT", "upload_date" => "20240321"} 16:54:49.365 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1289.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:49.366 [debug] QUERY OK source="sources" db=0.6ms idle=1289.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:49.369 [debug] QUERY OK source="media_items" db=2.2ms idle=1290.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-21 13:20:39Z], 1] 16:54:49.371 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=1062.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Prepare for your next #interview with #ChatGPT", "01bb885a-c009-43ee-b6dc-f77c2b94675d", false, "o52B2bBu42I", 1, [], 40, false, "https://www.youtube.com/shorts/o52B2bBu42I", 59, "/downloads/Jeff Su/2024-03-21 Prepare for your next #interview with #ChatGPT/Prepare for your next #interview with #ChatGPT [o52B2bBu42I].mp4", false, true, 99, ~U[2024-03-21 13:20:39Z], ~U[2026-04-23 14:54:49Z], ~U[2026-04-23 14:54:49Z], "", "Prepare for your next #interview with #ChatGPT", "o52B2bBu42I", 1, 40, false, "https://www.youtube.com/shorts/o52B2bBu42I", "/downloads/Jeff Su/2024-03-21 Prepare for your next #interview with #ChatGPT/Prepare for your next #interview with #ChatGPT [o52B2bBu42I].mp4", true, ~U[2024-03-21 13:20:39Z]] 16:54:49.372 [debug] QUERY OK source="sources" db=0.7ms idle=578.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:49.373 [debug] QUERY OK source="media_profiles" db=0.9ms idle=7.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:49.375 [debug] QUERY OK source="media_items" db=1.0ms idle=7.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [247] 16:54:49.375 [info] Kicking off download for media item #247 (o52B2bBu42I) 16:54:49.380 [debug] QUERY OK source="tasks" db=0.3ms idle=8.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [251, 247, ~U[2026-04-23 14:54:49Z], ~U[2026-04-23 14:54:49Z]] 16:54:49.381 [debug] Current batch of media processed. Will check again in 1000ms 16:54:50.381 [debug] Current batch of media processed. Will check again in 1000ms 16:54:51.382 [debug] Current batch of media processed. Will check again in 1000ms 16:54:51.554 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=YFHqEM4g_Hc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/55/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c9/de/c9de3ce6cf77937d51d99296d0e6248f7ecb836d594b6947a9f014649534731f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:54:51.555 [debug] QUERY OK db=0.0ms idle=754.4ms begin [] 16:54:51.556 [debug] QUERY OK source="media_items" db=0.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:54:44Z], "/downloads/Jeff Su/2023-12-12 Top 10 BEST Macbook Tips for Productivity!/Top 10 BEST Macbook Tips for Productivity! [YFHqEM4g_Hc].mp4", "/downloads/Jeff Su/2023-12-12 Top 10 BEST Macbook Tips for Productivity!/Top 10 BEST Macbook Tips for Productivity! [YFHqEM4g_Hc].info.json", "/downloads/Jeff Su/2023-12-12 Top 10 BEST Macbook Tips for Productivity!/Top 10 BEST Macbook Tips for Productivity! [YFHqEM4g_Hc].nfo", "/downloads/Jeff Su/2023-12-12 Top 10 BEST Macbook Tips for Productivity!/Top 10 BEST Macbook Tips for Productivity! [YFHqEM4g_Hc]-thumb.jpg", ~U[2026-04-23 14:54:51Z], 55] 16:54:51.558 [debug] QUERY OK source="media_metadata" db=1.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/55/metadata.json.gz", "/config/metadata/media_items/55/thumbnail.jpg", 55, ~U[2026-04-23 14:54:51Z], ~U[2026-04-23 14:54:51Z]] 16:54:51.558 [debug] QUERY OK db=0.3ms commit [] 16:54:51.560 [debug] QUERY OK source="media_items" db=1.5ms idle=650.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [23535638, ~U[2026-04-23 14:54:51Z], 55] 16:54:51.560 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:54:51.561 [info] {"args":{"id":55},"id":59,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":32918710,"event":"job:stop","queue_time":786640836,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:54:51.568 [info] {"args":{"id":57},"id":61,"meta":{},"system_time":1776956091567910479,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:54:51.568 [debug] QUERY OK source="media_items" db=0.3ms idle=659.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" = ?) [57] 16:54:51.569 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:54:51.569 [debug] QUERY OK source="sources" db=0.3ms idle=10.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:51.570 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:51.570 [debug] QUERY OK source="media_items" db=0.3ms idle=8.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [57] 16:54:51.571 [debug] QUERY OK source="media_metadata" db=0.2ms idle=3.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [57] 16:54:51.572 [debug] QUERY OK source="media_profiles" db=0.7ms 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] 16:54:51.573 [debug] QUERY OK source="settings" db=0.3ms idle=3.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:51.573 [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 [] 16:54:51.574 [debug] Running yt-dlp command for action: get_downloadable_status 16:54:51.575 [debug] QUERY OK source="settings" db=0.2ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:51.575 [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 [] 16:54:51.576 [debug] QUERY OK source="settings" db=0.7ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:51.576 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Yq0QkCxoTHM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/06/91/0691ed3fcef91af16c18034e12695b09aee30ebbcad1f0d166886a288d170ef5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:54:52.383 [debug] Current batch of media processed. Will check again in 1000ms 16:54:53.385 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 44, "filename" => "/downloads/Jeff Su/2024-03-14 #GenerativeAI explained in 40 seconds/#GenerativeAI explained in 40 seconds [JeIYqIuXng0].mp4", "id" => "JeIYqIuXng0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/JeIYqIuXng0", "playlist_index" => 60, "timestamp" => 1710424304, "title" => "#GenerativeAI explained in 40 seconds", "upload_date" => "20240314"} 16:54:53.386 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=578.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:53.386 [debug] QUERY OK source="sources" db=0.1ms idle=477.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:53.389 [debug] QUERY OK source="media_items" db=1.2ms queue=0.7ms idle=478.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-14 13:51:44Z], 1] 16:54:53.390 [debug] QUERY OK source="media_items" db=0.8ms idle=480.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#GenerativeAI explained in 40 seconds", "675d69ff-5d22-48f7-83b1-07581b8c7c7b", false, "JeIYqIuXng0", 1, [], 44, false, "https://www.youtube.com/shorts/JeIYqIuXng0", 60, "/downloads/Jeff Su/2024-03-14 #GenerativeAI explained in 40 seconds/#GenerativeAI explained in 40 seconds [JeIYqIuXng0].mp4", false, true, 99, ~U[2024-03-14 13:51:44Z], ~U[2026-04-23 14:54:53Z], ~U[2026-04-23 14:54:53Z], "", "#GenerativeAI explained in 40 seconds", "JeIYqIuXng0", 1, 44, false, "https://www.youtube.com/shorts/JeIYqIuXng0", "/downloads/Jeff Su/2024-03-14 #GenerativeAI explained in 40 seconds/#GenerativeAI explained in 40 seconds [JeIYqIuXng0].mp4", true, ~U[2024-03-14 13:51:44Z]] 16:54:53.391 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=481.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:54:53.392 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 16:54:53.393 [debug] QUERY OK source="media_items" db=0.3ms idle=5.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [248] 16:54:53.393 [info] Kicking off download for media item #248 (JeIYqIuXng0) 16:54:53.398 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=6.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [252, 248, ~U[2026-04-23 14:54:53Z], ~U[2026-04-23 14:54:53Z]] 16:54:53.398 [debug] Current batch of media processed. Will check again in 1000ms 16:54:54.399 [debug] Current batch of media processed. Will check again in 1000ms 16:54:55.400 [debug] Current batch of media processed. Will check again in 1000ms 16:54:55.766 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HT0jiQLT98Y --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/99/13/99130af07f3b4a1da4ab8a91d57daa4c0fb946a8172702a3cb133d302193d8a5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:54:55.808 [debug] Running yt-dlp command for action: download_thumbnail 16:54:55.810 [debug] QUERY OK source="settings" db=0.2ms idle=998.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:55.810 [debug] QUERY OK source="settings" db=0.2ms idle=901.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:55.810 [debug] QUERY OK source="settings" db=0.1ms idle=901.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:55.811 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HT0jiQLT98Y --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/56/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/22/71/2271789a78899b382eb743f1f11a99797f9b2397f7cb4bb8a1a62e66c1a5ff9d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:54:56.401 [debug] Current batch of media processed. Will check again in 1000ms 16:54:57.403 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 56, "filename" => "/downloads/Jeff Su/2024-03-09 The Correct Way to use #GoogleGemini/The Correct Way to use #GoogleGemini [xT7oU9B0Q1Q].mp4", "id" => "xT7oU9B0Q1Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/xT7oU9B0Q1Q", "playlist_index" => 61, "timestamp" => 1709990181, "title" => "The Correct Way to use #GoogleGemini", "upload_date" => "20240309"} 16:54:57.404 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=583.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:54:57.404 [debug] QUERY OK source="sources" db=0.2ms idle=495.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:57.405 [debug] QUERY OK source="media_items" db=0.9ms idle=495.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-09 13:16:21Z], 1] 16:54:57.407 [debug] QUERY OK source="media_items" db=0.7ms idle=497.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Correct Way to use #GoogleGemini", "3d612f00-01c9-45ce-ac1a-f398e7abc6d6", false, "xT7oU9B0Q1Q", 1, [], 56, false, "https://www.youtube.com/shorts/xT7oU9B0Q1Q", 61, "/downloads/Jeff Su/2024-03-09 The Correct Way to use #GoogleGemini/The Correct Way to use #GoogleGemini [xT7oU9B0Q1Q].mp4", false, true, 99, ~U[2024-03-09 13:16:21Z], ~U[2026-04-23 14:54:57Z], ~U[2026-04-23 14:54:57Z], "", "The Correct Way to use #GoogleGemini", "xT7oU9B0Q1Q", 1, 56, false, "https://www.youtube.com/shorts/xT7oU9B0Q1Q", "/downloads/Jeff Su/2024-03-09 The Correct Way to use #GoogleGemini/The Correct Way to use #GoogleGemini [xT7oU9B0Q1Q].mp4", true, ~U[2024-03-09 13:16:21Z]] 16:54:57.407 [debug] QUERY OK source="sources" db=0.2ms idle=498.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:57.408 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:54:57.408 [debug] QUERY OK source="media_items" db=0.3ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [249] 16:54:57.408 [info] Kicking off download for media item #249 (xT7oU9B0Q1Q) 16:54:57.412 [debug] QUERY OK source="tasks" db=0.2ms idle=4.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [253, 249, ~U[2026-04-23 14:54:57Z], ~U[2026-04-23 14:54:57Z]] 16:54:57.412 [debug] Current batch of media processed. Will check again in 1000ms 16:54:58.412 [debug] Current batch of media processed. Will check again in 1000ms 16:54:58.503 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Yq0QkCxoTHM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/06/91/0691ed3fcef91af16c18034e12695b09aee30ebbcad1f0d166886a288d170ef5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:54:58.507 [debug] Running yt-dlp command for action: download 16:54:58.516 [debug] QUERY OK source="settings" db=8.8ms queue=0.2ms idle=1098.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:58.518 [debug] QUERY OK source="settings" db=2.0ms idle=1105.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:58.520 [debug] QUERY OK source="settings" db=1.6ms idle=1107.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:58.522 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Yq0QkCxoTHM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/25/dd/25ddce5cf5096c26d175e1d32f1a8ad30880b392c3a6b24e2aa56756b994c9f8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:54:59.402 [info] POST /sources/1 16:54:59.403 [debug] Processing with PinchflatWeb.Sources.SourceController.update/2 Parameters: %{"_csrf_token" => "KSscUH90WC0iEl94Z1oPAQgrHAQ6VzkumOX276mIagf7W6v5NgmWxapD", "_method" => "patch", "download_cutoff_date_preset" => "", "id" => "1", "source" => %{"cookie_behaviour" => "disabled", "custom_name" => "Jeff Su", "download_cutoff_date" => "2026-01-01", "download_media" => "true", "fast_index" => "false", "index_frequency_minutes" => "1440", "max_duration_seconds" => "", "media_profile_id" => "1", "min_duration_seconds" => "", "original_url" => "https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA", "output_path_template_override" => "", "retention_period_days" => "", "title_filter_regex" => ""}} Pipelines: [:browser] 16:54:59.403 [debug] QUERY OK source="sources" db=0.3ms idle=887.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:59.404 [debug] QUERY OK source="sources" db=0.2ms idle=885.4ms UPDATE "sources" SET "download_cutoff_date" = ?, "updated_at" = ? WHERE "id" = ? [~D[2026-01-01], ~U[2026-04-23 14:54:59Z], 1] 16:54:59.404 [info] Sent 302 in 2ms 16:54:59.413 [debug] Current batch of media processed. Will check again in 1000ms 16:54:59.450 [info] GET /sources/1 16:54:59.450 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 16:54:59.453 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=930.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:59.458 [debug] QUERY OK source="media_profiles" db=4.5ms queue=0.1ms idle=628.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] 16:54:59.459 [debug] QUERY OK source="tasks" db=1.3ms queue=0.1ms idle=549.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 (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 16:54:59.462 [debug] QUERY OK source="oban_jobs" db=2.4ms idle=56.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" = ?) [3] 16:54:59.464 [debug] QUERY OK source="settings" db=1.2ms idle=58.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:59.467 [debug] QUERY OK source="settings" db=2.1ms idle=11.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:59.468 [debug] QUERY OK source="settings" db=1.1ms idle=9.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:54:59.473 [debug] QUERY OK source="sources" db=2.1ms idle=11.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:59.476 [debug] QUERY OK source="media_items" db=3.0ms idle=11.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] 16:54:59.481 [debug] QUERY OK source="media_items" db=4.3ms idle=12.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 16:54:59.485 [debug] QUERY OK source="sources" db=2.5ms idle=16.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:59.486 [debug] QUERY OK source="media_items" db=0.6ms idle=17.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 16:54:59.489 [debug] QUERY OK source="media_items" db=2.5ms idle=13.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 16:54:59.492 [debug] QUERY OK source="sources" db=0.8ms idle=14.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:59.494 [debug] QUERY OK source="media_items" db=0.9ms idle=11.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 16:54:59.497 [debug] QUERY OK source="media_items" db=2.8ms queue=0.1ms idle=8.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 ? [1, 10, 0] 16:54:59.505 [info] Sent 200 in 54ms 16:54:59.675 [info] CONNECTED TO Phoenix.LiveView.Socket in 38µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "LiUQCgYzBgcAGVYjditJQD9-GzIBbggCjAThNq3cClolFG0ty2jaCXAh", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinch.msdlx.de/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinch.msdlx.de/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 16:54:59.708 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "pending", "source_id" => 1} 16:54:59.709 [debug] QUERY OK source="sources" db=0.6ms idle=222.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:59.711 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=220.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 16:54:59.714 [debug] QUERY OK source="media_items" db=1.9ms idle=219.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 16:54:59.714 [debug] Replied in 5ms 16:54:59.716 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "downloaded", "source_id" => 1} 16:54:59.718 [debug] QUERY OK source="sources" db=1.7ms idle=222.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:59.720 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=221.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 16:54:59.722 [debug] QUERY OK source="media_items" db=1.9ms idle=10.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 ? [1, 10, 0] 16:54:59.722 [debug] Replied in 6ms 16:54:59.727 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij", "media_state" => "other", "source_id" => 1} 16:54:59.728 [debug] QUERY OK source="sources" db=0.7ms idle=16.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:54:59.730 [debug] QUERY OK source="media_items" db=1.1ms idle=15.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] 16:54:59.733 [debug] QUERY OK source="media_items" db=2.4ms idle=12.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 ? [1, 10, 0] 16:54:59.733 [debug] Replied in 6ms 16:54:59.736 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "DdDbHB5dCu9O0ly4FLqSB6Ij"} 16:54:59.736 [debug] Replied in 168µs 16:55:00.225 [info] {"source":"oban","duration":313,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:55:00.414 [debug] Current batch of media processed. Will check again in 1000ms 16:55:01.416 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 37, "filename" => "/downloads/Jeff Su/2024-02-29 Best #Chrome extensions (according to Google)/Best #Chrome extensions (according to Google) [4yt4YiLXe1g].mp4", "id" => "4yt4YiLXe1g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/4yt4YiLXe1g", "playlist_index" => 62, "timestamp" => 1709214176, "title" => "Best #Chrome extensions (according to Google)", "upload_date" => "20240229"} 16:55:01.416 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1191.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:01.418 [debug] QUERY OK source="sources" db=0.8ms idle=588.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:01.418 [debug] QUERY OK source="media_items" db=0.5ms idle=506.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-29 13:42:56Z], 1] 16:55:01.421 [debug] QUERY OK source="media_items" db=2.1ms idle=507.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Best #Chrome extensions (according to Google)", "22ef3365-6ee7-4e18-b99e-66bdc3c18e1f", false, "4yt4YiLXe1g", 1, [], 37, false, "https://www.youtube.com/shorts/4yt4YiLXe1g", 62, "/downloads/Jeff Su/2024-02-29 Best #Chrome extensions (according to Google)/Best #Chrome extensions (according to Google) [4yt4YiLXe1g].mp4", false, true, 99, ~U[2024-02-29 13:42:56Z], ~U[2026-04-23 14:55:01Z], ~U[2026-04-23 14:55:01Z], "", "Best #Chrome extensions (according to Google)", "4yt4YiLXe1g", 1, 37, false, "https://www.youtube.com/shorts/4yt4YiLXe1g", "/downloads/Jeff Su/2024-02-29 Best #Chrome extensions (according to Google)/Best #Chrome extensions (according to Google) [4yt4YiLXe1g].mp4", true, ~U[2024-02-29 13:42:56Z]] 16:55:01.423 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=509.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:01.424 [debug] QUERY OK source="media_profiles" db=1.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] 16:55:01.426 [debug] QUERY OK source="media_items" db=1.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 [250] 16:55:01.426 [debug] Current batch of media processed. Will check again in 1000ms 16:55:02.426 [debug] Current batch of media processed. Will check again in 1000ms 16:55:02.671 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HT0jiQLT98Y --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/56/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/22/71/2271789a78899b382eb743f1f11a99797f9b2397f7cb4bb8a1a62e66c1a5ff9d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:02.674 [debug] QUERY OK db=0.1ms idle=1253.0ms begin [] 16:55:02.676 [debug] QUERY OK source="media_items" db=1.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:54:55Z], "/downloads/Jeff Su/2023-11-28 This Simple Notes Management System Changed My Life!/This Simple Notes Management System Changed My Life! [HT0jiQLT98Y].mp4", "/downloads/Jeff Su/2023-11-28 This Simple Notes Management System Changed My Life!/This Simple Notes Management System Changed My Life! [HT0jiQLT98Y].info.json", "/downloads/Jeff Su/2023-11-28 This Simple Notes Management System Changed My Life!/This Simple Notes Management System Changed My Life! [HT0jiQLT98Y].nfo", "/downloads/Jeff Su/2023-11-28 This Simple Notes Management System Changed My Life!/This Simple Notes Management System Changed My Life! [HT0jiQLT98Y]-thumb.jpg", ~U[2026-04-23 14:55:02Z], 56] 16:55:02.677 [debug] QUERY OK source="media_metadata" db=1.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/56/metadata.json.gz", "/config/metadata/media_items/56/thumbnail.jpg", 56, ~U[2026-04-23 14:55:02Z], ~U[2026-04-23 14:55:02Z]] 16:55:02.678 [debug] QUERY OK db=0.5ms commit [] 16:55:02.681 [debug] QUERY OK source="media_items" db=2.1ms idle=1256.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [19626896, ~U[2026-04-23 14:55:02Z], 56] 16:55:02.682 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.683 [info] {"args":{"id":56},"id":60,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":28875366,"event":"job:stop","queue_time":796805889,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.692 [info] {"args":{"id":58},"id":62,"meta":{},"system_time":1776956102692106544,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.693 [debug] QUERY OK source="media_items" db=0.4ms idle=861.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" = ?) [58] 16:55:02.693 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.694 [debug] QUERY OK source="sources" db=0.4ms idle=14.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:02.694 [debug] QUERY OK source="media_profiles" db=0.4ms idle=13.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] 16:55:02.695 [debug] QUERY OK source="media_items" db=0.4ms idle=11.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 [58] 16:55:02.698 [info] {"args":{"id":58},"id":62,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3827,"event":"job:stop","queue_time":816689823,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.420 [notice] Handler :file_log switched from :async to :drop mode 16:55:02.706 [info] {"args":{"id":59},"id":63,"meta":{},"system_time":1776956102706392635,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.710 [debug] QUERY OK source="media_items" db=3.9ms idle=12.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" = ?) [59] 16:55:02.711 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.713 [debug] QUERY OK source="sources" db=1.6ms queue=0.2ms idle=16.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:02.714 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=18.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] 16:55:02.715 [debug] QUERY OK source="media_items" db=0.7ms idle=16.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 [59] 16:55:02.716 [info] {"args":{"id":59},"id":63,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":9404,"event":"job:stop","queue_time":807704865,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.723 [info] {"args":{"id":60},"id":64,"meta":{},"system_time":1776956102723551052,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.726 [debug] QUERY OK source="media_items" db=0.6ms queue=2.0ms idle=10.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" = ?) [60] 16:55:02.731 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.733 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=17.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:02.736 [debug] QUERY OK source="media_profiles" db=1.9ms queue=0.6ms idle=17.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] 16:55:02.737 [debug] QUERY OK source="media_items" db=0.8ms idle=20.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 [60] 16:55:02.738 [info] {"args":{"id":60},"id":64,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":14337,"event":"job:stop","queue_time":803721858,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.746 [info] {"args":{"id":61},"id":65,"meta":{},"system_time":1776956102746000188,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.748 [debug] QUERY OK source="media_items" db=2.0ms 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 WHERE (m0."id" = ?) [61] 16:55:02.749 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.749 [debug] QUERY OK source="sources" db=0.3ms queue=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" = ?) [1] 16:55:02.750 [debug] QUERY OK source="media_profiles" db=0.4ms idle=12.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] 16:55:02.751 [debug] QUERY OK source="media_items" db=0.4ms idle=12.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 [61] 16:55:02.752 [info] {"args":{"id":61},"id":65,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5773,"event":"job:stop","queue_time":799743884,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.760 [info] {"args":{"id":62},"id":66,"meta":{},"system_time":1776956102760588200,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.761 [debug] QUERY OK source="media_items" db=0.6ms idle=11.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [62] 16:55:02.762 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.763 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=12.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:02.764 [debug] QUERY OK source="media_profiles" db=0.8ms idle=12.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] 16:55:02.766 [debug] QUERY OK source="media_items" db=0.7ms idle=12.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 [62] 16:55:02.767 [info] {"args":{"id":62},"id":66,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5608,"event":"job:stop","queue_time":796758867,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.774 [info] {"args":{"id":63},"id":67,"meta":{},"system_time":1776956102774105139,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.774 [debug] QUERY OK source="media_items" db=0.2ms idle=11.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" = ?) [63] 16:55:02.775 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.775 [debug] QUERY OK source="sources" db=0.2ms idle=10.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:02.776 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.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] 16:55:02.776 [debug] QUERY OK source="media_items" db=0.3ms idle=9.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [63] 16:55:02.777 [info] {"args":{"id":63},"id":67,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2831,"event":"job:stop","queue_time":792772896,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.784 [info] {"args":{"id":64},"id":68,"meta":{},"system_time":1776956102784062011,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.784 [debug] QUERY OK source="media_items" db=0.3ms 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 WHERE (m0."id" = ?) [64] 16:55:02.785 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.785 [debug] QUERY OK source="sources" db=0.2ms idle=9.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:02.786 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:02.787 [debug] QUERY OK source="media_items" db=0.3ms idle=9.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [64] 16:55:02.787 [info] {"args":{"id":64},"id":68,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3134,"event":"job:stop","queue_time":788782861,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.799 [info] {"args":{"id":65},"id":69,"meta":{},"system_time":1776956102799305600,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.800 [debug] QUERY OK source="media_items" db=0.4ms idle=14.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" = ?) [65] 16:55:02.800 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.801 [debug] QUERY OK source="sources" db=0.2ms idle=14.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:02.801 [debug] QUERY OK source="media_profiles" db=0.4ms idle=14.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] 16:55:02.802 [debug] QUERY OK source="media_items" db=0.4ms idle=14.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 [65] 16:55:02.803 [info] {"args":{"id":65},"id":69,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3447,"event":"job:stop","queue_time":784793897,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.810 [info] {"args":{"id":66},"id":70,"meta":{},"system_time":1776956102810092909,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.811 [debug] QUERY OK source="media_items" db=1.0ms idle=9.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" = ?) [66] 16:55:02.812 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.815 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=11.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:02.816 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=13.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] 16:55:02.818 [debug] QUERY OK source="media_items" db=1.1ms idle=13.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 [66] 16:55:02.819 [info] {"args":{"id":66},"id":70,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8442,"event":"job:stop","queue_time":780808866,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.827 [info] {"args":{"id":67},"id":71,"meta":{},"system_time":1776956102827143852,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.828 [debug] QUERY OK source="media_items" db=1.0ms idle=12.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" = ?) [67] 16:55:02.829 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.831 [debug] QUERY OK source="sources" db=1.0ms 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" = ?) [1] 16:55:02.834 [debug] QUERY OK source="media_profiles" db=2.6ms idle=13.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:02.836 [debug] QUERY OK source="media_items" db=1.3ms idle=7.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [67] 16:55:02.837 [info] {"args":{"id":67},"id":71,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":9099,"event":"job:stop","queue_time":776825898,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.850 [info] {"args":{"id":68},"id":72,"meta":{},"system_time":1776956102849912668,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.851 [debug] QUERY OK source="media_items" db=1.4ms idle=17.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" = ?) [68] 16:55:02.852 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.853 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=18.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:02.853 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=17.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] 16:55:02.855 [debug] QUERY OK source="media_items" db=0.5ms idle=16.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 [68] 16:55:02.856 [info] {"args":{"id":68},"id":72,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5525,"event":"job:stop","queue_time":772838779,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.864 [info] {"args":{"id":69},"id":73,"meta":{},"system_time":1776956102864540302,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.865 [debug] QUERY OK source="media_items" db=0.4ms idle=11.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [69] 16:55:02.866 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.868 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms idle=12.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:02.868 [debug] QUERY OK source="media_profiles" db=0.2ms idle=13.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] 16:55:02.869 [debug] QUERY OK source="media_items" db=0.3ms idle=12.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 [69] 16:55:02.870 [info] {"args":{"id":69},"id":73,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5326,"event":"job:stop","queue_time":768862848,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.881 [info] {"args":{"id":70},"id":74,"meta":{},"system_time":1776956102880793209,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.881 [debug] QUERY OK source="media_items" db=0.4ms 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 WHERE (m0."id" = ?) [70] 16:55:02.882 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.882 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [1] 16:55:02.883 [debug] QUERY OK source="media_profiles" db=0.3ms idle=13.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] 16:55:02.884 [debug] QUERY OK source="media_items" db=0.3ms idle=13.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 [70] 16:55:02.884 [info] {"args":{"id":70},"id":74,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3414,"event":"job:stop","queue_time":763879407,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.892 [info] {"args":{"id":71},"id":75,"meta":{},"system_time":1776956102892079101,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.892 [debug] QUERY OK source="media_items" db=0.2ms idle=9.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [71] 16:55:02.893 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.893 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:02.894 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.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] 16:55:02.894 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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 [71] 16:55:02.895 [info] {"args":{"id":71},"id":75,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2894,"event":"job:stop","queue_time":759890864,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.903 [info] {"args":{"id":72},"id":76,"meta":{},"system_time":1776956102903173557,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.904 [debug] QUERY OK source="media_items" db=1.0ms idle=10.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" = ?) [72] 16:55:02.905 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.905 [debug] QUERY OK source="sources" db=0.2ms idle=11.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:02.906 [debug] QUERY OK source="media_profiles" db=0.4ms idle=11.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:02.907 [debug] QUERY OK source="media_items" db=0.3ms idle=11.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [72] 16:55:02.908 [info] {"args":{"id":72},"id":76,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4295,"event":"job:stop","queue_time":755901881,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.915 [info] {"args":{"id":73},"id":77,"meta":{},"system_time":1776956102915292663,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.917 [debug] QUERY OK source="media_items" db=1.6ms idle=10.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" = ?) [73] 16:55:02.918 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.922 [debug] QUERY OK source="sources" db=3.3ms queue=0.1ms idle=12.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:02.924 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.2ms idle=15.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:02.925 [debug] QUERY OK source="media_items" db=0.6ms idle=16.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [73] 16:55:02.926 [info] {"args":{"id":73},"id":77,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":10199,"event":"job:stop","queue_time":751913869,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.933 [info] {"args":{"id":74},"id":78,"meta":{},"system_time":1776956102933223477,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.934 [debug] QUERY OK source="media_items" db=0.4ms idle=11.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" = ?) [74] 16:55:02.934 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.935 [debug] QUERY OK source="sources" db=0.3ms idle=10.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:02.935 [debug] QUERY OK source="media_profiles" db=0.4ms idle=10.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:02.936 [debug] QUERY OK source="media_items" db=0.5ms idle=10.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [74] 16:55:02.937 [info] {"args":{"id":74},"id":78,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3779,"event":"job:stop","queue_time":745931890,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.945 [info] {"args":{"id":75},"id":79,"meta":{},"system_time":1776956102945120711,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.946 [debug] QUERY OK source="media_items" db=0.9ms idle=10.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" = ?) [75] 16:55:02.947 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.948 [debug] QUERY OK source="sources" db=1.0ms 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" = ?) [1] 16:55:02.949 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=11.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] 16:55:02.951 [debug] QUERY OK source="media_items" db=1.1ms idle=12.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 [75] 16:55:02.952 [info] {"args":{"id":75},"id":79,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6443,"event":"job:stop","queue_time":741943893,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.968 [info] {"args":{"id":76},"id":80,"meta":{},"system_time":1776956102967863693,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.969 [debug] QUERY OK source="media_items" db=1.0ms idle=20.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" = ?) [76] 16:55:02.969 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.971 [debug] QUERY OK source="sources" db=0.9ms idle=20.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:02.972 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=19.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] 16:55:02.974 [debug] QUERY OK source="media_items" db=1.0ms idle=20.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 [76] 16:55:02.977 [info] {"args":{"id":76},"id":80,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6423,"event":"job:stop","queue_time":738963277,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.990 [info] {"args":{"id":77},"id":81,"meta":{},"system_time":1776956102990353918,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:02.992 [debug] QUERY OK source="media_items" db=1.2ms idle=19.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" = ?) [77] 16:55:03.421 [notice] Handler :file_log switched from :drop to :sync mode 16:55:02.993 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:02.994 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=21.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:02.996 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=21.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] 16:55:02.998 [debug] QUERY OK source="media_items" db=1.6ms idle=19.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 [77] 16:55:03.000 [info] {"args":{"id":77},"id":81,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8655,"event":"job:stop","queue_time":734983887,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.008 [info] {"args":{"id":78},"id":82,"meta":{},"system_time":1776956103008124391,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.011 [debug] QUERY OK source="media_items" db=2.7ms idle=13.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" = ?) [78] 16:55:03.012 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.014 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=16.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.016 [debug] QUERY OK source="media_profiles" db=1.8ms queue=0.1ms idle=15.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] 16:55:03.018 [debug] QUERY OK source="media_items" db=1.0ms idle=16.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [78] 16:55:03.022 [info] {"args":{"id":78},"id":82,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":10171,"event":"job:stop","queue_time":731006885,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.031 [info] {"args":{"id":79},"id":83,"meta":{},"system_time":1776956103030913597,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.032 [debug] QUERY OK source="media_items" db=0.9ms idle=17.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" = ?) [79] 16:55:03.032 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.033 [debug] QUERY OK source="sources" db=0.5ms idle=16.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.035 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.5ms idle=15.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] 16:55:03.036 [debug] QUERY OK source="media_items" db=0.8ms idle=13.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 [79] 16:55:03.037 [info] {"args":{"id":79},"id":83,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5743,"event":"job:stop","queue_time":727027880,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.044 [info] {"args":{"id":80},"id":84,"meta":{},"system_time":1776956103044470853,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.046 [debug] QUERY OK source="media_items" db=1.1ms idle=11.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" = ?) [80] 16:55:03.047 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.048 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=12.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.050 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=12.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] 16:55:03.052 [debug] QUERY OK source="media_items" db=1.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 [80] 16:55:03.053 [info] {"args":{"id":80},"id":84,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7919,"event":"job:stop","queue_time":723043239,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.061 [info] {"args":{"id":81},"id":85,"meta":{},"system_time":1776956103061277279,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.063 [debug] QUERY OK source="media_items" db=1.3ms 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 WHERE (m0."id" = ?) [81] 16:55:03.063 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.064 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=13.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.065 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=12.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] 16:55:03.066 [debug] QUERY OK source="media_items" db=0.4ms idle=12.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [81] 16:55:03.067 [info] {"args":{"id":81},"id":85,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5301,"event":"job:stop","queue_time":718059889,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.074 [info] {"args":{"id":82},"id":86,"meta":{},"system_time":1776956103074113846,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.075 [debug] QUERY OK source="media_items" db=0.9ms idle=10.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" = ?) [82] 16:55:03.076 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.077 [debug] QUERY OK source="sources" db=0.9ms idle=10.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.078 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=11.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.080 [debug] QUERY OK source="media_items" db=1.2ms idle=11.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [82] 16:55:03.082 [info] {"args":{"id":82},"id":86,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6423,"event":"job:stop","queue_time":714072888,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.090 [info] {"args":{"id":83},"id":87,"meta":{},"system_time":1776956103090393606,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.091 [debug] QUERY OK source="media_items" db=0.5ms idle=13.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" = ?) [83] 16:55:03.092 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.092 [debug] QUERY OK source="sources" db=0.2ms queue=0.2ms idle=13.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.093 [debug] QUERY OK source="media_profiles" db=0.5ms idle=12.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] 16:55:03.095 [debug] QUERY OK source="media_items" db=1.5ms idle=11.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 [83] 16:55:03.096 [info] {"args":{"id":83},"id":87,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5309,"event":"job:stop","queue_time":710088890,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.103 [info] {"args":{"id":84},"id":88,"meta":{},"system_time":1776956103103163597,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.104 [debug] QUERY OK source="media_items" db=1.1ms idle=10.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" = ?) [84] 16:55:03.105 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.106 [debug] QUERY OK source="sources" db=0.4ms idle=11.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.106 [debug] QUERY OK source="media_profiles" db=0.5ms idle=10.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.107 [debug] QUERY OK source="media_items" db=0.6ms idle=10.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 [84] 16:55:03.109 [info] {"args":{"id":84},"id":88,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4851,"event":"job:stop","queue_time":706101887,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.116 [info] {"args":{"id":85},"id":89,"meta":{},"system_time":1776956103116370183,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.118 [debug] QUERY OK source="media_items" db=1.1ms idle=10.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [85] 16:55:03.120 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.121 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=14.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.123 [debug] QUERY OK source="media_profiles" db=1.8ms idle=13.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] 16:55:03.125 [debug] QUERY OK source="media_items" db=1.1ms idle=15.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 [85] 16:55:03.126 [info] {"args":{"id":85},"id":89,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":9261,"event":"job:stop","queue_time":702114864,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.134 [info] {"args":{"id":86},"id":90,"meta":{},"system_time":1776956103134065013,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.135 [debug] QUERY OK source="media_items" db=1.0ms 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 WHERE (m0."id" = ?) [86] 16:55:03.136 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.137 [debug] QUERY OK source="sources" db=1.0ms idle=12.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.139 [debug] QUERY OK source="media_profiles" db=1.1ms queue=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] 16:55:03.140 [debug] QUERY OK source="media_items" db=1.0ms idle=12.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 [86] 16:55:03.142 [info] {"args":{"id":86},"id":90,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6719,"event":"job:stop","queue_time":698132847,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.149 [info] {"args":{"id":87},"id":91,"meta":{},"system_time":1776956103149081998,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.150 [debug] QUERY OK source="media_items" db=0.3ms idle=11.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [87] 16:55:03.150 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.150 [debug] QUERY OK source="sources" db=0.3ms idle=11.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.151 [debug] QUERY OK source="media_profiles" db=0.4ms idle=10.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.152 [debug] QUERY OK source="media_items" db=0.4ms idle=9.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [87] 16:55:03.153 [info] {"args":{"id":87},"id":91,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3448,"event":"job:stop","queue_time":694147901,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.160 [info] {"args":{"id":88},"id":92,"meta":{},"system_time":1776956103160197958,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.161 [debug] QUERY OK source="media_items" db=0.3ms idle=9.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [88] 16:55:03.161 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.162 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=10.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.163 [debug] QUERY OK source="media_profiles" db=0.5ms idle=10.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.164 [debug] QUERY OK source="media_items" db=0.6ms idle=11.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [88] 16:55:03.166 [info] {"args":{"id":88},"id":92,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4814,"event":"job:stop","queue_time":690158957,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.173 [info] {"args":{"id":89},"id":93,"meta":{},"system_time":1776956103173265842,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.174 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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" = ?) [89] 16:55:03.174 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.175 [debug] QUERY OK source="sources" db=0.2ms idle=11.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.176 [debug] QUERY OK source="media_profiles" db=0.4ms idle=10.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.176 [debug] QUERY OK source="media_items" db=0.3ms idle=10.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [89] 16:55:03.177 [info] {"args":{"id":89},"id":93,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3612,"event":"job:stop","queue_time":685171976,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.185 [info] {"args":{"id":90},"id":94,"meta":{},"system_time":1776956103185110863,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.186 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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" = ?) [90] 16:55:03.186 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.187 [debug] QUERY OK source="sources" db=0.2ms idle=10.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.187 [debug] QUERY OK source="media_profiles" db=0.4ms idle=10.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.188 [debug] QUERY OK source="media_items" db=0.4ms idle=10.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [90] 16:55:03.189 [info] {"args":{"id":90},"id":94,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3662,"event":"job:stop","queue_time":681183891,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.197 [info] {"args":{"id":91},"id":95,"meta":{},"system_time":1776956103197116197,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.198 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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" = ?) [91] 16:55:03.198 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.199 [debug] QUERY OK source="sources" db=0.4ms idle=10.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.200 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=10.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] 16:55:03.204 [debug] QUERY OK source="media_items" db=3.3ms idle=11.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [91] 16:55:03.205 [info] {"args":{"id":91},"id":95,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7681,"event":"job:stop","queue_time":678195898,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.212 [info] {"args":{"id":92},"id":96,"meta":{},"system_time":1776956103212148155,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.213 [debug] QUERY OK source="media_items" db=1.0ms idle=13.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [92] 16:55:03.214 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.215 [debug] QUERY OK source="sources" db=1.2ms idle=13.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.216 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=11.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] 16:55:03.217 [debug] QUERY OK source="media_items" db=0.8ms idle=11.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [92] 16:55:03.218 [info] {"args":{"id":92},"id":96,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5923,"event":"job:stop","queue_time":674210890,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.226 [info] {"args":{"id":93},"id":97,"meta":{},"system_time":1776956103226085003,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.227 [debug] QUERY OK source="media_items" db=1.1ms idle=10.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" = ?) [93] 16:55:03.229 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.230 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=12.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.232 [debug] QUERY OK source="media_profiles" db=1.1ms idle=12.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] 16:55:03.233 [debug] QUERY OK source="media_items" db=1.2ms idle=13.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 [93] 16:55:03.235 [info] {"args":{"id":93},"id":97,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7907,"event":"job:stop","queue_time":667224882,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.242 [info] {"args":{"id":94},"id":98,"meta":{},"system_time":1776956103242126720,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.243 [debug] QUERY OK source="media_items" db=1.1ms idle=12.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" = ?) [94] 16:55:03.244 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.246 [debug] QUERY OK source="sources" db=1.0ms 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" = ?) [1] 16:55:03.247 [debug] QUERY OK source="media_profiles" db=1.1ms queue=0.1ms idle=12.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] 16:55:03.249 [debug] QUERY OK source="media_items" db=1.2ms idle=13.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 [94] 16:55:03.251 [info] {"args":{"id":94},"id":98,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7648,"event":"job:stop","queue_time":663240883,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.259 [info] {"args":{"id":95},"id":99,"meta":{},"system_time":1776956103259366809,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.261 [debug] QUERY OK source="media_items" db=1.1ms 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 WHERE (m0."id" = ?) [95] 16:55:03.267 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.268 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=19.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.270 [debug] QUERY OK source="media_profiles" db=1.0ms idle=19.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] 16:55:03.271 [debug] QUERY OK source="media_items" db=1.1ms idle=19.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 [95] 16:55:03.273 [info] {"args":{"id":95},"id":99,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":12516,"event":"job:stop","queue_time":657256885,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.281 [info] {"args":{"id":96},"id":100,"meta":{},"system_time":1776956103281452976,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.283 [debug] QUERY OK source="media_items" db=1.7ms 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 WHERE (m0."id" = ?) [96] 16:55:03.285 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.288 [debug] QUERY OK source="sources" db=3.0ms queue=0.1ms idle=15.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.289 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=17.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] 16:55:03.291 [debug] QUERY OK source="media_items" db=1.0ms idle=17.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 [96] 16:55:03.293 [info] {"args":{"id":96},"id":100,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":10162,"event":"job:stop","queue_time":654278885,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.301 [info] {"args":{"id":97},"id":101,"meta":{},"system_time":1776956103301064003,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.302 [debug] QUERY OK source="media_items" db=1.1ms 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 WHERE (m0."id" = ?) [97] 16:55:03.303 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.303 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=13.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.304 [debug] QUERY OK source="media_profiles" db=0.3ms idle=12.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] 16:55:03.305 [debug] QUERY OK source="media_items" db=0.4ms idle=11.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [97] 16:55:03.306 [info] {"args":{"id":97},"id":101,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4556,"event":"job:stop","queue_time":650299870,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.313 [info] {"args":{"id":98},"id":102,"meta":{},"system_time":1776956103313071551,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.314 [debug] QUERY OK source="media_items" db=0.6ms idle=9.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [98] 16:55:03.314 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.315 [debug] QUERY OK source="sources" db=0.2ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.315 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:55:03.316 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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 [98] 16:55:03.316 [info] {"args":{"id":98},"id":102,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3227,"event":"job:stop","queue_time":646311883,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.324 [info] {"args":{"id":99},"id":103,"meta":{},"system_time":1776956103324083164,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.325 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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" = ?) [99] 16:55:03.325 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.325 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.326 [debug] QUERY OK source="media_profiles" db=0.5ms idle=9.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] 16:55:03.327 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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 [99] 16:55:03.327 [info] {"args":{"id":99},"id":103,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3212,"event":"job:stop","queue_time":643322883,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.335 [info] {"args":{"id":100},"id":104,"meta":{},"system_time":1776956103335092848,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.336 [debug] QUERY OK source="media_items" db=0.4ms 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" = ?) [100] 16:55:03.336 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.337 [debug] QUERY OK source="sources" db=0.2ms idle=10.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.337 [debug] QUERY OK source="media_profiles" db=0.5ms idle=10.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] 16:55:03.338 [debug] QUERY OK source="media_items" db=0.5ms idle=10.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [100] 16:55:03.339 [info] {"args":{"id":100},"id":104,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3819,"event":"job:stop","queue_time":638333884,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.347 [info] {"args":{"id":101},"id":105,"meta":{},"system_time":1776956103347124213,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.348 [debug] QUERY OK source="media_items" db=1.1ms idle=10.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" = ?) [101] 16:55:03.350 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.351 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=12.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.353 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=13.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] 16:55:03.358 [debug] QUERY OK source="media_items" db=3.3ms queue=0.7ms idle=14.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 [101] 16:55:03.359 [info] {"args":{"id":101},"id":105,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":11418,"event":"job:stop","queue_time":634345889,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.367 [info] {"args":{"id":102},"id":106,"meta":{},"system_time":1776956103367140698,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.369 [debug] QUERY OK source="media_items" db=1.2ms idle=16.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" = ?) [102] 16:55:03.370 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.371 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=16.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.373 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=13.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] 16:55:03.374 [debug] QUERY OK source="media_items" db=0.9ms idle=13.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 [102] 16:55:03.376 [info] {"args":{"id":102},"id":106,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7737,"event":"job:stop","queue_time":630365885,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.383 [info] {"args":{"id":103},"id":107,"meta":{},"system_time":1776956103383110724,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.384 [debug] QUERY OK source="media_items" db=1.0ms idle=11.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [103] 16:55:03.385 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.386 [debug] QUERY OK source="sources" db=0.4ms idle=12.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.387 [debug] QUERY OK source="media_profiles" db=0.2ms idle=11.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.387 [debug] QUERY OK source="media_items" db=0.4ms idle=11.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [103] 16:55:03.391 [info] {"args":{"id":103},"id":107,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4885,"event":"job:stop","queue_time":626381884,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.399 [info] {"args":{"id":104},"id":108,"meta":{},"system_time":1776956103399062102,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.400 [debug] QUERY OK source="media_items" db=1.0ms 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 WHERE (m0."id" = ?) [104] 16:55:03.400 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.401 [debug] QUERY OK source="sources" db=0.3ms idle=13.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.403 [debug] QUERY OK source="media_profiles" db=1.7ms idle=13.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] 16:55:03.404 [debug] QUERY OK source="media_items" db=0.4ms idle=12.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [104] 16:55:03.404 [info] {"args":{"id":104},"id":108,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5401,"event":"job:stop","queue_time":622397861,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.412 [info] {"args":{"id":105},"id":109,"meta":{},"system_time":1776956103412079658,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.413 [debug] QUERY OK source="media_items" db=1.1ms idle=11.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" = ?) [105] 16:55:03.414 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.416 [debug] QUERY OK source="sources" db=1.0ms idle=11.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.417 [debug] QUERY OK source="media_profiles" db=1.1ms idle=12.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.419 [debug] QUERY OK source="media_items" db=1.1ms idle=13.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 [105] 16:55:03.428 [debug] Current batch of media processed. Will check again in 1000ms 16:55:03.429 [info] {"args":{"id":106},"id":110,"meta":{},"system_time":1776956103428892218,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.431 [debug] QUERY OK source="media_items" db=1.7ms idle=13.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [106] 16:55:03.431 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.433 [debug] QUERY OK source="sources" db=0.9ms idle=14.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.435 [debug] QUERY OK source="media_profiles" db=1.6ms queue=0.1ms idle=14.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] 16:55:03.436 [debug] QUERY OK source="media_items" db=0.8ms idle=14.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [106] 16:55:03.437 [info] {"args":{"id":106},"id":110,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7677,"event":"job:stop","queue_time":612426863,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.444 [info] {"args":{"id":107},"id":111,"meta":{},"system_time":1776956103444105225,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.445 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=11.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [107] 16:55:03.446 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.448 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=11.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.449 [debug] QUERY OK source="media_profiles" db=1.1ms idle=11.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.451 [debug] QUERY OK source="media_items" db=1.1ms idle=12.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 [107] 16:55:03.452 [info] {"args":{"id":107},"id":111,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7308,"event":"job:stop","queue_time":609442865,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.469 [info] {"args":{"id":108},"id":112,"meta":{},"system_time":1776956103468890116,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.469 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=21.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" = ?) [108] 16:55:03.471 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.475 [debug] QUERY OK source="sources" db=3.8ms queue=0.1ms idle=21.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.478 [debug] QUERY OK source="media_profiles" db=2.7ms idle=24.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] 16:55:03.479 [debug] QUERY OK source="media_items" db=0.8ms idle=26.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 [108] 16:55:03.480 [info] {"args":{"id":108},"id":112,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":10839,"event":"job:stop","queue_time":602458817,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.488 [info] {"args":{"id":109},"id":113,"meta":{},"system_time":1776956103488561195,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.490 [debug] QUERY OK source="media_items" db=1.3ms idle=13.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" = ?) [109] 16:55:03.491 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.493 [debug] QUERY OK source="sources" db=1.5ms 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" = ?) [1] 16:55:03.493 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=13.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] 16:55:03.494 [debug] QUERY OK source="media_items" db=0.4ms 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 [109] 16:55:03.495 [info] {"args":{"id":109},"id":113,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6100,"event":"job:stop","queue_time":598486843,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.502 [info] {"args":{"id":110},"id":114,"meta":{},"system_time":1776956103502115405,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.503 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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" = ?) [110] 16:55:03.503 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.504 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.504 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=9.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] 16:55:03.505 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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 [110] 16:55:03.505 [info] {"args":{"id":110},"id":114,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3321,"event":"job:stop","queue_time":593500803,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.513 [info] {"args":{"id":111},"id":115,"meta":{},"system_time":1776956103513182438,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.514 [debug] QUERY OK source="media_items" db=0.6ms idle=9.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" = ?) [111] 16:55:03.515 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.516 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=10.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.517 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=11.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] 16:55:03.519 [debug] QUERY OK source="media_items" db=0.6ms idle=12.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 [111] 16:55:03.521 [info] {"args":{"id":111},"id":115,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6010,"event":"job:stop","queue_time":588511836,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.529 [info] {"args":{"id":112},"id":116,"meta":{},"system_time":1776956103529177542,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.530 [debug] QUERY OK source="media_items" db=1.0ms 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 WHERE (m0."id" = ?) [112] 16:55:03.532 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.533 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=14.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.534 [debug] QUERY OK source="media_profiles" db=0.9ms idle=14.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] 16:55:03.536 [debug] QUERY OK source="media_items" db=0.9ms idle=13.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [112] 16:55:03.543 [info] {"args":{"id":112},"id":116,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6942,"event":"job:stop","queue_time":584527845,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.550 [info] {"args":{"id":113},"id":117,"meta":{},"system_time":1776956103550139805,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.551 [debug] QUERY OK source="media_items" db=1.1ms idle=17.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" = ?) [113] 16:55:03.552 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.553 [debug] QUERY OK source="sources" db=1.0ms idle=18.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.555 [debug] QUERY OK source="media_profiles" db=1.9ms idle=17.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] 16:55:03.556 [debug] QUERY OK source="media_items" db=0.6ms idle=12.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 [113] 16:55:03.558 [info] {"args":{"id":113},"id":117,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6955,"event":"job:stop","queue_time":580548807,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.565 [info] {"args":{"id":114},"id":118,"meta":{},"system_time":1776956103565195331,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.566 [debug] QUERY OK source="media_items" db=0.9ms idle=11.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [114] 16:55:03.567 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.568 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=11.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.569 [debug] QUERY OK source="media_profiles" db=0.5ms idle=11.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] 16:55:03.570 [debug] QUERY OK source="media_items" db=0.5ms idle=11.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [114] 16:55:03.571 [info] {"args":{"id":114},"id":118,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4936,"event":"job:stop","queue_time":576563827,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.578 [info] {"args":{"id":115},"id":119,"meta":{},"system_time":1776956103578003991,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.579 [debug] QUERY OK source="media_items" db=0.9ms idle=10.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" = ?) [115] 16:55:03.580 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.582 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=11.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.583 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=12.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] 16:55:03.585 [debug] QUERY OK source="media_items" db=0.9ms idle=12.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 [115] 16:55:03.587 [info] {"args":{"id":115},"id":119,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7327,"event":"job:stop","queue_time":572576859,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.595 [info] {"args":{"id":116},"id":120,"meta":{},"system_time":1776956103595149482,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.597 [debug] QUERY OK source="media_items" db=1.2ms idle=13.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [116] 16:55:03.598 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.599 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=14.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.600 [debug] QUERY OK source="media_profiles" db=0.2ms idle=14.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] 16:55:03.601 [debug] QUERY OK source="media_items" db=1.0ms idle=13.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 [116] 16:55:03.604 [info] {"args":{"id":116},"id":120,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6759,"event":"job:stop","queue_time":567593899,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.612 [info] {"args":{"id":117},"id":121,"meta":{},"system_time":1776956103612151844,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.613 [debug] QUERY OK source="media_items" db=0.9ms idle=12.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" = ?) [117] 16:55:03.615 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.616 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=14.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.617 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=14.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] 16:55:03.619 [debug] QUERY OK source="media_items" db=1.1ms idle=13.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 [117] 16:55:03.621 [info] {"args":{"id":117},"id":121,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7029,"event":"job:stop","queue_time":563610898,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.628 [info] {"args":{"id":118},"id":122,"meta":{},"system_time":1776956103628099357,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.630 [debug] QUERY OK source="media_items" db=1.3ms idle=12.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" = ?) [118] 16:55:03.631 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.632 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.634 [debug] QUERY OK source="media_profiles" db=1.2ms idle=14.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] 16:55:03.636 [debug] QUERY OK source="media_items" db=1.3ms idle=13.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 [118] 16:55:03.638 [info] {"args":{"id":118},"id":122,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8197,"event":"job:stop","queue_time":559626879,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.645 [info] {"args":{"id":119},"id":123,"meta":{},"system_time":1776956103644983582,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.646 [debug] QUERY OK source="media_items" db=1.3ms idle=12.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" = ?) [119] 16:55:03.648 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.649 [debug] QUERY OK source="sources" db=1.1ms idle=13.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.651 [debug] QUERY OK source="media_profiles" db=1.2ms 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] 16:55:03.652 [debug] QUERY OK source="media_items" db=1.2ms idle=13.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [119] 16:55:03.654 [info] {"args":{"id":119},"id":123,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7870,"event":"job:stop","queue_time":555643851,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.662 [info] {"args":{"id":120},"id":124,"meta":{},"system_time":1776956103662143478,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.664 [debug] QUERY OK source="media_items" db=1.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 WHERE (m0."id" = ?) [120] 16:55:03.665 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.667 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=15.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.668 [debug] QUERY OK source="media_profiles" db=0.9ms idle=14.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.669 [debug] QUERY OK source="media_items" db=0.8ms idle=14.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 [120] 16:55:03.670 [info] {"args":{"id":120},"id":124,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7606,"event":"job:stop","queue_time":551660889,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.677 [info] {"args":{"id":121},"id":125,"meta":{},"system_time":1776956103677044091,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.678 [debug] QUERY OK source="media_items" db=0.7ms idle=10.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" = ?) [121] 16:55:03.678 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.679 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=10.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.680 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=10.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.682 [debug] QUERY OK source="media_items" db=0.8ms idle=10.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [121] 16:55:03.683 [info] {"args":{"id":121},"id":125,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5070,"event":"job:stop","queue_time":546675871,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.690 [info] {"args":{"id":122},"id":126,"meta":{},"system_time":1776956103690293802,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.691 [debug] QUERY OK source="media_items" db=0.8ms idle=11.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" = ?) [122] 16:55:03.692 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.694 [debug] QUERY OK source="sources" db=1.6ms queue=0.1ms idle=12.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.696 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=13.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] 16:55:03.697 [debug] QUERY OK source="media_items" db=0.7ms 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 [122] 16:55:03.699 [info] {"args":{"id":122},"id":126,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7169,"event":"job:stop","queue_time":542688899,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.706 [info] {"args":{"id":123},"id":127,"meta":{},"system_time":1776956103706150273,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.707 [debug] QUERY OK source="media_items" db=0.6ms idle=11.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [123] 16:55:03.708 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.709 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=12.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.710 [debug] QUERY OK source="media_profiles" db=0.7ms idle=11.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.711 [debug] QUERY OK source="media_items" db=0.7ms idle=11.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 [123] 16:55:03.712 [info] {"args":{"id":123},"id":127,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5273,"event":"job:stop","queue_time":538704892,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.720 [info] {"args":{"id":124},"id":128,"meta":{},"system_time":1776956103719925148,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.721 [debug] QUERY OK source="media_items" db=0.9ms idle=11.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" = ?) [124] 16:55:03.721 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.724 [debug] QUERY OK source="sources" db=2.2ms idle=11.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.725 [debug] QUERY OK source="media_profiles" db=1.1ms idle=13.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] 16:55:03.726 [debug] QUERY OK source="media_items" db=0.9ms idle=13.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 [124] 16:55:03.728 [info] {"args":{"id":124},"id":128,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7129,"event":"job:stop","queue_time":534718848,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.736 [info] {"args":{"id":125},"id":129,"meta":{},"system_time":1776956103736033594,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.737 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=12.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" = ?) [125] 16:55:03.739 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.740 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=13.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.742 [debug] QUERY OK source="media_profiles" db=1.2ms idle=14.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] 16:55:03.744 [debug] QUERY OK source="media_items" db=1.2ms idle=13.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 [125] 16:55:03.745 [info] {"args":{"id":125},"id":129,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8104,"event":"job:stop","queue_time":529734869,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.753 [info] {"args":{"id":126},"id":130,"meta":{},"system_time":1776956103753228769,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.754 [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 WHERE (m0."id" = ?) [126] 16:55:03.755 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.756 [debug] QUERY OK source="sources" db=0.7ms 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" = ?) [1] 16:55:03.757 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=12.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] 16:55:03.758 [debug] QUERY OK source="media_items" db=1.0ms idle=12.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 [126] 16:55:03.761 [info] {"args":{"id":126},"id":130,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5670,"event":"job:stop","queue_time":526751900,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.768 [info] {"args":{"id":127},"id":131,"meta":{},"system_time":1776956103768156163,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.769 [debug] QUERY OK source="media_items" db=0.8ms idle=12.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" = ?) [127] 16:55:03.770 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.770 [debug] QUERY OK source="sources" db=0.3ms queue=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" = ?) [1] 16:55:03.771 [debug] QUERY OK source="media_profiles" db=0.5ms idle=12.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] 16:55:03.772 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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 [127] 16:55:03.773 [info] {"args":{"id":127},"id":131,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4464,"event":"job:stop","queue_time":522766883,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.781 [info] {"args":{"id":128},"id":132,"meta":{},"system_time":1776956103781076835,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.782 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=10.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" = ?) [128] 16:55:03.782 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.783 [debug] QUERY OK source="sources" db=0.3ms idle=11.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.784 [debug] QUERY OK source="media_profiles" db=0.4ms idle=11.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.784 [debug] QUERY OK source="media_items" db=0.3ms idle=10.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [128] 16:55:03.786 [info] {"args":{"id":128},"id":132,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3914,"event":"job:stop","queue_time":517779887,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.793 [info] {"args":{"id":129},"id":133,"meta":{},"system_time":1776956103793095570,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.794 [debug] QUERY OK source="media_items" db=0.7ms idle=10.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" = ?) [129] 16:55:03.795 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.795 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:55:03.796 [debug] QUERY OK source="media_profiles" db=0.4ms idle=11.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.797 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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 [129] 16:55:03.798 [info] {"args":{"id":129},"id":133,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4449,"event":"job:stop","queue_time":514791890,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.806 [info] {"args":{"id":130},"id":134,"meta":{},"system_time":1776956103806200817,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.807 [debug] QUERY OK source="media_items" db=0.5ms idle=10.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [130] 16:55:03.807 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.808 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:55:03.809 [debug] QUERY OK source="media_profiles" db=0.5ms idle=11.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.810 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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 [130] 16:55:03.811 [info] {"args":{"id":130},"id":134,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4189,"event":"job:stop","queue_time":510804900,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.819 [info] {"args":{"id":131},"id":135,"meta":{},"system_time":1776956103819075080,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.820 [debug] QUERY OK source="media_items" db=1.2ms idle=11.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" = ?) [131] 16:55:03.821 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.823 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=12.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.824 [debug] QUERY OK source="media_profiles" db=1.1ms idle=13.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.826 [debug] QUERY OK source="media_items" db=1.1ms 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 [131] 16:55:03.827 [info] {"args":{"id":131},"id":135,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7474,"event":"job:stop","queue_time":506817883,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.837 [info] {"args":{"id":132},"id":136,"meta":{},"system_time":1776956103836848570,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.842 [debug] QUERY OK source="media_items" db=4.3ms queue=0.4ms idle=12.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" = ?) [132] 16:55:03.842 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.844 [debug] QUERY OK source="sources" db=1.8ms idle=16.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.846 [debug] QUERY OK source="media_profiles" db=1.0ms idle=17.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] 16:55:03.847 [debug] QUERY OK source="media_items" db=0.6ms idle=9.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 [132] 16:55:03.849 [info] {"args":{"id":132},"id":136,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":10692,"event":"job:stop","queue_time":501833925,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.857 [info] {"args":{"id":133},"id":137,"meta":{},"system_time":1776956103857249363,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.859 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms 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 WHERE (m0."id" = ?) [133] 16:55:03.860 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.860 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=14.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.861 [debug] QUERY OK source="media_profiles" db=0.4ms 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] 16:55:03.862 [debug] QUERY OK source="media_items" db=0.4ms idle=12.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [133] 16:55:03.865 [info] {"args":{"id":133},"id":137,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5318,"event":"job:stop","queue_time":497855899,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.873 [info] {"args":{"id":134},"id":138,"meta":{},"system_time":1776956103873042652,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.874 [debug] QUERY OK source="media_items" db=1.3ms 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 WHERE (m0."id" = ?) [134] 16:55:03.876 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.878 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=15.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.880 [debug] QUERY OK source="media_profiles" db=1.2ms idle=16.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.881 [debug] QUERY OK source="media_items" db=1.1ms idle=15.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 [134] 16:55:03.884 [info] {"args":{"id":134},"id":138,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8764,"event":"job:stop","queue_time":493871874,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.892 [info] {"args":{"id":135},"id":139,"meta":{},"system_time":1776956103892174659,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.893 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=14.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" = ?) [135] 16:55:03.893 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.894 [debug] QUERY OK source="sources" db=0.3ms idle=14.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.895 [debug] QUERY OK source="media_profiles" db=0.2ms idle=13.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] 16:55:03.896 [debug] QUERY OK source="media_items" db=0.8ms idle=10.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 [135] 16:55:03.897 [info] {"args":{"id":135},"id":139,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4236,"event":"job:stop","queue_time":489890894,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.904 [info] {"args":{"id":136},"id":140,"meta":{},"system_time":1776956103904027995,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.906 [debug] QUERY OK source="media_items" db=1.4ms idle=10.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" = ?) [136] 16:55:03.907 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.909 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=12.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.911 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.1ms idle=13.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.913 [debug] QUERY OK source="media_items" db=1.5ms idle=14.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 [136] 16:55:03.915 [info] {"args":{"id":136},"id":140,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":9362,"event":"job:stop","queue_time":485902874,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.922 [info] {"args":{"id":137},"id":141,"meta":{},"system_time":1776956103922142809,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.923 [debug] QUERY OK source="media_items" db=1.1ms 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 WHERE (m0."id" = ?) [137] 16:55:03.924 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.925 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=13.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.926 [debug] QUERY OK source="media_profiles" db=0.7ms idle=12.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] 16:55:03.928 [debug] QUERY OK source="media_items" db=1.1ms idle=11.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 [137] 16:55:03.928 [info] {"args":{"id":137},"id":141,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6083,"event":"job:stop","queue_time":480920858,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.936 [info] {"args":{"id":138},"id":142,"meta":{},"system_time":1776956103936197271,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.937 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=11.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" = ?) [138] 16:55:03.938 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.939 [debug] QUERY OK source="sources" db=0.6ms queue=0.2ms idle=11.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:03.940 [debug] QUERY OK source="media_profiles" db=0.7ms idle=11.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.941 [debug] QUERY OK source="media_items" db=0.5ms idle=12.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 [138] 16:55:03.942 [info] {"args":{"id":138},"id":142,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5386,"event":"job:stop","queue_time":477934887,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.949 [info] {"args":{"id":139},"id":143,"meta":{},"system_time":1776956103949017702,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.950 [debug] QUERY OK source="media_items" db=0.6ms idle=10.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" = ?) [139] 16:55:03.951 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.952 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=11.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.953 [debug] QUERY OK source="media_profiles" db=0.9ms idle=11.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] 16:55:03.955 [debug] QUERY OK source="media_items" db=0.7ms idle=12.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [139] 16:55:03.956 [info] {"args":{"id":139},"id":143,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6224,"event":"job:stop","queue_time":472947863,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.963 [info] {"args":{"id":140},"id":144,"meta":{},"system_time":1776956103963204097,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.964 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=11.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" = ?) [140] 16:55:03.965 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.966 [debug] QUERY OK source="sources" db=0.6ms idle=11.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.967 [debug] QUERY OK source="media_profiles" db=0.4ms idle=11.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:03.968 [debug] QUERY OK source="media_items" db=0.8ms idle=11.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [140] 16:55:03.970 [info] {"args":{"id":140},"id":144,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5339,"event":"job:stop","queue_time":468961878,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.977 [info] {"args":{"id":141},"id":145,"meta":{},"system_time":1776956103977100110,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.979 [debug] QUERY OK source="media_items" db=1.3ms idle=11.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" = ?) [141] 16:55:03.980 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.981 [debug] QUERY OK source="sources" db=1.0ms queue=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" = ?) [1] 16:55:03.983 [debug] QUERY OK source="media_profiles" db=1.2ms queue=0.1ms 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] 16:55:03.985 [debug] QUERY OK source="media_items" db=1.1ms idle=13.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 [141] 16:55:03.986 [info] {"args":{"id":141},"id":145,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8250,"event":"job:stop","queue_time":464975882,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.994 [info] {"args":{"id":142},"id":146,"meta":{},"system_time":1776956103994126473,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:03.995 [debug] QUERY OK source="media_items" db=1.0ms idle=12.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" = ?) [142] 16:55:03.996 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:03.998 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=13.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:03.999 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms 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] 16:55:04.002 [debug] QUERY OK source="media_items" db=2.3ms idle=13.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [142] 16:55:04.004 [info] {"args":{"id":142},"id":146,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8674,"event":"job:stop","queue_time":460992896,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.011 [info] {"args":{"id":143},"id":147,"meta":{},"system_time":1776956104011103423,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.012 [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 WHERE (m0."id" = ?) [143] 16:55:04.012 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.013 [debug] QUERY OK source="sources" db=0.8ms queue=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" = ?) [1] 16:55:04.014 [debug] QUERY OK source="media_profiles" db=0.5ms idle=11.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] 16:55:04.015 [debug] QUERY OK source="media_items" db=0.6ms idle=10.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 [143] 16:55:04.017 [info] {"args":{"id":143},"id":147,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4518,"event":"job:stop","queue_time":458009877,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.024 [info] {"args":{"id":144},"id":148,"meta":{},"system_time":1776956104024053489,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.024 [debug] QUERY OK source="media_items" db=0.3ms idle=10.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [144] 16:55:04.025 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.025 [debug] QUERY OK source="sources" db=0.3ms idle=10.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.026 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=10.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:04.027 [debug] QUERY OK source="media_items" db=0.5ms idle=9.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [144] 16:55:04.027 [info] {"args":{"id":144},"id":148,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3097,"event":"job:stop","queue_time":454022877,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.035 [info] {"args":{"id":145},"id":149,"meta":{},"system_time":1776956104035081659,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.036 [debug] QUERY OK source="media_items" db=0.6ms idle=9.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" = ?) [145] 16:55:04.036 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.037 [debug] QUERY OK source="sources" db=0.2ms idle=10.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:04.037 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=10.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:04.038 [debug] QUERY OK source="media_items" db=0.5ms idle=10.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [145] 16:55:04.039 [info] {"args":{"id":145},"id":149,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3862,"event":"job:stop","queue_time":450033896,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.046 [info] {"args":{"id":146},"id":150,"meta":{},"system_time":1776956104046179771,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.047 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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" = ?) [146] 16:55:04.047 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.048 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=9.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.048 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:04.049 [debug] QUERY OK source="media_items" db=0.5ms idle=9.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 [146] 16:55:04.050 [info] {"args":{"id":146},"id":150,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3442,"event":"job:stop","queue_time":446044877,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.058 [info] {"args":{"id":147},"id":151,"meta":{},"system_time":1776956104058223638,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.059 [debug] QUERY OK source="media_items" db=0.8ms idle=10.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" = ?) [147] 16:55:04.060 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.062 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=12.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:04.063 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=13.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] 16:55:04.065 [debug] QUERY OK source="media_items" db=0.9ms idle=13.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 [147] 16:55:04.065 [info] {"args":{"id":147},"id":151,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6933,"event":"job:stop","queue_time":441056889,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.073 [info] {"args":{"id":148},"id":152,"meta":{},"system_time":1776956104073147740,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.075 [debug] QUERY OK source="media_items" db=1.2ms idle=11.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" = ?) [148] 16:55:04.076 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.077 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=12.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:04.078 [debug] QUERY OK source="media_profiles" db=0.8ms idle=12.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] 16:55:04.079 [debug] QUERY OK source="media_items" db=0.7ms idle=13.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 [148] 16:55:04.080 [info] {"args":{"id":148},"id":152,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6624,"event":"job:stop","queue_time":436071901,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.088 [info] {"args":{"id":149},"id":153,"meta":{},"system_time":1776956104088180189,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.093 [debug] QUERY OK source="media_items" db=2.3ms queue=2.0ms idle=11.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [149] 16:55:04.093 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.094 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=15.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.094 [debug] QUERY OK source="media_profiles" db=0.2ms idle=14.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] 16:55:04.096 [debug] QUERY OK source="media_items" db=0.8ms idle=14.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [149] 16:55:04.096 [info] {"args":{"id":149},"id":153,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8202,"event":"job:stop","queue_time":432086888,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.104 [info] {"args":{"id":150},"id":154,"meta":{},"system_time":1776956104104072119,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.105 [debug] QUERY OK source="media_items" db=1.2ms idle=10.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" = ?) [150] 16:55:04.106 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.106 [debug] QUERY OK source="sources" db=0.5ms idle=11.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.117 [debug] QUERY OK source="media_profiles" db=10.2ms idle=10.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] 16:55:04.119 [debug] QUERY OK source="media_items" db=1.1ms idle=21.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 [150] 16:55:04.120 [info] {"args":{"id":150},"id":154,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":15147,"event":"job:stop","queue_time":428102886,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.127 [info] {"args":{"id":151},"id":155,"meta":{},"system_time":1776956104127078951,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.127 [debug] QUERY OK source="media_items" db=0.2ms idle=20.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" = ?) [151] 16:55:04.128 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.129 [debug] QUERY OK source="sources" db=0.3ms idle=11.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:04.129 [debug] QUERY OK source="media_profiles" db=0.5ms idle=10.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] 16:55:04.131 [debug] QUERY OK source="media_items" db=0.7ms 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 [151] 16:55:04.131 [info] {"args":{"id":151},"id":155,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4035,"event":"job:stop","queue_time":424125886,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.146 [info] {"args":{"id":152},"id":156,"meta":{},"system_time":1776956104145844104,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.147 [debug] QUERY OK source="media_items" db=1.0ms idle=17.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [152] 16:55:04.148 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.148 [debug] QUERY OK source="sources" db=0.4ms idle=18.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.149 [debug] QUERY OK source="media_profiles" db=0.5ms idle=18.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] 16:55:04.150 [debug] QUERY OK source="media_items" db=0.5ms 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 [152] 16:55:04.151 [info] {"args":{"id":152},"id":156,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4812,"event":"job:stop","queue_time":419144606,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.158 [info] {"args":{"id":153},"id":157,"meta":{},"system_time":1776956104158208076,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.159 [debug] QUERY OK source="media_items" db=0.8ms 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" = ?) [153] 16:55:04.160 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.161 [debug] QUERY OK source="sources" db=0.5ms idle=11.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.162 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=11.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:04.163 [debug] QUERY OK source="media_items" db=0.5ms idle=11.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [153] 16:55:04.165 [info] {"args":{"id":153},"id":157,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5640,"event":"job:stop","queue_time":416156944,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.172 [info] {"args":{"id":154},"id":158,"meta":{},"system_time":1776956104172045930,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.173 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=10.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" = ?) [154] 16:55:04.174 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.176 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=11.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:04.178 [debug] QUERY OK source="media_profiles" db=2.2ms idle=12.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] 16:55:04.181 [debug] QUERY OK source="media_items" db=1.8ms idle=14.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [154] 16:55:04.182 [info] {"args":{"id":154},"id":158,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":9450,"event":"job:stop","queue_time":412170881,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.189 [info] {"args":{"id":155},"id":159,"meta":{},"system_time":1776956104189024820,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.190 [debug] QUERY OK source="media_items" db=0.5ms idle=13.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [155] 16:55:04.190 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.190 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=11.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:04.191 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.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] 16:55:04.192 [debug] QUERY OK source="media_items" db=0.5ms idle=9.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 [155] 16:55:04.193 [info] {"args":{"id":155},"id":159,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3325,"event":"job:stop","queue_time":408187876,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.199 [info] {"args":{"id":156},"id":160,"meta":{},"system_time":1776956104199763634,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.200 [debug] QUERY OK source="media_items" db=0.2ms idle=9.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" = ?) [156] 16:55:04.200 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.201 [debug] QUERY OK source="sources" db=0.2ms idle=9.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.201 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:04.202 [debug] QUERY OK source="media_items" db=0.3ms idle=8.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [156] 16:55:04.202 [info] {"args":{"id":156},"id":160,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2634,"event":"job:stop","queue_time":404198838,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.209 [info] {"args":{"id":157},"id":161,"meta":{},"system_time":1776956104209822646,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.210 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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" = ?) [157] 16:55:04.211 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.211 [debug] QUERY OK source="sources" db=0.3ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.212 [debug] QUERY OK source="media_profiles" db=0.4ms idle=9.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] 16:55:04.223 [debug] QUERY OK source="media_items" db=10.1ms idle=10.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 [157] 16:55:04.225 [info] {"args":{"id":157},"id":161,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":13410,"event":"job:stop","queue_time":401208836,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.232 [info] {"args":{"id":158},"id":162,"meta":{},"system_time":1776956104231923572,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.232 [debug] QUERY OK source="media_items" db=0.5ms idle=20.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" = ?) [158] 16:55:04.233 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.234 [debug] QUERY OK source="sources" db=0.3ms idle=21.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:04.235 [debug] QUERY OK source="media_profiles" db=0.4ms idle=11.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] 16:55:04.235 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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 [158] 16:55:04.236 [info] {"args":{"id":158},"id":162,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4033,"event":"job:stop","queue_time":396230837,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.244 [info] {"args":{"id":159},"id":163,"meta":{},"system_time":1776956104243943635,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.245 [debug] QUERY OK source="media_items" db=1.2ms idle=9.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" = ?) [159] 16:55:04.246 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.247 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=11.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:04.248 [debug] QUERY OK source="media_profiles" db=0.7ms idle=12.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:04.249 [debug] QUERY OK source="media_items" db=0.3ms idle=12.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 [159] 16:55:04.250 [info] {"args":{"id":159},"id":163,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5769,"event":"job:stop","queue_time":392242818,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.257 [info] {"args":{"id":160},"id":164,"meta":{},"system_time":1776956104256884345,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.257 [debug] QUERY OK source="media_items" db=0.2ms idle=9.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" = ?) [160] 16:55:04.258 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.259 [debug] QUERY OK source="sources" db=0.9ms idle=9.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:04.259 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:55:04.260 [debug] QUERY OK source="media_items" db=0.5ms idle=9.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [160] 16:55:04.261 [info] {"args":{"id":160},"id":164,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3875,"event":"job:stop","queue_time":388255848,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.268 [info] {"args":{"id":161},"id":165,"meta":{},"system_time":1776956104267994627,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.269 [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 WHERE (m0."id" = ?) [161] 16:55:04.270 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.270 [debug] QUERY OK source="sources" db=0.2ms idle=10.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.271 [debug] QUERY OK source="media_profiles" db=0.5ms idle=10.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:04.272 [debug] QUERY OK source="media_items" db=0.5ms idle=10.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 [161] 16:55:04.273 [info] {"args":{"id":161},"id":165,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4669,"event":"job:stop","queue_time":385266836,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.280 [info] {"args":{"id":162},"id":166,"meta":{},"system_time":1776956104279904611,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.280 [debug] QUERY OK source="media_items" db=0.2ms idle=9.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" = ?) [162] 16:55:04.280 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.281 [debug] QUERY OK source="sources" db=0.2ms idle=9.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:04.281 [debug] QUERY OK source="media_profiles" db=0.3ms idle=8.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] 16:55:04.282 [debug] QUERY OK source="media_items" db=0.4ms idle=9.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [162] 16:55:04.283 [info] {"args":{"id":162},"id":166,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2843,"event":"job:stop","queue_time":380278822,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.290 [info] {"args":{"id":163},"id":167,"meta":{},"system_time":1776956104290021968,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.290 [debug] QUERY OK source="media_items" db=0.3ms 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 WHERE (m0."id" = ?) [163] 16:55:04.291 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.292 [debug] QUERY OK source="sources" db=0.2ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.292 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:55:04.293 [debug] QUERY OK source="media_items" db=0.6ms 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 [163] 16:55:04.294 [info] {"args":{"id":163},"id":167,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3898,"event":"job:stop","queue_time":377288832,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.301 [info] {"args":{"id":164},"id":168,"meta":{},"system_time":1776956104300934962,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.301 [debug] QUERY OK source="media_items" db=0.2ms idle=9.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" = ?) [164] 16:55:04.302 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.303 [debug] QUERY OK source="sources" db=0.8ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.304 [debug] QUERY OK source="media_profiles" db=0.6ms idle=10.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:04.305 [debug] QUERY OK source="media_items" db=0.6ms idle=10.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [164] 16:55:04.306 [info] {"args":{"id":164},"id":168,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4901,"event":"job:stop","queue_time":372299841,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.313 [info] {"args":{"id":165},"id":169,"meta":{},"system_time":1776956104313110663,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.314 [debug] QUERY OK source="media_items" db=0.9ms 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" = ?) [165] 16:55:04.315 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.317 [debug] QUERY OK source="sources" db=1.6ms idle=11.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:04.318 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=11.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:04.320 [debug] QUERY OK source="media_items" db=1.2ms idle=12.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 [165] 16:55:04.320 [info] {"args":{"id":165},"id":169,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7045,"event":"job:stop","queue_time":367311861,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.328 [info] {"args":{"id":166},"id":170,"meta":{},"system_time":1776956104328264519,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.329 [debug] QUERY OK source="media_items" db=0.5ms idle=11.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" = ?) [166] 16:55:04.329 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.330 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=11.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.332 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.2ms idle=11.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] 16:55:04.333 [debug] QUERY OK source="media_items" db=0.4ms idle=11.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [166] 16:55:04.334 [info] {"args":{"id":166},"id":170,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4873,"event":"job:stop","queue_time":363326874,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.348 [info] {"args":{"id":167},"id":171,"meta":{},"system_time":1776956104347414392,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.349 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=17.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" = ?) [167] 16:55:04.350 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.351 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=18.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.352 [debug] QUERY OK source="media_profiles" db=1.0ms idle=18.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] 16:55:04.354 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=19.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 [167] 16:55:04.356 [info] {"args":{"id":167},"id":171,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7028,"event":"job:stop","queue_time":359339859,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.364 [info] {"args":{"id":168},"id":172,"meta":{},"system_time":1776956104364176151,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:04.365 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=13.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" = ?) [168] 16:55:04.367 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:04.368 [debug] QUERY OK source="sources" db=0.4ms queue=0.2ms idle=14.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.369 [debug] QUERY OK source="media_profiles" db=0.4ms idle=14.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] 16:55:04.370 [debug] QUERY OK source="media_items" db=0.4ms idle=13.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 [168] 16:55:04.429 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 28, "filename" => "/downloads/Jeff Su/2024-02-22 Why my colleagues hate me at #work/Why my colleagues hate me at #work [mvabtTYqimA].mp4", "id" => "mvabtTYqimA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/mvabtTYqimA", "playlist_index" => 63, "timestamp" => 1708608216, "title" => "Why my colleagues hate me at #work", "upload_date" => "20240222"} 16:55:04.429 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=63.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:04.430 [debug] QUERY OK source="sources" db=0.2ms idle=62.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:04.431 [debug] QUERY OK source="media_items" db=1.1ms idle=61.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-22 13:23:36Z], 1] 16:55:04.844 [debug] QUERY OK source="media_items" db=1.1ms idle=472.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Why my colleagues hate me at #work", "89a685a3-1b82-4f8a-8661-8a86141ac619", false, "mvabtTYqimA", 1, [], 28, false, "https://www.youtube.com/shorts/mvabtTYqimA", 63, "/downloads/Jeff Su/2024-02-22 Why my colleagues hate me at #work/Why my colleagues hate me at #work [mvabtTYqimA].mp4", false, true, 99, ~U[2024-02-22 13:23:36Z], ~U[2026-04-23 14:55:04Z], ~U[2026-04-23 14:55:04Z], "", "Why my colleagues hate me at #work", "mvabtTYqimA", 1, 28, false, "https://www.youtube.com/shorts/mvabtTYqimA", "/downloads/Jeff Su/2024-02-22 Why my colleagues hate me at #work/Why my colleagues hate me at #work [mvabtTYqimA].mp4", true, ~U[2024-02-22 13:23:36Z]] 16:55:04.844 [debug] QUERY OK source="sources" db=0.2ms idle=414.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:05.337 [debug] QUERY OK source="media_profiles" db=492.4ms idle=413.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] 16:55:05.337 [info] {"args":{"id":168},"id":172,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6222,"event":"job:stop","queue_time":355362888,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:05.340 [debug] QUERY OK source="media_items" db=2.0ms idle=493.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 [251] 16:55:05.340 [debug] Current batch of media processed. Will check again in 1000ms 16:55:05.644 [info] {"args":{"id":169},"id":173,"meta":{},"system_time":1776956105644613280,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:05.651 [debug] QUERY OK source="media_items" db=6.5ms idle=307.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" = ?) [169] 16:55:05.652 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:05.653 [debug] QUERY OK source="sources" db=0.5ms idle=314.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:05.654 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=314.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] 16:55:05.655 [debug] QUERY OK source="media_items" db=0.8ms idle=314.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 [169] 16:55:06.343 [debug] Current batch of media processed. Will check again in 1000ms 16:55:06.414 [info] {"args":{"id":169},"id":173,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":11174,"event":"job:stop","queue_time":353343829,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.422 [info] {"args":{"id":170},"id":174,"meta":{},"system_time":1776956106422237434,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.424 [debug] QUERY OK source="media_items" db=1.1ms idle=768.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" = ?) [170] 16:55:06.424 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.426 [debug] QUERY OK source="sources" db=1.7ms queue=0.1ms idle=769.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:06.427 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=82.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:06.429 [debug] QUERY OK source="media_items" db=1.4ms idle=13.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 [170] 16:55:06.430 [info] {"args":{"id":170},"id":174,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7767,"event":"job:stop","queue_time":350420890,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.438 [info] {"args":{"id":171},"id":175,"meta":{},"system_time":1776956106438228810,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.440 [debug] QUERY OK source="media_items" db=1.1ms idle=12.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" = ?) [171] 16:55:06.440 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.441 [debug] QUERY OK source="sources" db=0.3ms queue=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" = ?) [1] 16:55:06.442 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=11.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:06.443 [debug] QUERY OK source="media_items" db=0.5ms idle=12.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 [171] 16:55:06.445 [info] {"args":{"id":171},"id":175,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5295,"event":"job:stop","queue_time":346436896,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.453 [info] {"args":{"id":172},"id":176,"meta":{},"system_time":1776956106453116321,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.457 [debug] QUERY OK source="media_items" db=3.2ms idle=12.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" = ?) [172] 16:55:06.460 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.463 [debug] QUERY OK source="sources" db=0.9ms queue=1.6ms idle=18.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:06.464 [debug] QUERY OK source="media_profiles" db=0.7ms idle=20.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] 16:55:06.466 [debug] QUERY OK source="media_items" db=0.6ms idle=19.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 [172] 16:55:06.466 [info] {"args":{"id":172},"id":176,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":13014,"event":"job:stop","queue_time":342451862,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.474 [info] {"args":{"id":173},"id":177,"meta":{},"system_time":1776956106474149882,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.476 [debug] QUERY OK source="media_items" db=1.7ms idle=11.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" = ?) [173] 16:55:06.477 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.478 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:55:06.481 [debug] QUERY OK source="media_profiles" db=2.6ms idle=12.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] 16:55:06.483 [debug] QUERY OK source="media_items" db=0.5ms idle=15.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 [173] 16:55:06.484 [info] {"args":{"id":173},"id":177,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":9202,"event":"job:stop","queue_time":337472864,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.492 [info] {"args":{"id":174},"id":178,"meta":{},"system_time":1776956106492074291,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.493 [debug] QUERY OK source="media_items" db=0.9ms idle=14.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" = ?) [174] 16:55:06.495 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.496 [debug] QUERY OK source="sources" db=0.4ms idle=14.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:06.497 [debug] QUERY OK source="media_profiles" db=0.9ms idle=13.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] 16:55:06.499 [debug] QUERY OK source="media_items" db=1.0ms 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 [174] 16:55:06.499 [info] {"args":{"id":174},"id":178,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7113,"event":"job:stop","queue_time":334490883,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.507 [info] {"args":{"id":175},"id":179,"meta":{},"system_time":1776956106507045567,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.508 [debug] QUERY OK source="media_items" db=0.6ms idle=11.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [175] 16:55:06.509 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.510 [debug] QUERY OK source="sources" db=0.4ms idle=11.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:06.510 [debug] QUERY OK source="media_profiles" db=0.4ms idle=11.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:06.512 [debug] QUERY OK source="media_items" db=1.0ms idle=11.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 [175] 16:55:06.513 [info] {"args":{"id":175},"id":179,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5345,"event":"job:stop","queue_time":329505875,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.521 [info] {"args":{"id":176},"id":180,"meta":{},"system_time":1776956106521077644,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.521 [debug] QUERY OK source="media_items" db=0.2ms idle=11.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" = ?) [176] 16:55:06.522 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.523 [debug] QUERY OK source="sources" db=0.3ms idle=12.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:06.524 [debug] QUERY OK source="media_profiles" db=0.2ms idle=11.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] 16:55:06.524 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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 [176] 16:55:06.525 [info] {"args":{"id":176},"id":180,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3851,"event":"job:stop","queue_time":325519881,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.532 [info] {"args":{"id":177},"id":181,"meta":{},"system_time":1776956106532106330,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.533 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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" = ?) [177] 16:55:06.534 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.534 [debug] QUERY OK source="sources" db=0.2ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:06.535 [debug] QUERY OK source="media_profiles" db=0.3ms idle=10.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] 16:55:06.536 [debug] QUERY OK source="media_items" db=0.3ms idle=10.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [177] 16:55:06.537 [info] {"args":{"id":177},"id":181,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4046,"event":"job:stop","queue_time":322530883,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.544 [info] {"args":{"id":178},"id":182,"meta":{},"system_time":1776956106544420559,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.546 [debug] QUERY OK source="media_items" db=1.3ms idle=10.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" = ?) [178] 16:55:06.547 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.549 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=12.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:06.551 [debug] QUERY OK source="media_profiles" db=1.8ms queue=0.1ms idle=13.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] 16:55:06.553 [debug] QUERY OK source="media_items" db=1.2ms idle=15.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 [178] 16:55:06.554 [info] {"args":{"id":178},"id":182,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":9293,"event":"job:stop","queue_time":318542946,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.561 [info] {"args":{"id":179},"id":183,"meta":{},"system_time":1776956106561063162,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.562 [debug] QUERY OK source="media_items" db=0.3ms idle=12.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" = ?) [179] 16:55:06.571 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.572 [debug] QUERY OK source="sources" db=0.3ms idle=20.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:06.572 [debug] QUERY OK source="media_profiles" db=0.2ms idle=18.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] 16:55:06.573 [debug] QUERY OK source="media_items" db=0.3ms 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 [179] 16:55:06.573 [info] {"args":{"id":179},"id":183,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":12514,"event":"job:stop","queue_time":314559850,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.581 [info] {"args":{"id":180},"id":184,"meta":{},"system_time":1776956106581031730,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.582 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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" = ?) [180] 16:55:06.582 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.583 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=9.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:06.583 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:06.584 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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 [180] 16:55:06.585 [info] {"args":{"id":180},"id":184,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3665,"event":"job:stop","queue_time":310579856,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.592 [info] {"args":{"id":181},"id":185,"meta":{},"system_time":1776956106592132985,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.593 [debug] QUERY OK source="media_items" db=1.1ms idle=9.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" = ?) [181] 16:55:06.594 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.594 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=10.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:06.595 [debug] QUERY OK source="media_profiles" db=0.7ms idle=10.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:06.598 [debug] QUERY OK source="media_items" db=1.6ms idle=11.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [181] 16:55:06.602 [info] {"args":{"id":181},"id":185,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6040,"event":"job:stop","queue_time":305590863,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.609 [info] {"args":{"id":182},"id":186,"meta":{},"system_time":1776956106609365859,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.610 [debug] QUERY OK source="media_items" db=0.9ms idle=14.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" = ?) [182] 16:55:06.611 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.612 [debug] QUERY OK source="sources" db=0.6ms queue=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" = ?) [1] 16:55:06.613 [debug] QUERY OK source="media_profiles" db=0.5ms idle=14.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] 16:55:06.614 [debug] QUERY OK source="media_items" db=0.3ms queue=0.2ms idle=11.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 [182] 16:55:06.614 [info] {"args":{"id":182},"id":186,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5028,"event":"job:stop","queue_time":300607878,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.622 [info] {"args":{"id":183},"id":187,"meta":{},"system_time":1776956106622026548,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.623 [debug] QUERY OK source="media_items" db=0.9ms idle=10.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" = ?) [183] 16:55:06.623 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.625 [debug] QUERY OK source="sources" db=0.3ms queue=0.8ms idle=10.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:06.625 [debug] QUERY OK source="media_profiles" db=0.2ms idle=11.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:06.626 [debug] QUERY OK source="media_items" db=0.5ms idle=11.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [183] 16:55:06.628 [info] {"args":{"id":183},"id":187,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4843,"event":"job:stop","queue_time":296620879,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.635 [info] {"args":{"id":184},"id":188,"meta":{},"system_time":1776956106635055271,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.636 [debug] QUERY OK source="media_items" db=0.5ms idle=10.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" = ?) [184] 16:55:06.636 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.637 [debug] QUERY OK source="sources" db=0.3ms idle=10.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:06.638 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=10.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:06.639 [debug] QUERY OK source="media_items" db=0.5ms idle=10.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [184] 16:55:06.640 [info] {"args":{"id":184},"id":188,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4247,"event":"job:stop","queue_time":292633878,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.648 [info] {"args":{"id":185},"id":189,"meta":{},"system_time":1776956106648102087,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.648 [debug] QUERY OK source="media_items" db=0.2ms idle=11.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [185] 16:55:06.649 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.650 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:55:06.650 [debug] QUERY OK source="media_profiles" db=0.4ms idle=11.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:06.651 [debug] QUERY OK source="media_items" db=0.5ms idle=10.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [185] 16:55:06.652 [info] {"args":{"id":185},"id":189,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3717,"event":"job:stop","queue_time":288646868,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.659 [info] {"args":{"id":186},"id":190,"meta":{},"system_time":1776956106659107671,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.660 [debug] QUERY OK source="media_items" db=0.5ms idle=9.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" = ?) [186] 16:55:06.660 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.661 [debug] QUERY OK source="sources" db=0.3ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:06.661 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.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] 16:55:06.662 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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 [186] 16:55:06.663 [info] {"args":{"id":186},"id":190,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3541,"event":"job:stop","queue_time":283657883,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.671 [info] {"args":{"id":187},"id":191,"meta":{},"system_time":1776956106671100546,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.672 [debug] QUERY OK source="media_items" db=0.5ms idle=10.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" = ?) [187] 16:55:06.672 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.673 [debug] QUERY OK source="sources" db=0.3ms idle=11.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:06.674 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=10.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] 16:55:06.675 [debug] QUERY OK source="media_items" db=1.0ms idle=11.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [187] 16:55:06.677 [info] {"args":{"id":187},"id":191,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4896,"event":"job:stop","queue_time":278669868,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.685 [info] {"args":{"id":188},"id":192,"meta":{},"system_time":1776956106685077808,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.686 [debug] QUERY OK source="media_items" db=0.9ms idle=12.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" = ?) [188] 16:55:06.687 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.687 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [1] 16:55:06.688 [debug] QUERY OK source="media_profiles" db=0.4ms idle=12.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:06.691 [debug] QUERY OK source="media_items" db=1.6ms queue=0.2ms idle=11.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [188] 16:55:06.693 [info] {"args":{"id":188},"id":192,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6297,"event":"job:stop","queue_time":273683862,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.701 [info] {"args":{"id":189},"id":193,"meta":{},"system_time":1776956106701063086,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:06.702 [debug] QUERY OK source="media_items" db=0.8ms idle=13.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" = ?) [189] 16:55:06.703 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:06.704 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=15.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:06.706 [debug] QUERY OK source="media_profiles" db=0.9ms idle=14.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] 16:55:06.707 [debug] QUERY OK source="media_items" db=0.3ms idle=12.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 [189] 16:55:06.708 [debug] QUERY OK source="media_metadata" db=0.1ms idle=6.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [189] 16:55:06.708 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:06.709 [debug] QUERY OK source="settings" db=0.4ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:06.710 [debug] QUERY OK source="settings" db=0.3ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:06.710 [debug] Running yt-dlp command for action: get_downloadable_status 16:55:06.711 [debug] QUERY OK source="settings" db=0.2ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:06.711 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:55:06.712 [debug] QUERY OK source="settings" db=0.1ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:06.712 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/jxHIw_OA8_I --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/46/5c/465c67936b58b1bdf7ee327baffd50662c5a4c2a91425f3376a0c14cb23d4857.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:07.343 [debug] Current batch of media processed. Will check again in 1000ms 16:55:08.345 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 27, "filename" => "/downloads/Jeff Su/2024-02-13 #iPhone Trick You Didn’t Know You Needed/#iPhone Trick You Didn’t Know You Needed [tSYRZ0BZX1M].mp4", "id" => "tSYRZ0BZX1M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/tSYRZ0BZX1M", "playlist_index" => 64, "timestamp" => 1707829809, "title" => "#iPhone Trick You Didn’t Know You Needed", "upload_date" => "20240213"} 16:55:08.346 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=998.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:08.346 [debug] QUERY OK source="sources" db=0.2ms idle=9.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:08.348 [debug] QUERY OK source="media_items" db=1.6ms idle=10.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-13 13:10:09Z], 1] 16:55:08.352 [debug] QUERY OK source="media_items" db=2.6ms idle=12.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#iPhone Trick You Didn’t Know You Needed", "888025c1-0973-4e54-ad07-4ba200b9d76f", false, "tSYRZ0BZX1M", 1, [], 27, false, "https://www.youtube.com/shorts/tSYRZ0BZX1M", 64, "/downloads/Jeff Su/2024-02-13 #iPhone Trick You Didn’t Know You Needed/#iPhone Trick You Didn’t Know You Needed [tSYRZ0BZX1M].mp4", false, true, 99, ~U[2024-02-13 13:10:09Z], ~U[2026-04-23 14:55:08Z], ~U[2026-04-23 14:55:08Z], "", "#iPhone Trick You Didn’t Know You Needed", "tSYRZ0BZX1M", 1, 27, false, "https://www.youtube.com/shorts/tSYRZ0BZX1M", "/downloads/Jeff Su/2024-02-13 #iPhone Trick You Didn’t Know You Needed/#iPhone Trick You Didn’t Know You Needed [tSYRZ0BZX1M].mp4", true, ~U[2024-02-13 13:10:09Z]] 16:55:08.352 [debug] QUERY OK source="sources" db=0.4ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:08.353 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:08.354 [debug] QUERY OK source="media_items" db=0.4ms idle=5.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [252] 16:55:08.354 [debug] Current batch of media processed. Will check again in 1000ms 16:55:09.355 [debug] Current batch of media processed. Will check again in 1000ms 16:55:10.356 [debug] Current batch of media processed. Will check again in 1000ms 16:55:11.357 [debug] Current batch of media processed. Will check again in 1000ms 16:55:12.359 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 59, "filename" => "/downloads/Jeff Su/2024-02-08 Find relevant interview questions with #chatgpt/Find relevant interview questions with #chatgpt [611zzonUM2Y].mp4", "id" => "611zzonUM2Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/611zzonUM2Y", "playlist_index" => 65, "timestamp" => 1707401362, "title" => "Find relevant interview questions with #chatgpt", "upload_date" => "20240208"} 16:55:12.359 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=22.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:12.360 [debug] QUERY OK source="sources" db=0.2ms idle=22.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:12.361 [debug] QUERY OK source="media_items" db=0.9ms idle=23.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-08 14:09:22Z], 1] 16:55:12.365 [debug] QUERY OK source="media_items" db=3.2ms idle=24.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Find relevant interview questions with #chatgpt", "f65e8524-3a17-4128-9c49-2860b4369d19", false, "611zzonUM2Y", 1, [], 59, false, "https://www.youtube.com/shorts/611zzonUM2Y", 65, "/downloads/Jeff Su/2024-02-08 Find relevant interview questions with #chatgpt/Find relevant interview questions with #chatgpt [611zzonUM2Y].mp4", false, true, 99, ~U[2024-02-08 14:09:22Z], ~U[2026-04-23 14:55:12Z], ~U[2026-04-23 14:55:12Z], "", "Find relevant interview questions with #chatgpt", "611zzonUM2Y", 1, 59, false, "https://www.youtube.com/shorts/611zzonUM2Y", "/downloads/Jeff Su/2024-02-08 Find relevant interview questions with #chatgpt/Find relevant interview questions with #chatgpt [611zzonUM2Y].mp4", true, ~U[2024-02-08 14:09:22Z]] 16:55:12.366 [debug] QUERY OK source="sources" db=0.8ms queue=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" = ?) [1] 16:55:12.367 [debug] QUERY OK source="media_profiles" db=0.8ms idle=7.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:12.369 [debug] QUERY OK source="media_items" db=1.1ms idle=8.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [253] 16:55:12.369 [debug] Current batch of media processed. Will check again in 1000ms 16:55:12.792 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/jxHIw_OA8_I --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/46/5c/465c67936b58b1bdf7ee327baffd50662c5a4c2a91425f3376a0c14cb23d4857.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:12.794 [debug] Running yt-dlp command for action: download 16:55:12.795 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=432.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:12.795 [debug] QUERY OK source="settings" db=0.1ms idle=429.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:12.795 [debug] QUERY OK source="settings" db=0.2ms idle=428.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:12.796 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/jxHIw_OA8_I --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/66/49/66495618a1dd3092956e010e1db506efcd9efd0bfe47ecc87d69df5ea2b4a507.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:13.370 [debug] Current batch of media processed. Will check again in 1000ms 16:55:14.371 [debug] Current batch of media processed. Will check again in 1000ms 16:55:15.372 [debug] Current batch of media processed. Will check again in 1000ms 16:55:16.344 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Yq0QkCxoTHM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/25/dd/25ddce5cf5096c26d175e1d32f1a8ad30880b392c3a6b24e2aa56756b994c9f8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:16.377 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 29, "filename" => "/downloads/Jeff Su/2024-02-02 How to access #chatgpt and #googlebard from desktop/How to access #chatgpt and #googlebard from desktop [lgfkGOSddLc].mp4", "id" => "lgfkGOSddLc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/lgfkGOSddLc", "playlist_index" => 66, "timestamp" => 1706884547, "title" => "How to access #chatgpt and #googlebard from desktop", "upload_date" => "20240202"} 16:55:16.383 [debug] QUERY OK source="sources" db=0.4ms queue=0.4ms idle=38.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:55:16.393 [debug] QUERY OK source="sources" db=9.3ms queue=0.1ms idle=40.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:16.399 [debug] QUERY OK source="media_items" db=5.1ms queue=0.1ms idle=50.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-02 14:35:47Z], 1] 16:55:16.401 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=56.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How to access #chatgpt and #googlebard from desktop", "e7621d10-2724-410f-bab4-d4b03d628e7e", false, "lgfkGOSddLc", 1, [], 29, false, "https://www.youtube.com/shorts/lgfkGOSddLc", 66, "/downloads/Jeff Su/2024-02-02 How to access #chatgpt and #googlebard from desktop/How to access #chatgpt and #googlebard from desktop [lgfkGOSddLc].mp4", false, true, 99, ~U[2024-02-02 14:35:47Z], ~U[2026-04-23 14:55:16Z], ~U[2026-04-23 14:55:16Z], "", "How to access #chatgpt and #googlebard from desktop", "lgfkGOSddLc", 1, 29, false, "https://www.youtube.com/shorts/lgfkGOSddLc", "/downloads/Jeff Su/2024-02-02 How to access #chatgpt and #googlebard from desktop/How to access #chatgpt and #googlebard from desktop [lgfkGOSddLc].mp4", true, ~U[2024-02-02 14:35:47Z]] 16:55:16.403 [debug] QUERY OK source="sources" db=0.4ms queue=0.4ms idle=36.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:16.405 [debug] QUERY OK source="media_profiles" db=1.6ms queue=0.1ms idle=19.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] 16:55:16.406 [debug] QUERY OK source="media_items" db=1.1ms idle=12.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [254] 16:55:16.407 [debug] Current batch of media processed. Will check again in 1000ms 16:55:16.422 [debug] Running yt-dlp command for action: download_thumbnail 16:55:16.428 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:55:16.431 [debug] QUERY OK source="settings" db=2.9ms queue=0.7ms idle=26.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:16.432 [debug] QUERY OK source="settings" db=0.5ms 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 [] 16:55:16.433 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Yq0QkCxoTHM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/57/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3c/1b/3c1b93f0d4aa1705195ca552f5e9608c2c71e5cb86e284c7822539ef75b70903.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:17.407 [debug] Current batch of media processed. Will check again in 1000ms 16:55:18.309 [info] {"source":"oban","duration":926,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:55:18.409 [debug] Current batch of media processed. Will check again in 1000ms 16:55:19.409 [debug] Current batch of media processed. Will check again in 1000ms 16:55:20.411 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 58, "filename" => "/downloads/Jeff Su/2024-01-25 #ChatGPT vs Google #Bard/#ChatGPT vs Google #Bard [KfQSClXZcfw].mp4", "id" => "KfQSClXZcfw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/KfQSClXZcfw", "playlist_index" => 67, "timestamp" => 1706189336, "title" => "#ChatGPT vs Google #Bard", "upload_date" => "20240125"} 16:55:20.414 [debug] QUERY OK source="sources" db=2.3ms queue=0.1ms idle=1037.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:20.416 [debug] QUERY OK source="sources" db=2.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:20.419 [debug] QUERY OK source="media_items" db=2.2ms idle=74.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-25 13:28:56Z], 1] 16:55:20.422 [debug] QUERY OK source="media_items" db=1.9ms idle=76.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#ChatGPT vs Google #Bard", "499b0c7b-0a29-40bb-812f-a87470db9694", false, "KfQSClXZcfw", 1, [], 58, false, "https://www.youtube.com/shorts/KfQSClXZcfw", 67, "/downloads/Jeff Su/2024-01-25 #ChatGPT vs Google #Bard/#ChatGPT vs Google #Bard [KfQSClXZcfw].mp4", false, true, 99, ~U[2024-01-25 13:28:56Z], ~U[2026-04-23 14:55:20Z], ~U[2026-04-23 14:55:20Z], "", "#ChatGPT vs Google #Bard", "KfQSClXZcfw", 1, 58, false, "https://www.youtube.com/shorts/KfQSClXZcfw", "/downloads/Jeff Su/2024-01-25 #ChatGPT vs Google #Bard/#ChatGPT vs Google #Bard [KfQSClXZcfw].mp4", true, ~U[2024-01-25 13:28:56Z]] 16:55:20.424 [debug] QUERY OK source="sources" db=1.6ms idle=46.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:20.426 [debug] QUERY OK source="media_profiles" db=1.6ms queue=0.1ms idle=10.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:20.427 [debug] QUERY OK source="media_items" db=0.5ms idle=9.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [255] 16:55:20.427 [debug] Current batch of media processed. Will check again in 1000ms 16:55:21.081 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/jxHIw_OA8_I --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/66/49/66495618a1dd3092956e010e1db506efcd9efd0bfe47ecc87d69df5ea2b4a507.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:21.122 [debug] Running yt-dlp command for action: download_thumbnail 16:55:21.125 [debug] QUERY OK source="settings" db=0.3ms idle=705.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:21.126 [debug] QUERY OK source="settings" db=0.2ms idle=703.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:21.126 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=702.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:21.127 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/jxHIw_OA8_I --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/189/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6d/18/6d18b56c39504e383298f884cdf030db38afa36133ecb83f9844c32300f2c9bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:21.427 [debug] Current batch of media processed. Will check again in 1000ms 16:55:22.415 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Yq0QkCxoTHM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/57/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3c/1b/3c1b93f0d4aa1705195ca552f5e9608c2c71e5cb86e284c7822539ef75b70903.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:22.417 [debug] QUERY OK db=1.5ms idle=73.2ms begin [] 16:55:22.419 [debug] QUERY OK source="media_items" db=1.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:55:16Z], "/downloads/Jeff Su/2023-11-14 Google’s AI Course for Beginners (in 10 minutes)!/Google’s AI Course for Beginners (in 10 minutes)! [Yq0QkCxoTHM].mp4", "/downloads/Jeff Su/2023-11-14 Google’s AI Course for Beginners (in 10 minutes)!/Google’s AI Course for Beginners (in 10 minutes)! [Yq0QkCxoTHM].info.json", "/downloads/Jeff Su/2023-11-14 Google’s AI Course for Beginners (in 10 minutes)!/Google’s AI Course for Beginners (in 10 minutes)! [Yq0QkCxoTHM].nfo", "/downloads/Jeff Su/2023-11-14 Google’s AI Course for Beginners (in 10 minutes)!/Google’s AI Course for Beginners (in 10 minutes)! [Yq0QkCxoTHM]-thumb.jpg", ~U[2026-04-23 14:55:22Z], 57] 16:55:22.421 [debug] QUERY OK source="media_metadata" db=1.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/57/metadata.json.gz", "/config/metadata/media_items/57/thumbnail.jpg", 57, ~U[2026-04-23 14:55:22Z], ~U[2026-04-23 14:55:22Z]] 16:55:22.421 [debug] QUERY OK db=0.3ms commit [] 16:55:22.425 [debug] QUERY OK source="media_items" db=2.8ms idle=79.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [27178921, ~U[2026-04-23 14:55:22Z], 57] 16:55:22.425 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:22.426 [info] {"args":{"id":57},"id":61,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":30857540,"event":"job:stop","queue_time":810566847,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:22.428 [debug] Current batch of media processed. Will check again in 1000ms 16:55:22.433 [info] {"args":{"id":190},"id":194,"meta":{},"system_time":1776956122433062648,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:22.434 [debug] QUERY OK source="media_items" db=0.9ms idle=52.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" = ?) [190] 16:55:22.434 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:22.435 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:55:22.436 [debug] QUERY OK source="media_profiles" db=0.9ms idle=10.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:22.437 [debug] QUERY OK source="media_items" db=1.0ms idle=10.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [190] 16:55:22.440 [debug] QUERY OK source="media_metadata" db=0.2ms idle=6.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [190] 16:55:22.441 [debug] QUERY OK source="media_profiles" db=1.2ms idle=5.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:22.443 [debug] QUERY OK source="settings" db=1.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 [] 16:55:22.444 [debug] QUERY OK source="settings" db=0.9ms idle=6.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:22.445 [debug] Running yt-dlp command for action: get_downloadable_status 16:55:22.447 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=8.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:22.447 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=7.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:22.448 [debug] QUERY OK source="settings" db=0.2ms queue=0.2ms idle=6.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:22.448 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/gbI7THwqEjk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1a/35/1a3582cc8426ba3807154d849dad315252dad9ae34a38bc6e5e78d1b0bb8a006.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:23.429 [debug] Current batch of media processed. Will check again in 1000ms 16:55:24.431 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 51, "filename" => "/downloads/Jeff Su/2024-01-16 Why #timeblocking doesn’t work/Why #timeblocking doesn’t work [CUx1feair74].mp4", "id" => "CUx1feair74", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/CUx1feair74", "playlist_index" => 68, "timestamp" => 1705409346, "title" => "Why #timeblocking doesn’t work", "upload_date" => "20240116"} 16:55:24.433 [debug] QUERY OK source="sources" db=1.4ms queue=0.1ms idle=88.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:24.435 [debug] QUERY OK source="sources" db=2.3ms idle=90.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:24.439 [debug] QUERY OK source="media_items" db=3.2ms idle=93.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-16 12:49:06Z], 1] 16:55:24.442 [debug] QUERY OK source="media_items" db=2.6ms idle=97.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Why #timeblocking doesn’t work", "81ef7a78-6515-47f3-954d-dfb7cd467e6b", false, "CUx1feair74", 1, [], 51, false, "https://www.youtube.com/shorts/CUx1feair74", 68, "/downloads/Jeff Su/2024-01-16 Why #timeblocking doesn’t work/Why #timeblocking doesn’t work [CUx1feair74].mp4", false, true, 99, ~U[2024-01-16 12:49:06Z], ~U[2026-04-23 14:55:24Z], ~U[2026-04-23 14:55:24Z], "", "Why #timeblocking doesn’t work", "CUx1feair74", 1, 51, false, "https://www.youtube.com/shorts/CUx1feair74", "/downloads/Jeff Su/2024-01-16 Why #timeblocking doesn’t work/Why #timeblocking doesn’t work [CUx1feair74].mp4", true, ~U[2024-01-16 12:49:06Z]] 16:55:24.445 [debug] QUERY OK source="sources" db=2.1ms idle=59.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:24.446 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=12.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] 16:55:24.447 [debug] QUERY OK source="media_items" db=0.4ms idle=11.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [256] 16:55:24.447 [debug] Current batch of media processed. Will check again in 1000ms 16:55:25.448 [debug] Current batch of media processed. Will check again in 1000ms 16:55:26.449 [debug] Current batch of media processed. Will check again in 1000ms 16:55:27.084 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/jxHIw_OA8_I --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/189/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6d/18/6d18b56c39504e383298f884cdf030db38afa36133ecb83f9844c32300f2c9bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:27.085 [debug] QUERY OK db=0.1ms idle=741.9ms begin [] 16:55:27.086 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:55:21Z], "/downloads/Jeff Su/2026-04-18 Stop perfecting your prompt. Do this instead/Stop perfecting your prompt. Do this instead [jxHIw_OA8_I].mp4", "/downloads/Jeff Su/2026-04-18 Stop perfecting your prompt. Do this instead/Stop perfecting your prompt. Do this instead [jxHIw_OA8_I].info.json", "/downloads/Jeff Su/2026-04-18 Stop perfecting your prompt. Do this instead/Stop perfecting your prompt. Do this instead [jxHIw_OA8_I].nfo", "/downloads/Jeff Su/2026-04-18 Stop perfecting your prompt. Do this instead/Stop perfecting your prompt. Do this instead [jxHIw_OA8_I]-thumb.jpg", ~U[2026-04-23 14:55:27Z], 189] 16:55:27.087 [debug] QUERY OK source="media_metadata" db=1.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/189/metadata.json.gz", "/config/metadata/media_items/189/thumbnail.jpg", 189, ~U[2026-04-23 14:55:27Z], ~U[2026-04-23 14:55:27Z]] 16:55:27.088 [debug] QUERY OK db=0.4ms commit [] 16:55:27.091 [debug] QUERY OK source="media_items" db=2.5ms idle=745.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [4051815, ~U[2026-04-23 14:55:27Z], 189] 16:55:27.091 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:27.092 [info] {"args":{"id":189},"id":193,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":20390871,"event":"job:stop","queue_time":268699883,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:27.100 [info] {"args":{"id":191},"id":195,"meta":{},"system_time":1776956127100045264,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:27.100 [debug] QUERY OK source="media_items" db=0.3ms idle=712.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" = ?) [191] 16:55:27.101 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:27.102 [debug] QUERY OK source="sources" db=0.7ms queue=0.4ms 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" = ?) [1] 16:55:27.104 [debug] QUERY OK source="media_profiles" db=0.8ms idle=11.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] 16:55:27.105 [debug] QUERY OK source="media_items" db=0.9ms idle=11.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 [191] 16:55:27.108 [debug] QUERY OK source="media_metadata" db=0.3ms idle=7.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [191] 16:55:27.109 [debug] QUERY OK source="media_profiles" db=0.4ms idle=7.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:27.110 [debug] QUERY OK source="settings" db=0.3ms idle=7.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:27.110 [debug] QUERY OK source="settings" db=0.2ms idle=6.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:27.111 [debug] Running yt-dlp command for action: get_downloadable_status 16:55:27.112 [debug] QUERY OK source="settings" db=0.3ms idle=6.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:27.113 [debug] QUERY OK source="settings" db=0.8ms 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 [] 16:55:27.115 [debug] QUERY OK source="settings" db=1.0ms idle=5.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:27.115 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/6PZCZWvNVHc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1b/96/1b961ba513fab8b93e6b6a9d790f7542f0181bd977b326612156193fa3d97ebb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:27.450 [debug] Current batch of media processed. Will check again in 1000ms 16:55:28.451 [debug] Current batch of media processed. Will check again in 1000ms 16:55:28.458 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/gbI7THwqEjk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1a/35/1a3582cc8426ba3807154d849dad315252dad9ae34a38bc6e5e78d1b0bb8a006.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:28.458 [debug] Running yt-dlp command for action: download 16:55:28.459 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms 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 [] 16:55:28.459 [debug] QUERY OK source="settings" db=0.1ms idle=116.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:28.459 [debug] QUERY OK source="settings" db=0.1ms idle=116.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:28.460 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/gbI7THwqEjk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/5e/e7/5ee720ce81f726ef4616bbd44b9ae012ac2c0474fc432d01cbfd4a38defcff3c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:29.453 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 60, "filename" => "/downloads/Jeff Su/2024-01-11 Speed up your #Macbook workflow/Speed up your #Macbook workflow [MmwLylrDjGI].mp4", "id" => "MmwLylrDjGI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/MmwLylrDjGI", "playlist_index" => 69, "timestamp" => 1704976950, "title" => "Speed up your #Macbook workflow", "upload_date" => "20240111"} 16:55:29.454 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=1061.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:29.455 [debug] QUERY OK source="sources" db=0.5ms idle=995.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:29.457 [debug] QUERY OK source="media_items" db=1.7ms idle=995.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-11 12:42:30Z], 1] 16:55:29.458 [debug] QUERY OK source="media_items" db=1.0ms idle=997.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Speed up your #Macbook workflow", "d9778fb5-df48-4669-a496-c5f55b191758", false, "MmwLylrDjGI", 1, [], 60, false, "https://www.youtube.com/shorts/MmwLylrDjGI", 69, "/downloads/Jeff Su/2024-01-11 Speed up your #Macbook workflow/Speed up your #Macbook workflow [MmwLylrDjGI].mp4", false, true, 99, ~U[2024-01-11 12:42:30Z], ~U[2026-04-23 14:55:29Z], ~U[2026-04-23 14:55:29Z], "", "Speed up your #Macbook workflow", "MmwLylrDjGI", 1, 60, false, "https://www.youtube.com/shorts/MmwLylrDjGI", "/downloads/Jeff Su/2024-01-11 Speed up your #Macbook workflow/Speed up your #Macbook workflow [MmwLylrDjGI].mp4", true, ~U[2024-01-11 12:42:30Z]] 16:55:29.459 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=64.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:29.460 [debug] QUERY OK source="media_profiles" db=0.4ms idle=5.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:29.461 [debug] QUERY OK source="media_items" db=0.9ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [257] 16:55:29.463 [debug] Current batch of media processed. Will check again in 1000ms 16:55:30.463 [debug] Current batch of media processed. Will check again in 1000ms 16:55:31.464 [debug] Current batch of media processed. Will check again in 1000ms 16:55:32.465 [debug] Current batch of media processed. Will check again in 1000ms 16:55:32.863 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/6PZCZWvNVHc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1b/96/1b961ba513fab8b93e6b6a9d790f7542f0181bd977b326612156193fa3d97ebb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:32.863 [debug] Running yt-dlp command for action: download 16:55:32.864 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=1520.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:32.864 [debug] QUERY OK source="settings" db=0.3ms idle=1521.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:32.865 [debug] QUERY OK source="settings" db=0.2ms idle=1521.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:32.865 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/6PZCZWvNVHc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/9e/fa/9efa1a5707a23bf976c338f3ddebd5ed1005056c9c7b61ee328b9e964dcc04e9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:33.466 [debug] Current batch of media processed. Will check again in 1000ms 16:55:34.467 [debug] Current batch of media processed. Will check again in 1000ms 16:55:35.469 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 32, "filename" => "/downloads/Jeff Su/2023-12-19 #Productivity Tip I Use Everyday/#Productivity Tip I Use Everyday [KZ5LokVvPao].mp4", "id" => "KZ5LokVvPao", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/KZ5LokVvPao", "playlist_index" => 70, "timestamp" => 1702995176, "title" => "#Productivity Tip I Use Everyday", "upload_date" => "20231219"} 16:55:35.470 [debug] QUERY OK source="sources" db=0.7ms idle=1126.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:35.470 [debug] QUERY OK source="sources" db=0.3ms idle=1127.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:35.472 [debug] QUERY OK source="media_items" db=1.0ms idle=1061.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-19 14:12:56Z], 1] 16:55:35.473 [debug] QUERY OK source="media_items" db=0.7ms idle=129.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#Productivity Tip I Use Everyday", "cb276a25-32cc-4915-a45e-e0eea3201cca", false, "KZ5LokVvPao", 1, [], 32, false, "https://www.youtube.com/shorts/KZ5LokVvPao", 70, "/downloads/Jeff Su/2023-12-19 #Productivity Tip I Use Everyday/#Productivity Tip I Use Everyday [KZ5LokVvPao].mp4", false, true, 99, ~U[2023-12-19 14:12:56Z], ~U[2026-04-23 14:55:35Z], ~U[2026-04-23 14:55:35Z], "", "#Productivity Tip I Use Everyday", "KZ5LokVvPao", 1, 32, false, "https://www.youtube.com/shorts/KZ5LokVvPao", "/downloads/Jeff Su/2023-12-19 #Productivity Tip I Use Everyday/#Productivity Tip I Use Everyday [KZ5LokVvPao].mp4", true, ~U[2023-12-19 14:12:56Z]] 16:55:35.474 [debug] QUERY OK source="sources" db=0.3ms idle=61.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:35.475 [debug] QUERY OK source="media_profiles" db=0.5ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:35.476 [debug] QUERY OK source="media_items" db=0.4ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [258] 16:55:35.476 [debug] Current batch of media processed. Will check again in 1000ms 16:55:36.292 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/gbI7THwqEjk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/5e/e7/5ee720ce81f726ef4616bbd44b9ae012ac2c0474fc432d01cbfd4a38defcff3c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:36.345 [debug] Running yt-dlp command for action: download_thumbnail 16:55:36.348 [debug] QUERY OK source="settings" db=0.3ms idle=875.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:36.349 [debug] QUERY OK source="settings" db=0.3ms idle=875.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:36.349 [debug] QUERY OK source="settings" db=0.1ms idle=875.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:36.350 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/gbI7THwqEjk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/190/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/8f/28/8f285462b8b269f4388b5eb851ab10dd9832bfdcd87810b54e5338f526692801.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:36.476 [debug] Current batch of media processed. Will check again in 1000ms 16:55:37.477 [debug] Current batch of media processed. Will check again in 1000ms 16:55:38.479 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 56, "filename" => "/downloads/Jeff Su/2023-12-14 My “unproductive” Morning Routine #8020rule #atomichabits/My “unproductive” Morning Routine #8020rule #atomichabits [1Qs120_M6w8].mp4", "id" => "1Qs120_M6w8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/1Qs120_M6w8", "playlist_index" => 71, "timestamp" => 1702559690, "title" => "My “unproductive” Morning Routine #8020rule #atomichabits", "upload_date" => "20231214"} 16:55:38.480 [debug] QUERY OK source="sources" db=0.4ms idle=1062.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:38.480 [debug] QUERY OK source="sources" db=0.2ms idle=133.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:38.481 [debug] QUERY OK source="media_items" db=0.9ms idle=133.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-14 13:14:50Z], 1] 16:55:38.483 [debug] QUERY OK source="media_items" db=0.8ms idle=135.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My “unproductive” Morning Routine #8020rule #atomichabits", "b1fc4549-f478-4191-90ae-ab9b79cb47e4", false, "1Qs120_M6w8", 1, [], 56, false, "https://www.youtube.com/shorts/1Qs120_M6w8", 71, "/downloads/Jeff Su/2023-12-14 My “unproductive” Morning Routine #8020rule #atomichabits/My “unproductive” Morning Routine #8020rule #atomichabits [1Qs120_M6w8].mp4", false, true, 99, ~U[2023-12-14 13:14:50Z], ~U[2026-04-23 14:55:38Z], ~U[2026-04-23 14:55:38Z], "", "My “unproductive” Morning Routine #8020rule #atomichabits", "1Qs120_M6w8", 1, 56, false, "https://www.youtube.com/shorts/1Qs120_M6w8", "/downloads/Jeff Su/2023-12-14 My “unproductive” Morning Routine #8020rule #atomichabits/My “unproductive” Morning Routine #8020rule #atomichabits [1Qs120_M6w8].mp4", true, ~U[2023-12-14 13:14:50Z]] 16:55:38.483 [debug] QUERY OK source="sources" db=0.2ms idle=64.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:38.484 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:38.484 [debug] QUERY OK source="media_items" db=0.3ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [259] 16:55:38.485 [debug] Current batch of media processed. Will check again in 1000ms 16:55:39.485 [debug] Current batch of media processed. Will check again in 1000ms 16:55:40.337 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/6PZCZWvNVHc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/9e/fa/9efa1a5707a23bf976c338f3ddebd5ed1005056c9c7b61ee328b9e964dcc04e9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:40.384 [debug] Running yt-dlp command for action: download_thumbnail 16:55:40.386 [debug] QUERY OK source="settings" db=0.3ms idle=963.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:40.387 [debug] QUERY OK source="settings" db=0.1ms idle=40.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:40.388 [debug] QUERY OK source="settings" db=0.1ms idle=40.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:40.388 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/6PZCZWvNVHc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/191/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/b6/c7/b6c756c4cae7080e2e5e2cfaa531d0f2d582eb4651b70bb41850a64f3797e99c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:40.486 [debug] Current batch of media processed. Will check again in 1000ms 16:55:41.487 [debug] Current batch of media processed. Will check again in 1000ms 16:55:42.372 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/gbI7THwqEjk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/190/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/8f/28/8f285462b8b269f4388b5eb851ab10dd9832bfdcd87810b54e5338f526692801.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:42.372 [debug] QUERY OK db=0.1ms idle=941.9ms begin [] 16:55:42.374 [debug] QUERY OK source="media_items" db=0.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:55:36Z], "/downloads/Jeff Su/2026-04-10 Most people get these 3 AI terms wrong/Most people get these 3 AI terms wrong [gbI7THwqEjk].mp4", "/downloads/Jeff Su/2026-04-10 Most people get these 3 AI terms wrong/Most people get these 3 AI terms wrong [gbI7THwqEjk].info.json", "/downloads/Jeff Su/2026-04-10 Most people get these 3 AI terms wrong/Most people get these 3 AI terms wrong [gbI7THwqEjk].nfo", "/downloads/Jeff Su/2026-04-10 Most people get these 3 AI terms wrong/Most people get these 3 AI terms wrong [gbI7THwqEjk]-thumb.jpg", ~U[2026-04-23 14:55:42Z], 190] 16:55:42.374 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/190/metadata.json.gz", "/config/metadata/media_items/190/thumbnail.jpg", 190, ~U[2026-04-23 14:55:42Z], ~U[2026-04-23 14:55:42Z]] 16:55:42.375 [debug] QUERY OK db=0.3ms commit [] 16:55:42.376 [debug] QUERY OK source="media_items" db=1.0ms idle=28.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [3385853, ~U[2026-04-23 14:55:42Z], 190] 16:55:42.376 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:42.377 [info] {"args":{"id":190},"id":194,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":19943795,"event":"job:stop","queue_time":280431858,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:42.384 [info] {"args":{"id":192},"id":196,"meta":{},"system_time":1776956142384095513,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:42.384 [debug] QUERY OK source="media_items" db=0.2ms idle=37.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" = ?) [192] 16:55:42.385 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:42.385 [debug] QUERY OK source="sources" db=0.2ms idle=9.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:42.385 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:42.386 [debug] QUERY OK source="media_items" db=0.3ms idle=8.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [192] 16:55:42.387 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [192] 16:55:42.387 [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] 16:55:42.389 [debug] QUERY OK source="settings" db=0.8ms 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 [] 16:55:42.389 [debug] QUERY OK source="settings" db=0.1ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:42.389 [debug] Running yt-dlp command for action: get_downloadable_status 16:55:42.390 [debug] QUERY OK source="settings" db=0.1ms idle=3.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:42.391 [debug] QUERY OK source="settings" db=0.1ms 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 [] 16:55:42.391 [debug] QUERY OK source="settings" db=0.1ms 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 [] 16:55:42.391 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/KS-p0e-KwBA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/71/fe/71fe61648f0433e8f4e13a8fdfacc198e6720d1aeb64e9996d264a0a55b7865b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:42.489 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 57, "filename" => "/downloads/Jeff Su/2023-12-05 Stupid simple #productivity tip no-one talks about/Stupid simple #productivity tip no-one talks about [Hf5jTvWNM_M].mp4", "id" => "Hf5jTvWNM_M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/Hf5jTvWNM_M", "playlist_index" => 72, "timestamp" => 1701783498, "title" => "Stupid simple #productivity tip no-one talks about", "upload_date" => "20231205"} 16:55:42.489 [debug] QUERY OK source="sources" db=0.3ms idle=99.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:42.490 [debug] QUERY OK source="sources" db=0.2ms idle=99.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:42.492 [debug] QUERY OK source="media_items" db=1.6ms idle=99.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-05 13:38:18Z], 1] 16:55:42.494 [debug] QUERY OK source="media_items" db=1.5ms idle=101.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Stupid simple #productivity tip no-one talks about", "92614df6-7ca9-41d0-931e-c7fcd47bd77a", false, "Hf5jTvWNM_M", 1, [], 57, false, "https://www.youtube.com/shorts/Hf5jTvWNM_M", 72, "/downloads/Jeff Su/2023-12-05 Stupid simple #productivity tip no-one talks about/Stupid simple #productivity tip no-one talks about [Hf5jTvWNM_M].mp4", false, true, 99, ~U[2023-12-05 13:38:18Z], ~U[2026-04-23 14:55:42Z], ~U[2026-04-23 14:55:42Z], "", "Stupid simple #productivity tip no-one talks about", "Hf5jTvWNM_M", 1, 57, false, "https://www.youtube.com/shorts/Hf5jTvWNM_M", "/downloads/Jeff Su/2023-12-05 Stupid simple #productivity tip no-one talks about/Stupid simple #productivity tip no-one talks about [Hf5jTvWNM_M].mp4", true, ~U[2023-12-05 13:38:18Z]] 16:55:42.495 [debug] QUERY OK source="sources" db=0.9ms idle=61.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:42.496 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:42.496 [debug] QUERY OK source="media_items" db=0.3ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [260] 16:55:42.497 [debug] Current batch of media processed. Will check again in 1000ms 16:55:43.497 [debug] Current batch of media processed. Will check again in 1000ms 16:55:44.498 [debug] Current batch of media processed. Will check again in 1000ms 16:55:45.499 [debug] Current batch of media processed. Will check again in 1000ms 16:55:46.501 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 21, "filename" => "/downloads/Jeff Su/2023-11-30 My Favorite 3 Keyboard Shortcuts for #Gmail/My Favorite 3 Keyboard Shortcuts for #Gmail [l06c8YLvzJE].mp4", "id" => "l06c8YLvzJE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/l06c8YLvzJE", "playlist_index" => 73, "timestamp" => 1701349828, "title" => "My Favorite 3 Keyboard Shortcuts for #Gmail", "upload_date" => "20231130"} 16:55:46.502 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=154.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:46.503 [debug] QUERY OK source="sources" db=0.3ms idle=156.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:46.506 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=157.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-30 13:10:28Z], 1] 16:55:46.508 [debug] QUERY OK source="media_items" db=1.5ms idle=160.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Favorite 3 Keyboard Shortcuts for #Gmail", "e6f08d36-6d1d-4582-a32b-a21a947def11", false, "l06c8YLvzJE", 1, [], 21, false, "https://www.youtube.com/shorts/l06c8YLvzJE", 73, "/downloads/Jeff Su/2023-11-30 My Favorite 3 Keyboard Shortcuts for #Gmail/My Favorite 3 Keyboard Shortcuts for #Gmail [l06c8YLvzJE].mp4", false, true, 99, ~U[2023-11-30 13:10:28Z], ~U[2026-04-23 14:55:46Z], ~U[2026-04-23 14:55:46Z], "", "My Favorite 3 Keyboard Shortcuts for #Gmail", "l06c8YLvzJE", 1, 21, false, "https://www.youtube.com/shorts/l06c8YLvzJE", "/downloads/Jeff Su/2023-11-30 My Favorite 3 Keyboard Shortcuts for #Gmail/My Favorite 3 Keyboard Shortcuts for #Gmail [l06c8YLvzJE].mp4", true, ~U[2023-11-30 13:10:28Z]] 16:55:46.510 [debug] QUERY OK source="sources" db=0.9ms idle=65.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:46.512 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.1ms idle=8.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:46.513 [debug] QUERY OK source="media_items" db=0.5ms idle=9.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [261] 16:55:46.513 [debug] Current batch of media processed. Will check again in 1000ms 16:55:46.743 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/6PZCZWvNVHc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/191/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/b6/c7/b6c756c4cae7080e2e5e2cfaa531d0f2d582eb4651b70bb41850a64f3797e99c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:46.745 [debug] QUERY OK db=0.0ms queue=0.1ms idle=238.7ms begin [] 16:55:46.746 [debug] QUERY OK source="media_items" db=1.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:55:40Z], "/downloads/Jeff Su/2026-04-02 #claude Chat vs. Cowork: Biggest 3 differences/#claude Chat vs. Cowork: Biggest 3 differences [6PZCZWvNVHc].mp4", "/downloads/Jeff Su/2026-04-02 #claude Chat vs. Cowork: Biggest 3 differences/#claude Chat vs. Cowork: Biggest 3 differences [6PZCZWvNVHc].info.json", "/downloads/Jeff Su/2026-04-02 #claude Chat vs. Cowork: Biggest 3 differences/#claude Chat vs. Cowork: Biggest 3 differences [6PZCZWvNVHc].nfo", "/downloads/Jeff Su/2026-04-02 #claude Chat vs. Cowork: Biggest 3 differences/#claude Chat vs. Cowork: Biggest 3 differences [6PZCZWvNVHc]-thumb.jpg", ~U[2026-04-23 14:55:46Z], 191] 16:55:46.748 [debug] QUERY OK source="media_metadata" db=1.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/191/metadata.json.gz", "/config/metadata/media_items/191/thumbnail.jpg", 191, ~U[2026-04-23 14:55:46Z], ~U[2026-04-23 14:55:46Z]] 16:55:46.748 [debug] QUERY OK db=0.4ms commit [] 16:55:46.754 [debug] QUERY OK source="media_items" db=4.7ms idle=240.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [2964068, ~U[2026-04-23 14:55:46Z], 191] 16:55:46.754 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:46.755 [info] {"args":{"id":191},"id":195,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":19654646,"event":"job:stop","queue_time":280098864,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:46.763 [info] {"args":{"id":193},"id":197,"meta":{},"system_time":1776956146763225546,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:55:46.764 [debug] QUERY OK source="media_items" db=0.7ms idle=250.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" = ?) [193] 16:55:46.764 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:55:46.765 [debug] QUERY OK source="sources" db=0.3ms idle=16.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:46.766 [debug] QUERY OK source="media_profiles" db=0.3ms idle=11.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] 16:55:46.766 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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 [193] 16:55:46.768 [debug] QUERY OK source="media_metadata" db=0.2ms idle=5.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [193] 16:55:46.769 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:46.770 [debug] QUERY OK source="settings" db=0.2ms idle=4.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:46.770 [debug] QUERY OK source="settings" db=0.1ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:46.770 [debug] Running yt-dlp command for action: get_downloadable_status 16:55:46.771 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:55:46.772 [debug] QUERY OK source="settings" db=0.2ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:46.772 [debug] QUERY OK source="settings" db=0.1ms 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 [] 16:55:46.772 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/kCxlQcKsoZg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/39/85/3985f112005dba649862cdb35fa93ffb8ccd2a255edc050936751ca7a91ad624.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:47.522 [debug] Current batch of media processed. Will check again in 1000ms 16:55:48.312 [info] {"source":"oban","duration":1897,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:55:48.365 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/KS-p0e-KwBA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/71/fe/71fe61648f0433e8f4e13a8fdfacc198e6720d1aeb64e9996d264a0a55b7865b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:48.367 [debug] Running yt-dlp command for action: download 16:55:48.368 [debug] QUERY OK source="settings" db=0.5ms idle=921.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:48.369 [debug] QUERY OK source="settings" db=0.8ms idle=55.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:48.370 [debug] QUERY OK source="settings" db=0.6ms idle=22.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:48.370 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/KS-p0e-KwBA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/c9/d1/c9d17efc3a09f88adfaa2bf73911ae78966ba0a2f042fdec6c8c181e5ef0c7bc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:48.523 [debug] Current batch of media processed. Will check again in 1000ms 16:55:49.524 [debug] Current batch of media processed. Will check again in 1000ms 16:55:50.526 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 27, "filename" => "/downloads/Jeff Su/2023-11-21 Hypothetically, I would never suck up at work…/Hypothetically, I would never suck up at work… [1sWD1eGvEjk].mp4", "id" => "1sWD1eGvEjk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/1sWD1eGvEjk", "playlist_index" => 74, "timestamp" => 1700575809, "title" => "Hypothetically, I would never suck up at work…", "upload_date" => "20231121"} 16:55:50.526 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=179.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:50.527 [debug] QUERY OK source="sources" db=0.3ms idle=180.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:50.528 [debug] QUERY OK source="media_items" db=0.9ms idle=180.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-21 14:10:09Z], 1] 16:55:50.530 [debug] QUERY OK source="media_items" db=0.8ms idle=182.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Hypothetically, I would never suck up at work…", "0004f1a1-c6db-4790-af9b-850c80c3ab74", false, "1sWD1eGvEjk", 1, [], 27, false, "https://www.youtube.com/shorts/1sWD1eGvEjk", 74, "/downloads/Jeff Su/2023-11-21 Hypothetically, I would never suck up at work…/Hypothetically, I would never suck up at work… [1sWD1eGvEjk].mp4", false, true, 99, ~U[2023-11-21 14:10:09Z], ~U[2026-04-23 14:55:50Z], ~U[2026-04-23 14:55:50Z], "", "Hypothetically, I would never suck up at work…", "1sWD1eGvEjk", 1, 27, false, "https://www.youtube.com/shorts/1sWD1eGvEjk", "/downloads/Jeff Su/2023-11-21 Hypothetically, I would never suck up at work…/Hypothetically, I would never suck up at work… [1sWD1eGvEjk].mp4", true, ~U[2023-11-21 14:10:09Z]] 16:55:50.531 [debug] QUERY OK source="sources" db=0.2ms idle=78.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:50.531 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:50.532 [debug] QUERY OK source="media_items" db=0.4ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [262] 16:55:50.532 [debug] Current batch of media processed. Will check again in 1000ms 16:55:51.533 [debug] Current batch of media processed. Will check again in 1000ms 16:55:52.534 [debug] Current batch of media processed. Will check again in 1000ms 16:55:52.734 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/kCxlQcKsoZg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/39/85/3985f112005dba649862cdb35fa93ffb8ccd2a255edc050936751ca7a91ad624.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:52.736 [debug] Running yt-dlp command for action: download 16:55:52.737 [debug] QUERY OK source="settings" db=0.6ms queue=0.1ms idle=389.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:52.738 [debug] QUERY OK source="settings" db=1.1ms idle=390.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:52.739 [debug] QUERY OK source="settings" db=0.6ms idle=392.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:52.740 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/kCxlQcKsoZg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/23/31/23313e63eeb63c4bc9fbc7df40d1ef4473bff58e19ac6280e4434edc7fa0e809.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:53.535 [debug] Current batch of media processed. Will check again in 1000ms 16:55:54.537 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 28, "filename" => "/downloads/Jeff Su/2023-11-16 Simple Tip for Your Next #Presentation/Simple Tip for Your Next #Presentation [d5aj8KJ8hU8].mp4", "id" => "d5aj8KJ8hU8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/d5aj8KJ8hU8", "playlist_index" => 75, "timestamp" => 1700140526, "title" => "Simple Tip for Your Next #Presentation", "upload_date" => "20231116"} 16:55:54.537 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=190.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:54.538 [debug] QUERY OK source="sources" db=0.4ms idle=191.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:54.539 [debug] QUERY OK source="media_items" db=0.9ms idle=191.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-16 13:15:26Z], 1] 16:55:54.541 [debug] QUERY OK source="media_items" db=1.0ms idle=193.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Simple Tip for Your Next #Presentation", "beb64349-ea32-4fab-ad98-4d27e4ca56d8", false, "d5aj8KJ8hU8", 1, [], 28, false, "https://www.youtube.com/shorts/d5aj8KJ8hU8", 75, "/downloads/Jeff Su/2023-11-16 Simple Tip for Your Next #Presentation/Simple Tip for Your Next #Presentation [d5aj8KJ8hU8].mp4", false, true, 99, ~U[2023-11-16 13:15:26Z], ~U[2026-04-23 14:55:54Z], ~U[2026-04-23 14:55:54Z], "", "Simple Tip for Your Next #Presentation", "d5aj8KJ8hU8", 1, 28, false, "https://www.youtube.com/shorts/d5aj8KJ8hU8", "/downloads/Jeff Su/2023-11-16 Simple Tip for Your Next #Presentation/Simple Tip for Your Next #Presentation [d5aj8KJ8hU8].mp4", true, ~U[2023-11-16 13:15:26Z]] 16:55:54.542 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=80.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:54.542 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:54.543 [debug] QUERY OK source="media_items" db=0.3ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [263] 16:55:54.543 [debug] Current batch of media processed. Will check again in 1000ms 16:55:55.543 [debug] Current batch of media processed. Will check again in 1000ms 16:55:56.544 [debug] Current batch of media processed. Will check again in 1000ms 16:55:57.545 [debug] Current batch of media processed. Will check again in 1000ms 16:55:57.833 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/KS-p0e-KwBA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/c9/d1/c9d17efc3a09f88adfaa2bf73911ae78966ba0a2f042fdec6c8c181e5ef0c7bc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:55:57.869 [debug] Running yt-dlp command for action: download_thumbnail 16:55:57.870 [debug] QUERY OK source="settings" db=0.2ms idle=1523.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:57.871 [debug] QUERY OK source="settings" db=0.7ms idle=1523.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:57.872 [debug] QUERY OK source="settings" db=0.1ms idle=1524.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:55:57.872 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/KS-p0e-KwBA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/192/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/9f/e7/9fe743b41ddc9fcb8a3340b0cb6c55ef0fe73d80f558b6dd711b29b64f213ec2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:55:58.547 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 50, "filename" => "/downloads/Jeff Su/2023-11-07 Underrated #Gmail Tip for #Productivity/Underrated #Gmail Tip for #Productivity [S2v1eR3AKrk].mp4", "id" => "S2v1eR3AKrk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/S2v1eR3AKrk", "playlist_index" => 76, "timestamp" => 1699362612, "title" => "Underrated #Gmail Tip for #Productivity", "upload_date" => "20231107"} 16:55:58.547 [debug] QUERY OK source="sources" db=0.3ms idle=676.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:55:58.548 [debug] QUERY OK source="sources" db=0.2ms idle=676.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:55:58.549 [debug] QUERY OK source="media_items" db=0.9ms idle=676.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-07 13:10:12Z], 1] 16:55:58.551 [debug] QUERY OK source="media_items" db=0.8ms idle=203.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Underrated #Gmail Tip for #Productivity", "34392d4f-f1a0-43ba-aaa5-ddfac5393e7c", false, "S2v1eR3AKrk", 1, [], 50, false, "https://www.youtube.com/shorts/S2v1eR3AKrk", 76, "/downloads/Jeff Su/2023-11-07 Underrated #Gmail Tip for #Productivity/Underrated #Gmail Tip for #Productivity [S2v1eR3AKrk].mp4", false, true, 99, ~U[2023-11-07 13:10:12Z], ~U[2026-04-23 14:55:58Z], ~U[2026-04-23 14:55:58Z], "", "Underrated #Gmail Tip for #Productivity", "S2v1eR3AKrk", 1, 50, false, "https://www.youtube.com/shorts/S2v1eR3AKrk", "/downloads/Jeff Su/2023-11-07 Underrated #Gmail Tip for #Productivity/Underrated #Gmail Tip for #Productivity [S2v1eR3AKrk].mp4", true, ~U[2023-11-07 13:10:12Z]] 16:55:58.551 [debug] QUERY OK source="sources" db=0.2ms idle=82.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:55:58.552 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:55:58.553 [debug] QUERY OK source="media_items" db=1.0ms 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 [264] 16:55:58.553 [debug] Current batch of media processed. Will check again in 1000ms 16:55:59.554 [debug] Current batch of media processed. Will check again in 1000ms 16:56:00.226 [info] {"source":"oban","duration":293,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:56:00.554 [debug] Current batch of media processed. Will check again in 1000ms 16:56:01.555 [debug] Current batch of media processed. Will check again in 1000ms 16:56:01.769 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/kCxlQcKsoZg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/23/31/23313e63eeb63c4bc9fbc7df40d1ef4473bff58e19ac6280e4434edc7fa0e809.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:56:01.803 [debug] Running yt-dlp command for action: download_thumbnail 16:56:01.804 [debug] QUERY OK source="settings" db=0.2ms idle=1457.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:01.805 [debug] QUERY OK source="settings" db=0.2ms idle=1458.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:01.806 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=1332.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:01.806 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/kCxlQcKsoZg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/193/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/7f/9a/7f9aa4bfff7799fe3545c81298d0b9e12e11e587f3f5e582f201319a8a822bbd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:56:02.557 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 31, "filename" => "/downloads/Jeff Su/2023-11-02 Create notes directly in #Google #chrome/Create notes directly in #Google #chrome [fqjnPHoF8nM].mp4", "id" => "fqjnPHoF8nM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/fqjnPHoF8nM", "playlist_index" => 77, "timestamp" => 1698933290, "title" => "Create notes directly in #Google #chrome", "upload_date" => "20231102"} 16:56:02.558 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=1082.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:56:02.559 [debug] QUERY OK source="sources" db=0.3ms idle=753.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:02.560 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=753.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-02 13:54:50Z], 1] 16:56:02.562 [debug] QUERY OK source="media_items" db=0.9ms idle=755.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Create notes directly in #Google #chrome", "16f5e7bf-beae-40a9-a6f9-2bf995712505", false, "fqjnPHoF8nM", 1, [], 31, false, "https://www.youtube.com/shorts/fqjnPHoF8nM", 77, "/downloads/Jeff Su/2023-11-02 Create notes directly in #Google #chrome/Create notes directly in #Google #chrome [fqjnPHoF8nM].mp4", false, true, 99, ~U[2023-11-02 13:54:50Z], ~U[2026-04-23 14:56:02Z], ~U[2026-04-23 14:56:02Z], "", "Create notes directly in #Google #chrome", "fqjnPHoF8nM", 1, 31, false, "https://www.youtube.com/shorts/fqjnPHoF8nM", "/downloads/Jeff Su/2023-11-02 Create notes directly in #Google #chrome/Create notes directly in #Google #chrome [fqjnPHoF8nM].mp4", true, ~U[2023-11-02 13:54:50Z]] 16:56:02.563 [debug] QUERY OK source="sources" db=0.3ms idle=85.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:02.563 [debug] QUERY OK source="media_profiles" db=0.3ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:02.565 [debug] QUERY OK source="media_items" db=0.7ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [265] 16:56:02.565 [debug] Current batch of media processed. Will check again in 1000ms 16:56:03.565 [debug] Current batch of media processed. Will check again in 1000ms 16:56:04.566 [debug] Current batch of media processed. Will check again in 1000ms 16:56:05.064 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/KS-p0e-KwBA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/192/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/9f/e7/9fe743b41ddc9fcb8a3340b0cb6c55ef0fe73d80f558b6dd711b29b64f213ec2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:56:05.066 [debug] QUERY OK db=0.1ms idle=718.7ms begin [] 16:56:05.067 [debug] QUERY OK source="media_items" db=1.2ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:55:57Z], "/downloads/Jeff Su/2026-03-26 Claude Cowork: The #1 Thing To Know/Claude Cowork: The #1 Thing To Know [KS-p0e-KwBA].mp4", "/downloads/Jeff Su/2026-03-26 Claude Cowork: The #1 Thing To Know/Claude Cowork: The #1 Thing To Know [KS-p0e-KwBA].info.json", "/downloads/Jeff Su/2026-03-26 Claude Cowork: The #1 Thing To Know/Claude Cowork: The #1 Thing To Know [KS-p0e-KwBA].nfo", "/downloads/Jeff Su/2026-03-26 Claude Cowork: The #1 Thing To Know/Claude Cowork: The #1 Thing To Know [KS-p0e-KwBA]-thumb.jpg", ~U[2026-04-23 14:56:05Z], 192] 16:56:05.069 [debug] QUERY OK source="media_metadata" db=1.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/192/metadata.json.gz", "/config/metadata/media_items/192/thumbnail.jpg", 192, ~U[2026-04-23 14:56:05Z], ~U[2026-04-23 14:56:05Z]] 16:56:05.071 [debug] QUERY OK db=1.7ms commit [] 16:56:05.078 [debug] QUERY OK source="media_items" db=6.9ms idle=724.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [2751508, ~U[2026-04-23 14:56:05Z], 192] 16:56:05.079 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:05.080 [info] {"args":{"id":192},"id":196,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":22695624,"event":"job:stop","queue_time":288382914,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:05.087 [info] {"args":{"id":194},"id":198,"meta":{},"system_time":1776956165087118231,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:05.089 [debug] QUERY OK source="media_items" db=1.4ms idle=602.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" = ?) [194] 16:56:05.089 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:05.090 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=18.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:05.091 [debug] QUERY OK source="media_profiles" db=0.3ms idle=12.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:05.092 [debug] QUERY OK source="media_items" db=0.4ms idle=11.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [194] 16:56:05.093 [debug] QUERY OK source="media_metadata" db=0.2ms idle=6.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [194] 16:56:05.094 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:05.094 [debug] QUERY OK source="settings" db=0.1ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:05.095 [debug] QUERY OK source="settings" db=0.1ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:05.095 [debug] Running yt-dlp command for action: get_downloadable_status 16:56:05.102 [debug] QUERY OK source="settings" db=5.7ms 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 [] 16:56:05.103 [debug] QUERY OK source="settings" db=0.7ms 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 [] 16:56:05.104 [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 [] 16:56:05.104 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/Nfe5OCLeD38 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/8b/85/8b85291eb512d106e3a8f9baa84f7aa2a6d48c08b97e5eb038bde4eb185bce6f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:56:05.567 [debug] Current batch of media processed. Will check again in 1000ms 16:56:06.569 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 33, "filename" => "/downloads/Jeff Su/2023-10-25 How I use #GoogleDrive for #Mac/How I use #GoogleDrive for #Mac [dB69E8okvSA].mp4", "id" => "dB69E8okvSA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/dB69E8okvSA", "playlist_index" => 78, "timestamp" => 1698239860, "title" => "How I use #GoogleDrive for #Mac", "upload_date" => "20231025"} 16:56:06.570 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=222.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:56:06.573 [debug] QUERY OK source="sources" db=2.2ms idle=224.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:06.575 [debug] QUERY OK source="media_items" db=1.2ms idle=227.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-25 13:17:40Z], 1] 16:56:06.577 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=228.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How I use #GoogleDrive for #Mac", "ea61d9a3-b928-4ff5-b5ed-12f84c37a716", false, "dB69E8okvSA", 1, [], 33, false, "https://www.youtube.com/shorts/dB69E8okvSA", 78, "/downloads/Jeff Su/2023-10-25 How I use #GoogleDrive for #Mac/How I use #GoogleDrive for #Mac [dB69E8okvSA].mp4", false, true, 99, ~U[2023-10-25 13:17:40Z], ~U[2026-04-23 14:56:06Z], ~U[2026-04-23 14:56:06Z], "", "How I use #GoogleDrive for #Mac", "dB69E8okvSA", 1, 33, false, "https://www.youtube.com/shorts/dB69E8okvSA", "/downloads/Jeff Su/2023-10-25 How I use #GoogleDrive for #Mac/How I use #GoogleDrive for #Mac [dB69E8okvSA].mp4", true, ~U[2023-10-25 13:17:40Z]] 16:56:06.579 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=84.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:06.580 [debug] QUERY OK source="media_profiles" db=0.8ms queue=0.1ms idle=8.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:06.581 [debug] QUERY OK source="media_items" db=0.4ms idle=7.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [266] 16:56:06.581 [debug] Current batch of media processed. Will check again in 1000ms 16:56:07.581 [debug] Current batch of media processed. Will check again in 1000ms 16:56:08.582 [debug] Current batch of media processed. Will check again in 1000ms 16:56:08.877 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/kCxlQcKsoZg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/193/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/7f/9a/7f9aa4bfff7799fe3545c81298d0b9e12e11e587f3f5e582f201319a8a822bbd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:56:08.878 [debug] QUERY OK db=0.1ms idle=531.0ms begin [] 16:56:08.879 [debug] QUERY OK source="media_items" db=0.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:56:01Z], "/downloads/Jeff Su/2026-03-20 This NotebookLM feature cuts my workload by 50%/This NotebookLM feature cuts my workload by 50% [kCxlQcKsoZg].mp4", "/downloads/Jeff Su/2026-03-20 This NotebookLM feature cuts my workload by 50%/This NotebookLM feature cuts my workload by 50% [kCxlQcKsoZg].info.json", "/downloads/Jeff Su/2026-03-20 This NotebookLM feature cuts my workload by 50%/This NotebookLM feature cuts my workload by 50% [kCxlQcKsoZg].nfo", "/downloads/Jeff Su/2026-03-20 This NotebookLM feature cuts my workload by 50%/This NotebookLM feature cuts my workload by 50% [kCxlQcKsoZg]-thumb.jpg", ~U[2026-04-23 14:56:08Z], 193] 16:56:08.880 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/193/metadata.json.gz", "/config/metadata/media_items/193/thumbnail.jpg", 193, ~U[2026-04-23 14:56:08Z], ~U[2026-04-23 14:56:08Z]] 16:56:08.880 [debug] QUERY OK db=0.3ms commit [] 16:56:08.884 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=535.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [3266839, ~U[2026-04-23 14:56:08Z], 193] 16:56:08.885 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:08.886 [info] {"args":{"id":193},"id":197,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":22122173,"event":"job:stop","queue_time":287761867,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:08.894 [info] {"args":{"id":195},"id":199,"meta":{},"system_time":1776956168894695354,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:08.896 [debug] QUERY OK source="media_items" db=0.9ms idle=397.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" = ?) [195] 16:56:08.896 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:08.898 [debug] QUERY OK source="sources" db=0.3ms queue=0.5ms idle=16.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:08.899 [debug] QUERY OK source="media_profiles" db=0.9ms idle=13.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] 16:56:08.900 [debug] QUERY OK source="media_items" db=0.8ms 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 [195] 16:56:08.902 [debug] QUERY OK source="media_metadata" db=0.2ms idle=7.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [195] 16:56:08.902 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:08.903 [debug] QUERY OK source="settings" db=0.4ms idle=5.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:08.904 [debug] QUERY OK source="settings" db=0.3ms 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 [] 16:56:08.905 [debug] Running yt-dlp command for action: get_downloadable_status 16:56:08.906 [debug] QUERY OK source="settings" db=0.2ms 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 [] 16:56:08.906 [debug] QUERY OK source="settings" db=0.1ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:08.907 [debug] QUERY OK source="settings" db=0.2ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:08.907 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/sfwax2dVPvI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/87/16/87165a96dda772ec699ec846fe97b125841fb02ac826c9f72c4369c44f0b359d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:56:09.583 [debug] Current batch of media processed. Will check again in 1000ms 16:56:10.585 [debug] Current batch of media processed. Will check again in 1000ms 16:56:10.785 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/Nfe5OCLeD38 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/8b/85/8b85291eb512d106e3a8f9baa84f7aa2a6d48c08b97e5eb038bde4eb185bce6f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:56:10.785 [debug] Running yt-dlp command for action: download 16:56:10.786 [debug] QUERY OK source="settings" db=0.3ms idle=438.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:10.786 [debug] QUERY OK source="settings" db=0.1ms idle=439.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:10.786 [debug] QUERY OK source="settings" db=0.1ms idle=439.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:10.787 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/Nfe5OCLeD38 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/59/22/5922a02f13d538d7ca3fb17af506482b4d512453c22197eaef7976c56f22e902.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:56:11.586 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 60, "filename" => "/downloads/Jeff Su/2023-10-21 Free Tools to Improve Your Next #Presentation/Free Tools to Improve Your Next #Presentation [ZnGhffpunFw].mp4", "id" => "ZnGhffpunFw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/ZnGhffpunFw", "playlist_index" => 79, "timestamp" => 1697894720, "title" => "Free Tools to Improve Your Next #Presentation", "upload_date" => "20231021"} 16:56:11.587 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=1085.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:56:11.590 [debug] QUERY OK source="sources" db=1.9ms idle=802.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:11.593 [debug] QUERY OK source="media_items" db=2.6ms queue=0.1ms idle=804.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-21 13:25:20Z], 1] 16:56:11.598 [debug] QUERY OK source="media_items" db=3.3ms idle=808.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Free Tools to Improve Your Next #Presentation", "2ce80797-9d9a-4662-bd9d-1591fe235ef1", false, "ZnGhffpunFw", 1, [], 60, false, "https://www.youtube.com/shorts/ZnGhffpunFw", 79, "/downloads/Jeff Su/2023-10-21 Free Tools to Improve Your Next #Presentation/Free Tools to Improve Your Next #Presentation [ZnGhffpunFw].mp4", false, true, 99, ~U[2023-10-21 13:25:20Z], ~U[2026-04-23 14:56:11Z], ~U[2026-04-23 14:56:11Z], "", "Free Tools to Improve Your Next #Presentation", "ZnGhffpunFw", 1, 60, false, "https://www.youtube.com/shorts/ZnGhffpunFw", "/downloads/Jeff Su/2023-10-21 Free Tools to Improve Your Next #Presentation/Free Tools to Improve Your Next #Presentation [ZnGhffpunFw].mp4", true, ~U[2023-10-21 13:25:20Z]] 16:56:11.599 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=95.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:11.601 [debug] QUERY OK source="media_profiles" db=0.9ms queue=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] 16:56:11.603 [debug] QUERY OK source="media_items" db=1.0ms idle=11.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 [267] 16:56:11.603 [debug] Current batch of media processed. Will check again in 1000ms 16:56:12.603 [debug] Current batch of media processed. Will check again in 1000ms 16:56:13.604 [debug] Current batch of media processed. Will check again in 1000ms 16:56:14.410 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/sfwax2dVPvI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/87/16/87165a96dda772ec699ec846fe97b125841fb02ac826c9f72c4369c44f0b359d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:56:14.411 [debug] Running yt-dlp command for action: download 16:56:14.412 [debug] QUERY OK source="settings" db=1.1ms idle=1064.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:14.414 [debug] QUERY OK source="settings" db=1.6ms idle=1065.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:14.416 [debug] QUERY OK source="settings" db=1.5ms queue=0.1ms idle=1067.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:14.417 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/sfwax2dVPvI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8d/bd/8dbd73ebd90283727bbaacbe2faae493138038fce5f9e17d6986dd8b3342e88c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:56:14.605 [debug] Current batch of media processed. Will check again in 1000ms 16:56:15.606 [debug] Current batch of media processed. Will check again in 1000ms 16:56:16.608 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 54, "filename" => "/downloads/Jeff Su/2023-10-19 A Very Unethical #resume hack/A Very Unethical #resume hack [QwwS7PxYpzo].mp4", "id" => "QwwS7PxYpzo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/QwwS7PxYpzo", "playlist_index" => 80, "timestamp" => 1697721209, "title" => "A Very Unethical #resume hack", "upload_date" => "20231019"} 16:56:16.609 [debug] QUERY OK source="sources" db=0.7ms idle=1094.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:56:16.610 [debug] QUERY OK source="sources" db=0.4ms idle=257.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:16.611 [debug] QUERY OK source="media_items" db=1.1ms idle=258.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-19 13:13:29Z], 1] 16:56:16.612 [debug] QUERY OK source="media_items" db=0.8ms idle=259.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A Very Unethical #resume hack", "bf30b1c0-abc0-4c57-a918-f43b95564223", false, "QwwS7PxYpzo", 1, [], 54, false, "https://www.youtube.com/shorts/QwwS7PxYpzo", 80, "/downloads/Jeff Su/2023-10-19 A Very Unethical #resume hack/A Very Unethical #resume hack [QwwS7PxYpzo].mp4", false, true, 99, ~U[2023-10-19 13:13:29Z], ~U[2026-04-23 14:56:16Z], ~U[2026-04-23 14:56:16Z], "", "A Very Unethical #resume hack", "QwwS7PxYpzo", 1, 54, false, "https://www.youtube.com/shorts/QwwS7PxYpzo", "/downloads/Jeff Su/2023-10-19 A Very Unethical #resume hack/A Very Unethical #resume hack [QwwS7PxYpzo].mp4", true, ~U[2023-10-19 13:13:29Z]] 16:56:16.613 [debug] QUERY OK source="sources" db=0.4ms idle=96.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:16.614 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:16.615 [debug] QUERY OK source="media_items" db=0.3ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [268] 16:56:16.615 [debug] Current batch of media processed. Will check again in 1000ms 16:56:17.615 [debug] Current batch of media processed. Will check again in 1000ms 16:56:18.315 [info] {"source":"oban","duration":1254,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:56:18.616 [debug] Current batch of media processed. Will check again in 1000ms 16:56:19.618 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 39, "filename" => "/downloads/Jeff Su/2023-10-10 Simple Job Search Trick for #LinkedIn/Simple Job Search Trick for #LinkedIn [pvuqrqhHD_U].mp4", "id" => "pvuqrqhHD_U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/pvuqrqhHD_U", "playlist_index" => 81, "timestamp" => 1696942255, "title" => "Simple Job Search Trick for #LinkedIn", "upload_date" => "20231010"} 16:56:19.619 [debug] QUERY OK source="sources" db=0.6ms idle=1266.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:56:19.619 [debug] QUERY OK source="sources" db=0.2ms idle=1267.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:19.621 [debug] QUERY OK source="media_items" db=1.0ms idle=1099.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-10 12:50:55Z], 1] 16:56:19.622 [debug] QUERY OK source="media_items" db=0.9ms idle=269.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Simple Job Search Trick for #LinkedIn", "d290ac92-54c7-4c35-b0b9-37c4865f318e", false, "pvuqrqhHD_U", 1, [], 39, false, "https://www.youtube.com/shorts/pvuqrqhHD_U", 81, "/downloads/Jeff Su/2023-10-10 Simple Job Search Trick for #LinkedIn/Simple Job Search Trick for #LinkedIn [pvuqrqhHD_U].mp4", false, true, 99, ~U[2023-10-10 12:50:55Z], ~U[2026-04-23 14:56:19Z], ~U[2026-04-23 14:56:19Z], "", "Simple Job Search Trick for #LinkedIn", "pvuqrqhHD_U", 1, 39, false, "https://www.youtube.com/shorts/pvuqrqhHD_U", "/downloads/Jeff Su/2023-10-10 Simple Job Search Trick for #LinkedIn/Simple Job Search Trick for #LinkedIn [pvuqrqhHD_U].mp4", true, ~U[2023-10-10 12:50:55Z]] 16:56:19.623 [debug] QUERY OK source="sources" db=0.2ms idle=99.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:19.624 [debug] QUERY OK source="media_profiles" db=0.9ms 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] 16:56:19.625 [debug] QUERY OK source="media_items" db=0.4ms idle=4.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [269] 16:56:19.625 [debug] Current batch of media processed. Will check again in 1000ms 16:56:19.944 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/Nfe5OCLeD38 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/59/22/5922a02f13d538d7ca3fb17af506482b4d512453c22197eaef7976c56f22e902.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:56:19.979 [debug] Running yt-dlp command for action: download_thumbnail 16:56:19.981 [debug] QUERY OK source="settings" db=0.3ms idle=359.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:19.981 [debug] QUERY OK source="settings" db=0.2ms idle=358.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:19.982 [debug] QUERY OK source="settings" db=0.2ms idle=358.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:19.982 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/Nfe5OCLeD38 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/194/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d3/d8/d3d8407d68995b44b107f88b481886dfb3b0009702ec4ad7f8ae8a0908346a31.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:56:20.625 [debug] Current batch of media processed. Will check again in 1000ms 16:56:21.627 [debug] Current batch of media processed. Will check again in 1000ms 16:56:22.403 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/sfwax2dVPvI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --write-thumbnail --convert-thumbnail jpg --output thumbnail:/downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S]-thumb.%(ext)S --embed-thumbnail --convert-thumbnail jpg --write-info-json --clean-info-json --embed-metadata --remux-video mp4 --format-sort res:720,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8d/bd/8dbd73ebd90283727bbaacbe2faae493138038fce5f9e17d6986dd8b3342e88c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:56:22.440 [debug] Running yt-dlp command for action: download_thumbnail 16:56:22.441 [debug] QUERY OK source="settings" db=0.3ms idle=1089.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:22.442 [debug] QUERY OK source="settings" db=0.2ms idle=1089.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:22.442 [debug] QUERY OK source="settings" db=0.1ms idle=1090.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 16:56:22.442 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/sfwax2dVPvI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/195/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/24/7d/247d0b637048bdaa77f60f02f234c2a22506e886474b24e133b634933e9a02a6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 16:56:22.627 [debug] Current batch of media processed. Will check again in 1000ms 16:56:23.629 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 40, "filename" => "/downloads/Jeff Su/2023-10-05 ❌ Don’t do this on your #CoverLetter/❌ Don’t do this on your #CoverLetter [_RSQIQaRfZ4].mp4", "id" => "_RSQIQaRfZ4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/_RSQIQaRfZ4", "playlist_index" => 82, "timestamp" => 1696514001, "title" => "❌ Don’t do this on your #CoverLetter", "upload_date" => "20231005"} 16:56:23.631 [debug] QUERY OK source="sources" db=2.3ms queue=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 (?)) [1] 16:56:23.634 [debug] QUERY OK source="sources" db=1.8ms queue=0.1ms idle=1189.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:23.638 [debug] QUERY OK source="media_items" db=3.3ms idle=1104.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-05 13:53:21Z], 1] 16:56:23.643 [debug] QUERY OK source="media_items" db=4.2ms idle=286.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["❌ Don’t do this on your #CoverLetter", "e5167408-8b1c-4bb0-a56b-ec3548953111", false, "_RSQIQaRfZ4", 1, [], 40, false, "https://www.youtube.com/shorts/_RSQIQaRfZ4", 82, "/downloads/Jeff Su/2023-10-05 ❌ Don’t do this on your #CoverLetter/❌ Don’t do this on your #CoverLetter [_RSQIQaRfZ4].mp4", false, true, 99, ~U[2023-10-05 13:53:21Z], ~U[2026-04-23 14:56:23Z], ~U[2026-04-23 14:56:23Z], "", "❌ Don’t do this on your #CoverLetter", "_RSQIQaRfZ4", 1, 40, false, "https://www.youtube.com/shorts/_RSQIQaRfZ4", "/downloads/Jeff Su/2023-10-05 ❌ Don’t do this on your #CoverLetter/❌ Don’t do this on your #CoverLetter [_RSQIQaRfZ4].mp4", true, ~U[2023-10-05 13:53:21Z]] 16:56:23.645 [debug] QUERY OK source="sources" db=1.5ms queue=0.1ms idle=111.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:23.647 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=13.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] 16:56:23.648 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=13.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 [270] 16:56:23.649 [debug] Current batch of media processed. Will check again in 1000ms 16:56:24.649 [debug] Current batch of media processed. Will check again in 1000ms 16:56:25.650 [debug] Current batch of media processed. Will check again in 1000ms 16:56:25.992 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/Nfe5OCLeD38 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/194/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d3/d8/d3d8407d68995b44b107f88b481886dfb3b0009702ec4ad7f8ae8a0908346a31.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:56:25.994 [debug] QUERY OK db=0.7ms idle=639.1ms begin [] 16:56:25.996 [debug] QUERY OK source="media_items" db=2.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:56:19Z], "/downloads/Jeff Su/2026-03-11 NotebookLM is now bigger than Gemini/NotebookLM is now bigger than Gemini [Nfe5OCLeD38].mp4", "/downloads/Jeff Su/2026-03-11 NotebookLM is now bigger than Gemini/NotebookLM is now bigger than Gemini [Nfe5OCLeD38].info.json", "/downloads/Jeff Su/2026-03-11 NotebookLM is now bigger than Gemini/NotebookLM is now bigger than Gemini [Nfe5OCLeD38].nfo", "/downloads/Jeff Su/2026-03-11 NotebookLM is now bigger than Gemini/NotebookLM is now bigger than Gemini [Nfe5OCLeD38]-thumb.jpg", ~U[2026-04-23 14:56:25Z], 194] 16:56:25.999 [debug] QUERY OK source="media_metadata" db=2.0ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/194/metadata.json.gz", "/config/metadata/media_items/194/thumbnail.jpg", 194, ~U[2026-04-23 14:56:25Z], ~U[2026-04-23 14:56:25Z]] 16:56:26.000 [debug] QUERY OK db=0.4ms commit [] 16:56:26.002 [debug] QUERY OK source="media_items" db=2.2ms idle=646.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [3361925, ~U[2026-04-23 14:56:26Z], 194] 16:56:26.003 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.004 [info] {"args":{"id":194},"id":198,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":20916026,"event":"job:stop","queue_time":302085884,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.013 [info] {"args":{"id":196},"id":200,"meta":{},"system_time":1776956186012909925,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.014 [debug] QUERY OK source="media_items" db=1.0ms idle=477.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" = ?) [196] 16:56:26.014 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.015 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=15.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.016 [debug] QUERY OK source="media_profiles" db=0.4ms idle=13.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.017 [debug] QUERY OK source="media_items" db=0.5ms idle=12.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [196] 16:56:26.019 [info] {"args":{"id":196},"id":200,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4713,"event":"job:stop","queue_time":314010856,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.041 [info] {"args":{"id":197},"id":201,"meta":{},"system_time":1776956186028628582,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.046 [debug] QUERY OK source="media_items" db=4.0ms queue=0.9ms idle=25.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" = ?) [197] 16:56:26.047 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.048 [debug] QUERY OK source="sources" db=0.7ms idle=31.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.049 [debug] QUERY OK source="media_profiles" db=0.6ms idle=31.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] 16:56:26.050 [debug] QUERY OK source="media_items" db=0.4ms idle=30.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 [197] 16:56:26.051 [info] {"args":{"id":197},"id":201,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":21910,"event":"job:stop","queue_time":310027330,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.058 [info] {"args":{"id":198},"id":202,"meta":{},"system_time":1776956186058421010,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.059 [debug] QUERY OK source="media_items" db=0.7ms idle=10.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" = ?) [198] 16:56:26.060 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.061 [debug] QUERY OK source="sources" db=0.4ms queue=0.4ms idle=10.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.062 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.3ms idle=11.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.063 [debug] QUERY OK source="media_items" db=0.8ms idle=11.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [198] 16:56:26.064 [info] {"args":{"id":198},"id":202,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5262,"event":"job:stop","queue_time":305056796,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.071 [info] {"args":{"id":199},"id":203,"meta":{},"system_time":1776956186071766253,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.860 [notice] Handler :file_log switched from :async to :drop mode 16:56:26.074 [debug] QUERY OK source="media_items" db=2.3ms queue=0.1ms idle=11.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" = ?) [199] 16:56:26.075 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.075 [debug] QUERY OK source="sources" db=0.3ms queue=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" = ?) [1] 16:56:26.076 [debug] QUERY OK source="media_profiles" db=0.2ms idle=12.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] 16:56:26.077 [debug] QUERY OK source="media_items" db=0.4ms 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 [199] 16:56:26.078 [info] {"args":{"id":199},"id":203,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5780,"event":"job:stop","queue_time":302069867,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.085 [info] {"args":{"id":200},"id":204,"meta":{},"system_time":1776956186085192003,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.087 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=10.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [200] 16:56:26.087 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.089 [debug] QUERY OK source="sources" db=1.3ms decode=0.1ms queue=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" = ?) [1] 16:56:26.091 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.9ms idle=12.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] 16:56:26.093 [debug] QUERY OK source="media_items" db=0.7ms queue=0.2ms idle=14.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 [200] 16:56:26.100 [info] {"args":{"id":200},"id":204,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8807,"event":"job:stop","queue_time":298083884,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.107 [info] {"args":{"id":201},"id":205,"meta":{},"system_time":1776956186107195002,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.108 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=18.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" = ?) [201] 16:56:26.108 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.109 [debug] QUERY OK source="sources" db=0.4ms queue=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" = ?) [1] 16:56:26.110 [debug] QUERY OK source="media_profiles" db=0.5ms idle=16.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] 16:56:26.111 [debug] QUERY OK source="media_items" db=0.8ms idle=10.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [201] 16:56:26.116 [info] {"args":{"id":201},"id":205,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4792,"event":"job:stop","queue_time":294105878,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.124 [info] {"args":{"id":202},"id":206,"meta":{},"system_time":1776956186124747847,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.126 [debug] QUERY OK source="media_items" db=0.8ms idle=15.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" = ?) [202] 16:56:26.127 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.128 [debug] QUERY OK source="sources" db=0.7ms queue=0.6ms idle=16.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.130 [debug] QUERY OK source="media_profiles" db=1.0ms idle=17.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] 16:56:26.132 [debug] QUERY OK source="media_items" db=1.7ms idle=14.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 [202] 16:56:26.135 [info] {"args":{"id":202},"id":206,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7958,"event":"job:stop","queue_time":282122889,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.142 [info] {"args":{"id":203},"id":207,"meta":{},"system_time":1776956186142096435,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.151 [debug] QUERY OK source="media_items" db=8.8ms idle=13.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" = ?) [203] 16:56:26.152 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.153 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=22.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.153 [debug] QUERY OK source="media_profiles" db=0.5ms idle=20.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] 16:56:26.154 [debug] QUERY OK source="media_items" db=0.5ms idle=19.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 [203] 16:56:26.156 [info] {"args":{"id":203},"id":207,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":12813,"event":"job:stop","queue_time":278140888,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.163 [info] {"args":{"id":204},"id":208,"meta":{},"system_time":1776956186163146206,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.167 [debug] QUERY OK source="media_items" db=3.4ms idle=10.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" = ?) [204] 16:56:26.168 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.172 [debug] QUERY OK source="sources" db=2.3ms queue=1.2ms idle=14.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.172 [debug] QUERY OK source="media_profiles" db=0.3ms idle=17.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] 16:56:26.173 [debug] QUERY OK source="media_items" db=0.5ms idle=17.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 [204] 16:56:26.174 [info] {"args":{"id":204},"id":208,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":10786,"event":"job:stop","queue_time":272161885,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.183 [info] {"args":{"id":205},"id":209,"meta":{},"system_time":1776956186182890200,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.187 [debug] QUERY OK source="media_items" db=3.7ms queue=0.3ms idle=11.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" = ?) [205] 16:56:26.188 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.191 [debug] QUERY OK source="sources" db=2.5ms queue=0.1ms idle=15.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.193 [debug] QUERY OK source="media_profiles" db=1.3ms queue=0.1ms idle=17.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] 16:56:26.195 [debug] QUERY OK source="media_items" db=1.4ms idle=18.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 [205] 16:56:26.198 [info] {"args":{"id":205},"id":209,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":12263,"event":"job:stop","queue_time":266180896,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.206 [info] {"args":{"id":206},"id":210,"meta":{},"system_time":1776956186206241344,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.209 [debug] QUERY OK source="media_items" db=2.3ms idle=15.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" = ?) [206] 16:56:26.209 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.210 [debug] QUERY OK source="sources" db=0.3ms idle=16.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.214 [debug] QUERY OK source="media_profiles" db=3.6ms idle=15.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] 16:56:26.217 [debug] QUERY OK source="media_items" db=1.4ms idle=17.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 [206] 16:56:26.219 [info] {"args":{"id":206},"id":210,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":11341,"event":"job:stop","queue_time":262204900,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.226 [info] {"args":{"id":207},"id":211,"meta":{},"system_time":1776956186226101205,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.228 [debug] QUERY OK source="media_items" db=1.3ms idle=17.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [207] 16:56:26.230 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.860 [notice] Handler :file_log switched from :drop to :sync mode 16:56:26.233 [debug] QUERY OK source="sources" db=2.2ms queue=0.1ms idle=17.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.236 [debug] QUERY OK source="media_profiles" db=2.4ms queue=0.1ms idle=16.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] 16:56:26.239 [debug] QUERY OK source="media_items" db=2.4ms idle=17.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 [207] 16:56:26.242 [info] {"args":{"id":207},"id":211,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":13490,"event":"job:stop","queue_time":258224893,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.250 [info] {"args":{"id":208},"id":212,"meta":{},"system_time":1776956186250222889,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.252 [debug] QUERY OK source="media_items" db=1.7ms queue=0.1ms idle=17.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [208] 16:56:26.253 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.258 [debug] QUERY OK source="sources" db=4.7ms queue=0.1ms idle=16.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.262 [debug] QUERY OK source="media_profiles" db=4.0ms queue=0.1ms idle=19.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] 16:56:26.264 [debug] QUERY OK source="media_items" db=1.0ms idle=20.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 [208] 16:56:26.265 [info] {"args":{"id":208},"id":212,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":14331,"event":"job:stop","queue_time":255248863,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.272 [info] {"args":{"id":209},"id":213,"meta":{},"system_time":1776956186272168761,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.273 [debug] QUERY OK source="media_items" db=0.4ms idle=14.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" = ?) [209] 16:56:26.273 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.273 [debug] QUERY OK source="sources" db=0.3ms idle=10.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.274 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.275 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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 [209] 16:56:26.275 [info] {"args":{"id":209},"id":213,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3130,"event":"job:stop","queue_time":251270885,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.284 [info] {"args":{"id":210},"id":214,"meta":{},"system_time":1776956186284479478,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.285 [debug] QUERY OK source="media_items" db=0.7ms idle=11.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [210] 16:56:26.286 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.287 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=12.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.288 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=12.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] 16:56:26.289 [debug] QUERY OK source="media_items" db=0.6ms idle=13.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 [210] 16:56:26.291 [info] {"args":{"id":210},"id":214,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5239,"event":"job:stop","queue_time":247281860,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.298 [info] {"args":{"id":211},"id":215,"meta":{},"system_time":1776956186298211809,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.299 [debug] QUERY OK source="media_items" db=0.7ms idle=11.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" = ?) [211] 16:56:26.300 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.300 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=12.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.301 [debug] QUERY OK source="media_profiles" db=0.4ms idle=11.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.305 [debug] QUERY OK source="media_items" db=3.5ms idle=10.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [211] 16:56:26.311 [info] {"args":{"id":211},"id":215,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7513,"event":"job:stop","queue_time":243296878,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.319 [info] {"args":{"id":212},"id":216,"meta":{},"system_time":1776956186319202299,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.323 [debug] QUERY OK source="media_items" db=3.4ms queue=0.1ms idle=18.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" = ?) [212] 16:56:26.324 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.327 [debug] QUERY OK source="sources" db=2.0ms queue=0.6ms idle=23.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.330 [debug] QUERY OK source="media_profiles" db=2.0ms queue=0.1ms idle=22.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] 16:56:26.332 [debug] QUERY OK source="media_items" db=2.1ms idle=18.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 [212] 16:56:26.335 [info] {"args":{"id":212},"id":216,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":13825,"event":"job:stop","queue_time":238317893,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.343 [info] {"args":{"id":213},"id":217,"meta":{},"system_time":1776956186343224446,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.346 [debug] QUERY OK source="media_items" db=2.5ms idle=16.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" = ?) [213] 16:56:26.347 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.348 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=17.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.349 [debug] QUERY OK source="media_profiles" db=0.7ms idle=15.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] 16:56:26.352 [debug] QUERY OK source="media_items" db=1.9ms idle=14.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [213] 16:56:26.352 [info] {"args":{"id":213},"id":217,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":8967,"event":"job:stop","queue_time":234341888,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.360 [info] {"args":{"id":214},"id":218,"meta":{},"system_time":1776956186360130813,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.362 [debug] QUERY OK source="media_items" db=1.9ms idle=12.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" = ?) [214] 16:56:26.363 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.363 [debug] QUERY OK source="sources" db=0.3ms idle=13.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.364 [debug] QUERY OK source="media_profiles" db=0.6ms idle=11.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.365 [debug] QUERY OK source="media_items" db=0.6ms idle=12.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 [214] 16:56:26.366 [info] {"args":{"id":214},"id":218,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5530,"event":"job:stop","queue_time":229358881,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.374 [info] {"args":{"id":215},"id":219,"meta":{},"system_time":1776956186374089410,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.375 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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" = ?) [215] 16:56:26.375 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.376 [debug] QUERY OK source="sources" db=0.3ms idle=11.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.376 [debug] QUERY OK source="media_profiles" db=0.3ms idle=10.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.377 [debug] QUERY OK source="media_items" db=0.3ms idle=10.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [215] 16:56:26.378 [info] {"args":{"id":215},"id":219,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3428,"event":"job:stop","queue_time":226372866,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.385 [info] {"args":{"id":216},"id":220,"meta":{},"system_time":1776956186385092831,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.386 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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" = ?) [216] 16:56:26.386 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.386 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.387 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.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] 16:56:26.388 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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 [216] 16:56:26.388 [info] {"args":{"id":216},"id":220,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3115,"event":"job:stop","queue_time":221383886,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.396 [info] {"args":{"id":217},"id":221,"meta":{},"system_time":1776956186396115006,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.397 [debug] QUERY OK source="media_items" db=0.4ms idle=9.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [217] 16:56:26.397 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.397 [debug] QUERY OK source="sources" db=0.2ms idle=10.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.398 [debug] QUERY OK source="media_profiles" db=0.3ms idle=10.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] 16:56:26.399 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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 [217] 16:56:26.399 [info] {"args":{"id":217},"id":221,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3284,"event":"job:stop","queue_time":218394894,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.407 [info] {"args":{"id":218},"id":222,"meta":{},"system_time":1776956186407104324,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.408 [debug] QUERY OK source="media_items" db=0.4ms idle=9.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" = ?) [218] 16:56:26.409 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.409 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=10.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.410 [debug] QUERY OK source="media_profiles" db=0.2ms 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] 16:56:26.411 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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 [218] 16:56:26.412 [info] {"args":{"id":218},"id":222,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4309,"event":"job:stop","queue_time":214405889,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.420 [info] {"args":{"id":219},"id":223,"meta":{},"system_time":1776956186420108709,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.422 [debug] QUERY OK source="media_items" db=2.1ms idle=10.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" = ?) [219] 16:56:26.425 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.428 [debug] QUERY OK source="sources" db=2.3ms queue=0.1ms idle=15.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.429 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.5ms idle=17.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] 16:56:26.431 [debug] QUERY OK source="media_items" db=0.6ms idle=18.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 [219] 16:56:26.432 [info] {"args":{"id":219},"id":223,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":11249,"event":"job:stop","queue_time":211418671,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.439 [info] {"args":{"id":220},"id":224,"meta":{},"system_time":1776956186439203008,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.442 [debug] QUERY OK source="media_items" db=2.1ms idle=11.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [220] 16:56:26.444 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.446 [debug] QUERY OK source="sources" db=2.1ms queue=0.2ms idle=14.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.447 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=16.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] 16:56:26.448 [debug] QUERY OK source="media_items" db=0.4ms idle=16.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 [220] 16:56:26.449 [info] {"args":{"id":220},"id":224,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":9890,"event":"job:stop","queue_time":207437885,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.457 [info] {"args":{"id":221},"id":225,"meta":{},"system_time":1776956186457116062,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.458 [debug] QUERY OK source="media_items" db=0.9ms idle=10.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" = ?) [221] 16:56:26.460 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.461 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=12.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.463 [debug] QUERY OK source="media_profiles" db=0.9ms idle=13.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] 16:56:26.464 [debug] QUERY OK source="media_items" db=0.8ms idle=13.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 [221] 16:56:26.465 [info] {"args":{"id":221},"id":225,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7376,"event":"job:stop","queue_time":202455897,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.473 [info] {"args":{"id":222},"id":226,"meta":{},"system_time":1776956186473263608,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.474 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=12.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" = ?) [222] 16:56:26.475 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.476 [debug] QUERY OK source="sources" db=0.3ms queue=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" = ?) [1] 16:56:26.477 [debug] QUERY OK source="media_profiles" db=0.2ms idle=12.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] 16:56:26.478 [debug] QUERY OK source="media_items" db=0.3ms idle=11.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 [222] 16:56:26.478 [info] {"args":{"id":222},"id":226,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4903,"event":"job:stop","queue_time":197471901,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.486 [info] {"args":{"id":223},"id":227,"meta":{},"system_time":1776956186486104136,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.487 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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" = ?) [223] 16:56:26.488 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.488 [debug] QUERY OK source="sources" db=0.3ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.489 [debug] QUERY OK source="media_profiles" db=0.4ms idle=10.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] 16:56:26.490 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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 [223] 16:56:26.490 [info] {"args":{"id":223},"id":227,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4091,"event":"job:stop","queue_time":193484893,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.498 [info] {"args":{"id":224},"id":228,"meta":{},"system_time":1776956186498133657,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.499 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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" = ?) [224] 16:56:26.500 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.500 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=11.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.501 [debug] QUERY OK source="media_profiles" db=0.2ms idle=11.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.502 [debug] QUERY OK source="media_items" db=0.4ms idle=11.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [224] 16:56:26.503 [info] {"args":{"id":224},"id":228,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4422,"event":"job:stop","queue_time":189496886,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.512 [info] {"args":{"id":225},"id":229,"meta":{},"system_time":1776956186511868710,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.514 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms 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 WHERE (m0."id" = ?) [225] 16:56:26.516 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.517 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=14.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.519 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=15.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] 16:56:26.521 [debug] QUERY OK source="media_items" db=1.6ms idle=16.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [225] 16:56:26.523 [info] {"args":{"id":225},"id":229,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":9775,"event":"job:stop","queue_time":185509024,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.532 [info] {"args":{"id":226},"id":230,"meta":{},"system_time":1776956186532036606,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.537 [debug] QUERY OK source="media_items" db=2.9ms queue=0.1ms idle=16.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [226] 16:56:26.540 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.547 [debug] QUERY OK source="sources" db=7.5ms queue=0.1ms idle=18.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.555 [debug] QUERY OK source="media_profiles" db=3.9ms queue=2.6ms idle=25.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] 16:56:26.556 [debug] QUERY OK source="media_items" db=0.4ms idle=24.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [226] 16:56:26.557 [info] {"args":{"id":226},"id":230,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":24541,"event":"job:stop","queue_time":182529862,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.562 [info] {"args":{"id":227},"id":231,"meta":{},"system_time":1776956186562059156,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.563 [debug] QUERY OK source="media_items" db=0.9ms idle=7.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [227] 16:56:26.564 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.567 [debug] QUERY OK source="sources" db=2.4ms queue=0.3ms idle=8.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.568 [debug] QUERY OK source="media_profiles" db=0.6ms queue=0.1ms idle=11.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.569 [debug] QUERY OK source="media_items" db=0.5ms idle=11.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 [227] 16:56:26.570 [info] {"args":{"id":227},"id":231,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7466,"event":"job:stop","queue_time":177560857,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.577 [info] {"args":{"id":228},"id":232,"meta":{},"system_time":1776956186577230947,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.578 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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" = ?) [228] 16:56:26.578 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.579 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=10.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.580 [debug] QUERY OK source="media_profiles" db=0.3ms idle=10.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.581 [debug] QUERY OK source="media_items" db=0.3ms idle=10.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [228] 16:56:26.582 [info] {"args":{"id":228},"id":232,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3955,"event":"job:stop","queue_time":173575887,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.589 [info] {"args":{"id":229},"id":233,"meta":{},"system_time":1776956186589080413,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.590 [debug] QUERY OK source="media_items" db=0.4ms idle=10.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" = ?) [229] 16:56:26.590 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.590 [debug] QUERY OK source="sources" db=0.2ms idle=10.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.591 [debug] QUERY OK source="media_profiles" db=0.3ms idle=10.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] 16:56:26.592 [debug] QUERY OK source="media_items" db=0.3ms idle=9.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [229] 16:56:26.593 [info] {"args":{"id":229},"id":233,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3238,"event":"job:stop","queue_time":170587893,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.606 [info] {"args":{"id":230},"id":234,"meta":{},"system_time":1776956186606377227,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.607 [debug] QUERY OK source="media_items" db=0.4ms idle=16.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [230] 16:56:26.607 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.608 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=16.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.609 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.2ms idle=16.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.610 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=16.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 [230] 16:56:26.611 [info] {"args":{"id":230},"id":234,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":4193,"event":"job:stop","queue_time":165598886,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.618 [info] {"args":{"id":231},"id":235,"meta":{},"system_time":1776956186618097713,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.619 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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" = ?) [231] 16:56:26.619 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.620 [debug] QUERY OK source="sources" db=0.9ms idle=10.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.621 [debug] QUERY OK source="media_profiles" db=1.0ms queue=0.1ms idle=10.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.623 [debug] QUERY OK source="media_items" db=1.0ms idle=11.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [231] 16:56:26.624 [info] {"args":{"id":231},"id":235,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":5484,"event":"job:stop","queue_time":161616880,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.632 [info] {"args":{"id":232},"id":236,"meta":{},"system_time":1776956186632439882,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.635 [debug] QUERY OK source="media_items" db=1.7ms queue=0.7ms idle=12.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" = ?) [232] 16:56:26.635 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.636 [debug] QUERY OK source="sources" db=0.9ms idle=13.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.638 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=13.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] 16:56:26.639 [debug] QUERY OK source="media_items" db=1.0ms idle=13.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 [232] 16:56:26.640 [info] {"args":{"id":232},"id":236,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7346,"event":"job:stop","queue_time":157630886,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.648 [info] {"args":{"id":233},"id":237,"meta":{},"system_time":1776956186648162071,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.649 [debug] QUERY OK source="media_items" db=0.4ms idle=11.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" = ?) [233] 16:56:26.649 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.650 [debug] QUERY OK source="sources" db=0.2ms 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" = ?) [1] 16:56:26.650 [debug] QUERY OK source="media_profiles" db=0.3ms idle=10.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.651 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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 [233] 16:56:26.651 [debug] Current batch of media processed. Will check again in 1000ms 16:56:26.653 [info] {"args":{"id":233},"id":237,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3448,"event":"job:stop","queue_time":153646884,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.661 [info] {"args":{"id":234},"id":238,"meta":{},"system_time":1776956186661027249,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.664 [debug] QUERY OK source="media_items" db=2.6ms idle=11.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" = ?) [234] 16:56:26.664 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.664 [debug] QUERY OK source="sources" db=0.3ms idle=13.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:26.665 [debug] QUERY OK source="media_profiles" db=0.4ms idle=13.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] 16:56:26.666 [debug] QUERY OK source="media_items" db=0.7ms idle=12.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 [234] 16:56:26.669 [info] {"args":{"id":234},"id":238,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":6007,"event":"job:stop","queue_time":149659850,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.677 [info] {"args":{"id":235},"id":239,"meta":{},"system_time":1776956186677030381,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:26.677 [debug] QUERY OK source="media_items" db=0.3ms idle=12.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" = ?) [235] 16:56:26.678 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:26.678 [debug] QUERY OK source="sources" db=0.2ms idle=12.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:26.679 [debug] QUERY OK source="media_profiles" db=0.3ms idle=11.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:26.679 [debug] QUERY OK source="media_items" db=0.3ms idle=9.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [235] 16:56:27.645 [info] {"args":{"id":235},"id":239,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2797,"event":"job:stop","queue_time":145675858,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:27.653 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 59, "filename" => "/downloads/Jeff Su/2023-09-26 How McKinsey, Bain, BCG create presentations #managementconsulting/How McKinsey, Bain, BCG create presentations #managementconsulting [Pn7P4an85fc].mp4", "id" => "Pn7P4an85fc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/Pn7P4an85fc", "playlist_index" => 83, "timestamp" => 1695734534, "title" => "How McKinsey, Bain, BCG create presentations #managementconsulting", "upload_date" => "20230926"} 16:56:27.653 [debug] QUERY OK source="sources" db=0.2ms idle=974.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:56:27.654 [debug] QUERY OK source="sources" db=0.2ms idle=974.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:27.661 [debug] QUERY OK source="media_items" db=6.5ms idle=97.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-26 13:22:14Z], 1] 16:56:28.280 [info] {"args":{"id":236},"id":240,"meta":{},"system_time":1776956188278227446,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.281 [debug] QUERY OK source="media_items" db=0.4ms idle=627.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" = ?) [236] 16:56:28.281 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.282 [debug] QUERY OK source="sources" db=0.3ms idle=627.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:28.284 [debug] QUERY OK source="media_profiles" db=1.1ms idle=621.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] 16:56:28.285 [debug] QUERY OK source="media_items" db=0.7ms 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 [236] 16:56:28.286 [info] {"args":{"id":236},"id":240,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":7509,"event":"job:stop","queue_time":142651823,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.294 [debug] QUERY OK source="media_items" db=632.7ms idle=15.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How McKinsey, Bain, BCG create presentations #managementconsulting", "daf83eaf-0e56-4ee1-8d48-367d07402117", false, "Pn7P4an85fc", 1, [], 59, false, "https://www.youtube.com/shorts/Pn7P4an85fc", 83, "/downloads/Jeff Su/2023-09-26 How McKinsey, Bain, BCG create presentations #managementconsulting/How McKinsey, Bain, BCG create presentations #managementconsulting [Pn7P4an85fc].mp4", false, true, 99, ~U[2023-09-26 13:22:14Z], ~U[2026-04-23 14:56:27Z], ~U[2026-04-23 14:56:27Z], "", "How McKinsey, Bain, BCG create presentations #managementconsulting", "Pn7P4an85fc", 1, 59, false, "https://www.youtube.com/shorts/Pn7P4an85fc", "/downloads/Jeff Su/2023-09-26 How McKinsey, Bain, BCG create presentations #managementconsulting/How McKinsey, Bain, BCG create presentations #managementconsulting [Pn7P4an85fc].mp4", true, ~U[2023-09-26 13:22:14Z]] 16:56:28.296 [debug] QUERY OK source="sources" db=1.5ms idle=12.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:28.298 [debug] QUERY OK source="media_profiles" db=0.8ms idle=13.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] 16:56:28.298 [debug] QUERY OK source="media_items" db=0.3ms idle=13.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 [271] 16:56:28.299 [debug] Current batch of media processed. Will check again in 1000ms 16:56:28.300 [info] {"args":{"id":237},"id":241,"meta":{},"system_time":1776956188300791527,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.301 [debug] QUERY OK source="media_items" db=0.2ms idle=6.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [237] 16:56:28.301 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.302 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:28.303 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:28.303 [debug] QUERY OK source="media_items" db=0.5ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [237] 16:56:28.305 [info] {"args":{"id":237},"id":241,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3289,"event":"job:stop","queue_time":139299815,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.312 [info] {"args":{"id":238},"id":242,"meta":{},"system_time":1776956188312024801,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.312 [debug] QUERY OK source="media_items" db=0.2ms idle=9.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" = ?) [238] 16:56:28.313 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.313 [debug] QUERY OK source="sources" db=0.2ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:28.314 [debug] QUERY OK source="media_profiles" db=0.4ms idle=9.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] 16:56:28.315 [debug] QUERY OK source="media_items" db=1.1ms idle=9.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [238] 16:56:28.316 [info] {"args":{"id":238},"id":242,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3794,"event":"job:stop","queue_time":136310846,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.323 [info] {"args":{"id":239},"id":243,"meta":{},"system_time":1776956188323136679,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.323 [debug] QUERY OK source="media_items" db=0.3ms idle=10.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" = ?) [239] 16:56:28.324 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.324 [debug] QUERY OK source="sources" db=0.2ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:28.325 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:28.325 [debug] QUERY OK source="media_items" db=0.3ms idle=9.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [239] 16:56:28.326 [info] {"args":{"id":239},"id":243,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2890,"event":"job:stop","queue_time":132321806,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.333 [info] {"args":{"id":240},"id":244,"meta":{},"system_time":1776956188332974140,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.333 [debug] QUERY OK source="media_items" db=0.3ms idle=8.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [240] 16:56:28.334 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.334 [debug] QUERY OK source="sources" db=0.2ms idle=9.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:28.335 [debug] QUERY OK source="media_profiles" db=0.2ms idle=8.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] 16:56:28.335 [debug] QUERY OK source="media_items" db=0.3ms idle=8.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [240] 16:56:28.336 [info] {"args":{"id":240},"id":244,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2953,"event":"job:stop","queue_time":128331845,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.343 [info] {"args":{"id":241},"id":245,"meta":{},"system_time":1776956188342921190,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.343 [debug] QUERY OK source="media_items" db=0.3ms idle=8.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [241] 16:56:28.344 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.344 [debug] QUERY OK source="sources" db=0.2ms idle=8.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:28.344 [debug] QUERY OK source="media_profiles" db=0.2ms idle=8.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:28.345 [debug] QUERY OK source="media_items" db=0.3ms idle=8.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [241] 16:56:28.346 [info] {"args":{"id":241},"id":245,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2788,"event":"job:stop","queue_time":124341830,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.353 [info] {"args":{"id":242},"id":246,"meta":{},"system_time":1776956188352860377,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.353 [debug] QUERY OK source="media_items" db=0.3ms idle=8.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [242] 16:56:28.353 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.354 [debug] QUERY OK source="sources" db=0.8ms idle=9.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:28.355 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:28.356 [debug] QUERY OK source="media_items" db=0.3ms idle=9.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [242] 16:56:28.356 [info] {"args":{"id":242},"id":246,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3596,"event":"job:stop","queue_time":119351850,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.364 [info] {"args":{"id":243},"id":247,"meta":{},"system_time":1776956188364078214,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.364 [debug] QUERY OK source="media_items" db=0.2ms idle=9.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" = ?) [243] 16:56:28.365 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.365 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:28.366 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:28.366 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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 [243] 16:56:28.367 [info] {"args":{"id":243},"id":247,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2866,"event":"job:stop","queue_time":116362852,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.374 [info] {"args":{"id":244},"id":248,"meta":{},"system_time":1776956188373958489,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.374 [debug] QUERY OK source="media_items" db=0.2ms idle=8.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [244] 16:56:28.374 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.375 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=8.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:28.375 [debug] QUERY OK source="media_profiles" db=0.2ms idle=8.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] 16:56:28.376 [debug] QUERY OK source="media_items" db=0.4ms idle=8.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [244] 16:56:28.377 [info] {"args":{"id":244},"id":248,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2836,"event":"job:stop","queue_time":111372866,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.384 [info] {"args":{"id":245},"id":249,"meta":{},"system_time":1776956188383961735,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.384 [debug] QUERY OK source="media_items" db=0.3ms 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 WHERE (m0."id" = ?) [245] 16:56:28.385 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.385 [debug] QUERY OK source="sources" db=0.2ms idle=9.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:28.386 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:28.386 [debug] QUERY OK source="media_items" db=0.3ms idle=9.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [245] 16:56:28.387 [info] {"args":{"id":245},"id":249,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3065,"event":"job:stop","queue_time":108382873,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.394 [info] {"args":{"id":246},"id":250,"meta":{},"system_time":1776956188393834341,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.394 [debug] QUERY OK source="media_items" db=0.3ms idle=8.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" = ?) [246] 16:56:28.394 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.395 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:56:28.396 [debug] QUERY OK source="media_profiles" db=0.3ms idle=8.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:28.396 [debug] QUERY OK source="media_items" db=0.4ms idle=8.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [246] 16:56:28.397 [info] {"args":{"id":246},"id":250,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3032,"event":"job:stop","queue_time":103392854,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.404 [info] {"args":{"id":247},"id":251,"meta":{},"system_time":1776956188404065730,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.405 [debug] QUERY OK source="media_items" db=0.8ms idle=9.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" = ?) [247] 16:56:28.405 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.406 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:28.406 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:28.407 [debug] QUERY OK source="media_items" db=0.3ms idle=9.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [247] 16:56:28.407 [info] {"args":{"id":247},"id":251,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":3352,"event":"job:stop","queue_time":99402890,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.415 [info] {"args":{"id":248},"id":252,"meta":{},"system_time":1776956188414899348,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.415 [debug] QUERY OK source="media_items" db=0.2ms idle=9.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" = ?) [248] 16:56:28.415 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.416 [debug] QUERY OK source="sources" db=0.2ms idle=9.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:28.416 [debug] QUERY OK source="media_profiles" db=0.3ms idle=9.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:28.417 [debug] QUERY OK source="media_items" db=0.3ms idle=9.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [248] 16:56:28.418 [info] {"args":{"id":248},"id":252,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2784,"event":"job:stop","queue_time":95413848,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.425 [info] {"args":{"id":249},"id":253,"meta":{},"system_time":1776956188425002127,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:28.425 [debug] QUERY OK source="media_items" db=0.3ms idle=9.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" = ?) [249] 16:56:28.426 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:28.426 [debug] QUERY OK source="sources" db=0.2ms idle=9.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:28.427 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:28.427 [debug] QUERY OK source="media_items" db=0.3ms idle=9.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [249] 16:56:28.428 [info] {"args":{"id":249},"id":253,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":2995,"event":"job:stop","queue_time":91423852,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:29.202 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/shorts/sfwax2dVPvI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/195/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/24/7d/247d0b637048bdaa77f60f02f234c2a22506e886474b24e133b634933e9a02a6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:56:29.204 [debug] QUERY OK db=0.9ms idle=776.3ms begin [] 16:56:29.208 [debug] QUERY OK source="media_items" db=3.0ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "metadata_filepath" = ?, "nfo_filepath" = ?, "thumbnail_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:56:22Z], "/downloads/Jeff Su/2026-02-27 When to use #ChatGPT, #Gemini, and #Claude/When to use #ChatGPT, #Gemini, and #Claude [sfwax2dVPvI].mp4", "/downloads/Jeff Su/2026-02-27 When to use #ChatGPT, #Gemini, and #Claude/When to use #ChatGPT, #Gemini, and #Claude [sfwax2dVPvI].info.json", "/downloads/Jeff Su/2026-02-27 When to use #ChatGPT, #Gemini, and #Claude/When to use #ChatGPT, #Gemini, and #Claude [sfwax2dVPvI].nfo", "/downloads/Jeff Su/2026-02-27 When to use #ChatGPT, #Gemini, and #Claude/When to use #ChatGPT, #Gemini, and #Claude [sfwax2dVPvI]-thumb.jpg", ~U[2026-04-23 14:56:29Z], 195] 16:56:29.209 [debug] QUERY OK source="media_metadata" db=0.6ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/195/metadata.json.gz", "/config/metadata/media_items/195/thumbnail.jpg", 195, ~U[2026-04-23 14:56:29Z], ~U[2026-04-23 14:56:29Z]] 16:56:29.209 [debug] QUERY OK db=0.3ms commit [] 16:56:29.210 [debug] QUERY OK source="media_items" db=0.7ms idle=782.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [3267186, ~U[2026-04-23 14:56:29Z], 195] 16:56:29.211 [info] User scripts lifecyle file either not present or is empty. Skipping. 16:56:29.212 [info] {"args":{"id":195},"id":199,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":20316706,"event":"job:stop","queue_time":301891888,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 16:56:29.299 [debug] Current batch of media processed. Will check again in 1000ms 16:56:30.300 [debug] Current batch of media processed. Will check again in 1000ms 16:56:31.302 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 56, "filename" => "/downloads/Jeff Su/2023-09-21 Negotiate a Higher #salary/Negotiate a Higher #salary [RU9aRYmwuHU].mp4", "id" => "RU9aRYmwuHU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/RU9aRYmwuHU", "playlist_index" => 84, "timestamp" => 1695300584, "title" => "Negotiate a Higher #salary", "upload_date" => "20230921"} 16:56:31.303 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=948.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:56:31.303 [debug] QUERY OK source="sources" db=0.2ms idle=949.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:31.305 [debug] QUERY OK source="media_items" db=1.1ms idle=950.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-21 12:49:44Z], 1] 16:56:31.306 [debug] QUERY OK source="media_items" db=0.8ms idle=951.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Negotiate a Higher #salary", "a171a566-3273-4943-a872-7149805288d5", false, "RU9aRYmwuHU", 1, [], 56, false, "https://www.youtube.com/shorts/RU9aRYmwuHU", 84, "/downloads/Jeff Su/2023-09-21 Negotiate a Higher #salary/Negotiate a Higher #salary [RU9aRYmwuHU].mp4", false, true, 99, ~U[2023-09-21 12:49:44Z], ~U[2026-04-23 14:56:31Z], ~U[2026-04-23 14:56:31Z], "", "Negotiate a Higher #salary", "RU9aRYmwuHU", 1, 56, false, "https://www.youtube.com/shorts/RU9aRYmwuHU", "/downloads/Jeff Su/2023-09-21 Negotiate a Higher #salary/Negotiate a Higher #salary [RU9aRYmwuHU].mp4", true, ~U[2023-09-21 12:49:44Z]] 16:56:31.307 [debug] QUERY OK source="sources" db=0.5ms idle=742.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:31.308 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:31.308 [debug] QUERY OK source="media_items" db=0.3ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [272] 16:56:31.308 [debug] Current batch of media processed. Will check again in 1000ms 16:56:32.309 [debug] Current batch of media processed. Will check again in 1000ms 16:56:33.310 [debug] Current batch of media processed. Will check again in 1000ms 16:56:34.311 [debug] Current batch of media processed. Will check again in 1000ms 16:56:35.313 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 57, "filename" => "/downloads/Jeff Su/2023-09-12 File Management Tips for #productivity/File Management Tips for #productivity [ZzeJoFa07OM].mp4", "id" => "ZzeJoFa07OM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/ZzeJoFa07OM", "playlist_index" => 85, "timestamp" => 1694522718, "title" => "File Management Tips for #productivity", "upload_date" => "20230912"} 16:56:35.313 [debug] QUERY OK source="sources" db=0.3ms idle=959.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:56:35.314 [debug] QUERY OK source="sources" db=0.2ms idle=960.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:35.315 [debug] QUERY OK source="media_items" db=0.9ms idle=960.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-12 12:45:18Z], 1] 16:56:35.317 [debug] QUERY OK source="media_items" db=1.4ms idle=962.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["File Management Tips for #productivity", "5bee1c1c-f924-4022-8b23-7f5ee657f0b0", false, "ZzeJoFa07OM", 1, [], 57, false, "https://www.youtube.com/shorts/ZzeJoFa07OM", 85, "/downloads/Jeff Su/2023-09-12 File Management Tips for #productivity/File Management Tips for #productivity [ZzeJoFa07OM].mp4", false, true, 99, ~U[2023-09-12 12:45:18Z], ~U[2026-04-23 14:56:35Z], ~U[2026-04-23 14:56:35Z], "", "File Management Tips for #productivity", "ZzeJoFa07OM", 1, 57, false, "https://www.youtube.com/shorts/ZzeJoFa07OM", "/downloads/Jeff Su/2023-09-12 File Management Tips for #productivity/File Management Tips for #productivity [ZzeJoFa07OM].mp4", true, ~U[2023-09-12 12:45:18Z]] 16:56:35.318 [debug] QUERY OK source="sources" db=0.4ms idle=745.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:35.318 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:35.322 [debug] QUERY OK source="media_items" db=1.9ms queue=1.4ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [273] 16:56:35.322 [debug] Current batch of media processed. Will check again in 1000ms 16:56:36.323 [debug] Current batch of media processed. Will check again in 1000ms 16:56:37.324 [debug] Current batch of media processed. Will check again in 1000ms 16:56:38.326 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 52, "filename" => "/downloads/Jeff Su/2023-09-04 These 3 People Can Change Your #career/These 3 People Can Change Your #career [eSsyql4tuLA].mp4", "id" => "eSsyql4tuLA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/eSsyql4tuLA", "playlist_index" => 86, "timestamp" => 1693852113, "title" => "These 3 People Can Change Your #career", "upload_date" => "20230904"} 16:56:38.326 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1972.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:56:38.327 [debug] QUERY OK source="sources" db=0.2ms idle=1973.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:38.328 [debug] QUERY OK source="media_items" db=0.9ms idle=1973.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-04 18:28:33Z], 1] 16:56:38.330 [debug] QUERY OK source="media_items" db=0.8ms idle=1753.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["These 3 People Can Change Your #career", "b978ec09-7da4-46de-bf29-593dcf32414d", false, "eSsyql4tuLA", 1, [], 52, false, "https://www.youtube.com/shorts/eSsyql4tuLA", 86, "/downloads/Jeff Su/2023-09-04 These 3 People Can Change Your #career/These 3 People Can Change Your #career [eSsyql4tuLA].mp4", false, true, 99, ~U[2023-09-04 18:28:33Z], ~U[2026-04-23 14:56:38Z], ~U[2026-04-23 14:56:38Z], "", "These 3 People Can Change Your #career", "eSsyql4tuLA", 1, 52, false, "https://www.youtube.com/shorts/eSsyql4tuLA", "/downloads/Jeff Su/2023-09-04 These 3 People Can Change Your #career/These 3 People Can Change Your #career [eSsyql4tuLA].mp4", true, ~U[2023-09-04 18:28:33Z]] 16:56:38.330 [debug] QUERY OK source="sources" db=0.2ms idle=751.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:38.332 [debug] QUERY OK source="media_profiles" db=1.4ms 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] 16:56:38.332 [debug] QUERY OK source="media_items" db=0.3ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [274] 16:56:38.332 [debug] Current batch of media processed. Will check again in 1000ms 16:56:39.333 [debug] Current batch of media processed. Will check again in 1000ms 16:56:40.334 [debug] Current batch of media processed. Will check again in 1000ms 16:56:41.335 [debug] Current batch of media processed. Will check again in 1000ms 16:56:42.339 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 43, "filename" => "/downloads/Jeff Su/2023-08-29 #linkedin tip for creators 🎬/#linkedin tip for creators 🎬 [RfG7BifdX5o].mp4", "id" => "RfG7BifdX5o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/RfG7BifdX5o", "playlist_index" => 87, "timestamp" => 1693314293, "title" => "#linkedin tip for creators 🎬", "upload_date" => "20230829"} 16:56:42.340 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=985.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:56:42.342 [debug] QUERY OK source="sources" db=1.5ms idle=986.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:42.344 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=988.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-29 13:04:53Z], 1] 16:56:42.346 [debug] QUERY OK source="media_items" db=1.7ms idle=990.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#linkedin tip for creators 🎬", "4706446a-aa90-4c49-9913-c5daced2b1d0", false, "RfG7BifdX5o", 1, [], 43, false, "https://www.youtube.com/shorts/RfG7BifdX5o", 87, "/downloads/Jeff Su/2023-08-29 #linkedin tip for creators 🎬/#linkedin tip for creators 🎬 [RfG7BifdX5o].mp4", false, true, 99, ~U[2023-08-29 13:04:53Z], ~U[2026-04-23 14:56:42Z], ~U[2026-04-23 14:56:42Z], "", "#linkedin tip for creators 🎬", "RfG7BifdX5o", 1, 43, false, "https://www.youtube.com/shorts/RfG7BifdX5o", "/downloads/Jeff Su/2023-08-29 #linkedin tip for creators 🎬/#linkedin tip for creators 🎬 [RfG7BifdX5o].mp4", true, ~U[2023-08-29 13:04:53Z]] 16:56:42.347 [debug] QUERY OK source="sources" db=0.5ms queue=0.2ms idle=761.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:42.348 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 16:56:42.349 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=6.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [275] 16:56:42.349 [debug] Current batch of media processed. Will check again in 1000ms 16:56:43.350 [debug] Current batch of media processed. Will check again in 1000ms 16:56:44.351 [debug] Current batch of media processed. Will check again in 1000ms 16:56:45.352 [debug] Current batch of media processed. Will check again in 1000ms 16:56:46.354 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 54, "filename" => "/downloads/Jeff Su/2023-08-21 #productivitytips for the workplace #shorts/#productivitytips for the workplace #shorts [R-Bm7OvQORE].mp4", "id" => "R-Bm7OvQORE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/R-Bm7OvQORE", "playlist_index" => 88, "timestamp" => 1692617646, "title" => "#productivitytips for the workplace #shorts", "upload_date" => "20230821"} 16:56:46.355 [debug] QUERY OK source="sources" db=0.3ms idle=1000.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:56:46.355 [debug] QUERY OK source="sources" db=0.1ms idle=1001.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:46.356 [debug] QUERY OK source="media_items" db=0.9ms idle=1001.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-21 11:34:06Z], 1] 16:56:46.358 [debug] QUERY OK source="media_items" db=0.7ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#productivitytips for the workplace #shorts", "3f88c3ce-e4ef-4449-9d19-87f54856f76d", false, "R-Bm7OvQORE", 1, [], 54, false, "https://www.youtube.com/shorts/R-Bm7OvQORE", 88, "/downloads/Jeff Su/2023-08-21 #productivitytips for the workplace #shorts/#productivitytips for the workplace #shorts [R-Bm7OvQORE].mp4", false, true, 99, ~U[2023-08-21 11:34:06Z], ~U[2026-04-23 14:56:46Z], ~U[2026-04-23 14:56:46Z], "", "#productivitytips for the workplace #shorts", "R-Bm7OvQORE", 1, 54, false, "https://www.youtube.com/shorts/R-Bm7OvQORE", "/downloads/Jeff Su/2023-08-21 #productivitytips for the workplace #shorts/#productivitytips for the workplace #shorts [R-Bm7OvQORE].mp4", true, ~U[2023-08-21 11:34:06Z]] 16:56:46.358 [debug] QUERY OK source="sources" db=0.2ms idle=764.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:46.359 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:46.360 [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 [276] 16:56:46.360 [debug] Current batch of media processed. Will check again in 1000ms 16:56:47.360 [debug] Current batch of media processed. Will check again in 1000ms 16:56:48.316 [info] {"source":"oban","duration":918,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:56:48.362 [debug] Current batch of media processed. Will check again in 1000ms 16:56:49.363 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 47, "filename" => "/downloads/Jeff Su/2023-08-15 Write the Perfect #prompt in #chatgpt and #googlebard/Write the Perfect #prompt in #chatgpt and #googlebard [F448meqCWqc].mp4", "id" => "F448meqCWqc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/F448meqCWqc", "playlist_index" => 89, "timestamp" => 1692104342, "title" => "Write the Perfect #prompt in #chatgpt and #googlebard", "upload_date" => "20230815"} 16:56:49.363 [debug] QUERY OK source="sources" db=0.3ms queue=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" IN (?)) [1] 16:56:49.364 [debug] QUERY OK source="sources" db=0.2ms idle=1010.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:49.365 [debug] QUERY OK source="media_items" db=0.9ms idle=1010.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-15 12:59:02Z], 1] 16:56:49.367 [debug] QUERY OK source="media_items" db=0.7ms idle=766.3ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Write the Perfect #prompt in #chatgpt and #googlebard", "df2ab289-d434-451b-8d1f-ed426708f67d", false, "F448meqCWqc", 1, [], 47, false, "https://www.youtube.com/shorts/F448meqCWqc", 89, "/downloads/Jeff Su/2023-08-15 Write the Perfect #prompt in #chatgpt and #googlebard/Write the Perfect #prompt in #chatgpt and #googlebard [F448meqCWqc].mp4", false, true, 99, ~U[2023-08-15 12:59:02Z], ~U[2026-04-23 14:56:49Z], ~U[2026-04-23 14:56:49Z], "", "Write the Perfect #prompt in #chatgpt and #googlebard", "F448meqCWqc", 1, 47, false, "https://www.youtube.com/shorts/F448meqCWqc", "/downloads/Jeff Su/2023-08-15 Write the Perfect #prompt in #chatgpt and #googlebard/Write the Perfect #prompt in #chatgpt and #googlebard [F448meqCWqc].mp4", true, ~U[2023-08-15 12:59:02Z]] 16:56:49.367 [debug] QUERY OK source="sources" db=0.2ms idle=13.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:49.368 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:49.368 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [277] 16:56:49.369 [debug] Current batch of media processed. Will check again in 1000ms 16:56:50.369 [debug] Current batch of media processed. Will check again in 1000ms 16:56:51.371 [debug] Current batch of media processed. Will check again in 1000ms 16:56:52.371 [debug] Current batch of media processed. Will check again in 1000ms 16:56:53.373 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 34, "filename" => "/downloads/Jeff Su/2023-04-18 Your Cover Letter Needs This! #jobsearchtips/Your Cover Letter Needs This! #jobsearchtips [6TXv9qleMoY].mp4", "id" => "6TXv9qleMoY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/6TXv9qleMoY", "playlist_index" => 90, "timestamp" => 1681826502, "title" => "Your Cover Letter Needs This! #jobsearchtips", "upload_date" => "20230418"} 16:56:53.373 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=765.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:56:53.374 [debug] QUERY OK source="sources" db=0.2ms idle=19.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:53.375 [debug] QUERY OK source="media_items" db=0.9ms idle=20.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-18 14:01:42Z], 1] 16:56:53.377 [debug] QUERY OK source="media_items" db=0.7ms idle=21.7ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Your Cover Letter Needs This! #jobsearchtips", "006b05a2-5d5c-4194-86dd-68fbdfe39799", false, "6TXv9qleMoY", 1, [], 34, false, "https://www.youtube.com/shorts/6TXv9qleMoY", 90, "/downloads/Jeff Su/2023-04-18 Your Cover Letter Needs This! #jobsearchtips/Your Cover Letter Needs This! #jobsearchtips [6TXv9qleMoY].mp4", false, true, 99, ~U[2023-04-18 14:01:42Z], ~U[2026-04-23 14:56:53Z], ~U[2026-04-23 14:56:53Z], "", "Your Cover Letter Needs This! #jobsearchtips", "6TXv9qleMoY", 1, 34, false, "https://www.youtube.com/shorts/6TXv9qleMoY", "/downloads/Jeff Su/2023-04-18 Your Cover Letter Needs This! #jobsearchtips/Your Cover Letter Needs This! #jobsearchtips [6TXv9qleMoY].mp4", true, ~U[2023-04-18 14:01:42Z]] 16:56:53.377 [debug] QUERY OK source="sources" db=0.2ms idle=22.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:53.378 [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] 16:56:53.378 [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 [278] 16:56:53.378 [debug] Current batch of media processed. Will check again in 1000ms 16:56:54.380 [debug] Current batch of media processed. Will check again in 1000ms 16:56:55.380 [debug] Current batch of media processed. Will check again in 1000ms 16:56:56.381 [debug] Current batch of media processed. Will check again in 1000ms 16:56:57.382 [debug] Current batch of media processed. Will check again in 1000ms 16:56:58.384 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 22, "filename" => "/downloads/Jeff Su/2023-04-06 Resume Tip for 2024! #jobsearchtips/Resume Tip for 2024! #jobsearchtips [y5e_zJAyIvE].mp4", "id" => "y5e_zJAyIvE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/y5e_zJAyIvE", "playlist_index" => 91, "timestamp" => 1680785972, "title" => "Resume Tip for 2024! #jobsearchtips", "upload_date" => "20230406"} 16:56:58.385 [debug] QUERY OK source="sources" db=1.2ms queue=0.1ms idle=1030.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:56:58.387 [debug] QUERY OK source="sources" db=0.9ms idle=1032.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:56:58.388 [debug] QUERY OK source="media_items" db=0.9ms idle=1033.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-06 12:59:32Z], 1] 16:56:58.389 [debug] QUERY OK source="media_items" db=0.7ms idle=1034.7ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Resume Tip for 2024! #jobsearchtips", "02a82453-7c9e-4b35-9a02-7c21b4ae17ef", false, "y5e_zJAyIvE", 1, [], 22, false, "https://www.youtube.com/shorts/y5e_zJAyIvE", 91, "/downloads/Jeff Su/2023-04-06 Resume Tip for 2024! #jobsearchtips/Resume Tip for 2024! #jobsearchtips [y5e_zJAyIvE].mp4", false, true, 99, ~U[2023-04-06 12:59:32Z], ~U[2026-04-23 14:56:58Z], ~U[2026-04-23 14:56:58Z], "", "Resume Tip for 2024! #jobsearchtips", "y5e_zJAyIvE", 1, 22, false, "https://www.youtube.com/shorts/y5e_zJAyIvE", "/downloads/Jeff Su/2023-04-06 Resume Tip for 2024! #jobsearchtips/Resume Tip for 2024! #jobsearchtips [y5e_zJAyIvE].mp4", true, ~U[2023-04-06 12:59:32Z]] 16:56:58.390 [debug] QUERY OK source="sources" db=0.2ms idle=771.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:56:58.390 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:56:58.391 [debug] QUERY OK source="media_items" db=0.3ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [279] 16:56:58.391 [debug] Current batch of media processed. Will check again in 1000ms 16:56:59.392 [debug] Current batch of media processed. Will check again in 1000ms 16:57:00.227 [info] {"source":"oban","duration":267,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:57:00.393 [debug] Current batch of media processed. Will check again in 1000ms 16:57:01.394 [debug] Current batch of media processed. Will check again in 1000ms 16:57:02.396 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 42, "filename" => "/downloads/Jeff Su/2023-03-25 How to git gud with ChatGPT/How to git gud with ChatGPT [ahiZTeQS36A].mp4", "id" => "ahiZTeQS36A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/ahiZTeQS36A", "playlist_index" => 92, "timestamp" => 1679707914, "title" => "How to git gud with ChatGPT", "upload_date" => "20230325"} 16:57:02.397 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1042.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:57:02.397 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=771.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:02.398 [debug] QUERY OK source="media_items" db=0.9ms idle=43.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-03-25 01:31:54Z], 1] 16:57:02.400 [debug] QUERY OK source="media_items" db=0.7ms idle=45.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How to git gud with ChatGPT", "51af6a98-9623-4c1a-968e-fdf1eeb25bac", false, "ahiZTeQS36A", 1, [], 42, false, "https://www.youtube.com/shorts/ahiZTeQS36A", 92, "/downloads/Jeff Su/2023-03-25 How to git gud with ChatGPT/How to git gud with ChatGPT [ahiZTeQS36A].mp4", false, true, 99, ~U[2023-03-25 01:31:54Z], ~U[2026-04-23 14:57:02Z], ~U[2026-04-23 14:57:02Z], "", "How to git gud with ChatGPT", "ahiZTeQS36A", 1, 42, false, "https://www.youtube.com/shorts/ahiZTeQS36A", "/downloads/Jeff Su/2023-03-25 How to git gud with ChatGPT/How to git gud with ChatGPT [ahiZTeQS36A].mp4", true, ~U[2023-03-25 01:31:54Z]] 16:57:02.400 [debug] QUERY OK source="sources" db=0.2ms idle=46.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:02.401 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:02.401 [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 [280] 16:57:02.401 [debug] Current batch of media processed. Will check again in 1000ms 16:57:03.402 [debug] Current batch of media processed. Will check again in 1000ms 16:57:04.403 [debug] Current batch of media processed. Will check again in 1000ms 16:57:05.404 [debug] Current batch of media processed. Will check again in 1000ms 16:57:06.406 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 34, "filename" => "/downloads/Jeff Su/2023-03-07 Catch brands selling your data 🥷 #shorts/Catch brands selling your data 🥷 #shorts [Tsthp_4w6eo].mp4", "id" => "Tsthp_4w6eo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/Tsthp_4w6eo", "playlist_index" => 93, "timestamp" => 1678194532, "title" => "Catch brands selling your data 🥷 #shorts", "upload_date" => "20230307"} 16:57:06.407 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=772.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:57:06.407 [debug] QUERY OK source="sources" db=0.1ms idle=53.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:06.409 [debug] QUERY OK source="media_items" db=0.9ms idle=54.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-03-07 13:08:52Z], 1] 16:57:06.410 [debug] QUERY OK source="media_items" db=0.8ms idle=55.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Catch brands selling your data 🥷 #shorts", "0775964a-2c2b-4f27-a287-c71337efb8a6", false, "Tsthp_4w6eo", 1, [], 34, false, "https://www.youtube.com/shorts/Tsthp_4w6eo", 93, "/downloads/Jeff Su/2023-03-07 Catch brands selling your data 🥷 #shorts/Catch brands selling your data 🥷 #shorts [Tsthp_4w6eo].mp4", false, true, 99, ~U[2023-03-07 13:08:52Z], ~U[2026-04-23 14:57:06Z], ~U[2026-04-23 14:57:06Z], "", "Catch brands selling your data 🥷 #shorts", "Tsthp_4w6eo", 1, 34, false, "https://www.youtube.com/shorts/Tsthp_4w6eo", "/downloads/Jeff Su/2023-03-07 Catch brands selling your data 🥷 #shorts/Catch brands selling your data 🥷 #shorts [Tsthp_4w6eo].mp4", true, ~U[2023-03-07 13:08:52Z]] 16:57:06.410 [debug] QUERY OK source="sources" db=0.2ms idle=56.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:06.411 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:06.411 [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 [281] 16:57:06.412 [debug] Current batch of media processed. Will check again in 1000ms 16:57:07.412 [debug] Current batch of media processed. Will check again in 1000ms 16:57:08.413 [debug] Current batch of media processed. Will check again in 1000ms 16:57:09.415 [debug] Current batch of media processed. Will check again in 1000ms 16:57:10.416 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 31, "filename" => "/downloads/Jeff Su/2023-02-14 Must-Use Tool for Job Seekers 👀/Must-Use Tool for Job Seekers 👀 [LAQj9SYom6U].mp4", "id" => "LAQj9SYom6U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/LAQj9SYom6U", "playlist_index" => 94, "timestamp" => 1676379689, "title" => "Must-Use Tool for Job Seekers 👀", "upload_date" => "20230214"} 16:57:10.416 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=774.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:57:10.417 [debug] QUERY OK source="sources" db=0.2ms idle=63.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:10.418 [debug] QUERY OK source="media_items" db=0.9ms idle=63.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-14 13:01:29Z], 1] 16:57:10.420 [debug] QUERY OK source="media_items" db=0.8ms idle=65.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Must-Use Tool for Job Seekers 👀", "0a12a9d5-98ba-49f3-9d32-a9d34ba3fdfa", false, "LAQj9SYom6U", 1, [], 31, false, "https://www.youtube.com/shorts/LAQj9SYom6U", 94, "/downloads/Jeff Su/2023-02-14 Must-Use Tool for Job Seekers 👀/Must-Use Tool for Job Seekers 👀 [LAQj9SYom6U].mp4", false, true, 99, ~U[2023-02-14 13:01:29Z], ~U[2026-04-23 14:57:10Z], ~U[2026-04-23 14:57:10Z], "", "Must-Use Tool for Job Seekers 👀", "LAQj9SYom6U", 1, 31, false, "https://www.youtube.com/shorts/LAQj9SYom6U", "/downloads/Jeff Su/2023-02-14 Must-Use Tool for Job Seekers 👀/Must-Use Tool for Job Seekers 👀 [LAQj9SYom6U].mp4", true, ~U[2023-02-14 13:01:29Z]] 16:57:10.420 [debug] QUERY OK source="sources" db=0.2ms idle=66.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:57:10.421 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:10.421 [debug] QUERY OK source="media_items" db=0.3ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [282] 16:57:10.421 [debug] Current batch of media processed. Will check again in 1000ms 16:57:11.422 [debug] Current batch of media processed. Will check again in 1000ms 16:57:12.423 [debug] Current batch of media processed. Will check again in 1000ms 16:57:13.424 [debug] Current batch of media processed. Will check again in 1000ms 16:57:14.426 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 36, "filename" => "/downloads/Jeff Su/2023-02-02 How to Commute Productively 🚝#gmail/How to Commute Productively 🚝#gmail [iDAOgM-yy2I].mp4", "id" => "iDAOgM-yy2I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/iDAOgM-yy2I", "playlist_index" => 95, "timestamp" => 1675342679, "title" => "How to Commute Productively 🚝#gmail", "upload_date" => "20230202"} 16:57:14.427 [debug] QUERY OK source="sources" db=0.3ms idle=776.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:57:14.427 [debug] QUERY OK source="sources" db=0.2ms idle=73.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:14.429 [debug] QUERY OK source="media_items" db=1.0ms idle=73.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-02 12:57:59Z], 1] 16:57:14.430 [debug] QUERY OK source="media_items" db=0.7ms idle=75.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How to Commute Productively 🚝#gmail", "79bf2b24-f4b8-4ca2-b365-333f5f07899f", false, "iDAOgM-yy2I", 1, [], 36, false, "https://www.youtube.com/shorts/iDAOgM-yy2I", 95, "/downloads/Jeff Su/2023-02-02 How to Commute Productively 🚝#gmail/How to Commute Productively 🚝#gmail [iDAOgM-yy2I].mp4", false, true, 99, ~U[2023-02-02 12:57:59Z], ~U[2026-04-23 14:57:14Z], ~U[2026-04-23 14:57:14Z], "", "How to Commute Productively 🚝#gmail", "iDAOgM-yy2I", 1, 36, false, "https://www.youtube.com/shorts/iDAOgM-yy2I", "/downloads/Jeff Su/2023-02-02 How to Commute Productively 🚝#gmail/How to Commute Productively 🚝#gmail [iDAOgM-yy2I].mp4", true, ~U[2023-02-02 12:57:59Z]] 16:57:14.430 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:14.431 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:14.431 [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 [283] 16:57:14.432 [debug] Current batch of media processed. Will check again in 1000ms 16:57:15.432 [debug] Current batch of media processed. Will check again in 1000ms 16:57:16.434 [debug] Current batch of media processed. Will check again in 1000ms 16:57:17.435 [debug] Current batch of media processed. Will check again in 1000ms 16:57:18.318 [info] {"source":"oban","duration":1041,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:57:18.436 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 37, "filename" => "/downloads/Jeff Su/2023-01-20 A Job Search Tip for…Productivity?/A Job Search Tip for…Productivity? [N2-QqAYRtV8].mp4", "id" => "N2-QqAYRtV8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/N2-QqAYRtV8", "playlist_index" => 96, "timestamp" => 1674210601, "title" => "A Job Search Tip for…Productivity?", "upload_date" => "20230120"} 16:57:18.437 [debug] QUERY OK source="sources" db=0.3ms idle=778.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:57:18.437 [debug] QUERY OK source="sources" db=0.1ms idle=118.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:18.438 [debug] QUERY OK source="media_items" db=0.9ms idle=83.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-01-20 10:30:01Z], 1] 16:57:18.440 [debug] QUERY OK source="media_items" db=0.8ms idle=85.3ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A Job Search Tip for…Productivity?", "2480899f-10cf-4485-aaad-696f901fd797", false, "N2-QqAYRtV8", 1, [], 37, false, "https://www.youtube.com/shorts/N2-QqAYRtV8", 96, "/downloads/Jeff Su/2023-01-20 A Job Search Tip for…Productivity?/A Job Search Tip for…Productivity? [N2-QqAYRtV8].mp4", false, true, 99, ~U[2023-01-20 10:30:01Z], ~U[2026-04-23 14:57:18Z], ~U[2026-04-23 14:57:18Z], "", "A Job Search Tip for…Productivity?", "N2-QqAYRtV8", 1, 37, false, "https://www.youtube.com/shorts/N2-QqAYRtV8", "/downloads/Jeff Su/2023-01-20 A Job Search Tip for…Productivity?/A Job Search Tip for…Productivity? [N2-QqAYRtV8].mp4", true, ~U[2023-01-20 10:30:01Z]] 16:57:18.440 [debug] QUERY OK source="sources" db=0.2ms idle=86.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:57:18.441 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:18.441 [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 [284] 16:57:18.442 [debug] Current batch of media processed. Will check again in 1000ms 16:57:19.443 [debug] Current batch of media processed. Will check again in 1000ms 16:57:20.444 [debug] Current batch of media processed. Will check again in 1000ms 16:57:21.445 [debug] Current batch of media processed. Will check again in 1000ms 16:57:22.446 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 28, "filename" => "/downloads/Jeff Su/2023-01-07 Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts/Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts [ndSCjufN6Qc].mp4", "id" => "ndSCjufN6Qc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/ndSCjufN6Qc", "playlist_index" => 97, "timestamp" => 1673096231, "title" => "Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts", "upload_date" => "20230107"} 16:57:22.446 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=780.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:57:22.447 [debug] QUERY OK source="sources" db=0.2ms idle=93.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:22.448 [debug] QUERY OK source="media_items" db=0.9ms idle=93.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-01-07 12:57:11Z], 1] 16:57:22.450 [debug] QUERY OK source="media_items" db=0.7ms idle=95.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts", "f8f0d425-8128-4aaa-acef-cf4ed20cabd8", false, "ndSCjufN6Qc", 1, [], 28, false, "https://www.youtube.com/shorts/ndSCjufN6Qc", 97, "/downloads/Jeff Su/2023-01-07 Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts/Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts [ndSCjufN6Qc].mp4", false, true, 99, ~U[2023-01-07 12:57:11Z], ~U[2026-04-23 14:57:22Z], ~U[2026-04-23 14:57:22Z], "", "Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts", "ndSCjufN6Qc", 1, 28, false, "https://www.youtube.com/shorts/ndSCjufN6Qc", "/downloads/Jeff Su/2023-01-07 Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts/Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts [ndSCjufN6Qc].mp4", true, ~U[2023-01-07 12:57:11Z]] 16:57:22.450 [debug] QUERY OK source="sources" db=0.2ms idle=96.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:22.450 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:22.451 [debug] QUERY OK source="media_items" db=0.3ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [285] 16:57:22.451 [debug] Current batch of media processed. Will check again in 1000ms 16:57:23.452 [debug] Current batch of media processed. Will check again in 1000ms 16:57:24.454 [debug] Current batch of media processed. Will check again in 1000ms 16:57:25.455 [debug] Current batch of media processed. Will check again in 1000ms 16:57:26.456 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 8, "filename" => "/downloads/Jeff Su/2022-12-31 Suiting up for #NYE #happynewyear #shorts/Suiting up for #NYE #happynewyear #shorts [aToA1w1Wmmw].mp4", "id" => "aToA1w1Wmmw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/aToA1w1Wmmw", "playlist_index" => 98, "timestamp" => 1672483910, "title" => "Suiting up for #NYE #happynewyear #shorts", "upload_date" => "20221231"} 16:57:26.456 [debug] QUERY OK source="sources" db=0.3ms queue=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 (?)) [1] 16:57:26.457 [debug] QUERY OK source="sources" db=0.2ms idle=103.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:26.458 [debug] QUERY OK source="media_items" db=1.0ms idle=103.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-31 10:51:50Z], 1] 16:57:26.460 [debug] QUERY OK source="media_items" db=0.8ms idle=105.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Suiting up for #NYE #happynewyear #shorts", "876432d5-e784-4d8d-abc2-8907a575387e", false, "aToA1w1Wmmw", 1, [], 8, false, "https://www.youtube.com/shorts/aToA1w1Wmmw", 98, "/downloads/Jeff Su/2022-12-31 Suiting up for #NYE #happynewyear #shorts/Suiting up for #NYE #happynewyear #shorts [aToA1w1Wmmw].mp4", false, true, 99, ~U[2022-12-31 10:51:50Z], ~U[2026-04-23 14:57:26Z], ~U[2026-04-23 14:57:26Z], "", "Suiting up for #NYE #happynewyear #shorts", "aToA1w1Wmmw", 1, 8, false, "https://www.youtube.com/shorts/aToA1w1Wmmw", "/downloads/Jeff Su/2022-12-31 Suiting up for #NYE #happynewyear #shorts/Suiting up for #NYE #happynewyear #shorts [aToA1w1Wmmw].mp4", true, ~U[2022-12-31 10:51:50Z]] 16:57:26.461 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=106.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:26.461 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:26.462 [debug] QUERY OK source="media_items" db=0.3ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [286] 16:57:26.462 [debug] Current batch of media processed. Will check again in 1000ms 16:57:27.462 [debug] Current batch of media processed. Will check again in 1000ms 16:57:28.463 [debug] Current batch of media processed. Will check again in 1000ms 16:57:29.465 [debug] Current batch of media processed. Will check again in 1000ms 16:57:30.466 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 29, "filename" => "/downloads/Jeff Su/2022-12-29 LinkedIn Tip for Job Seekers in 2024/LinkedIn Tip for Job Seekers in 2024 [cKOp_ajx7ZU].mp4", "id" => "cKOp_ajx7ZU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/cKOp_ajx7ZU", "playlist_index" => 99, "timestamp" => 1672318429, "title" => "LinkedIn Tip for Job Seekers in 2024", "upload_date" => "20221229"} 16:57:30.467 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=784.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:57:30.467 [debug] QUERY OK source="sources" db=0.2ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:30.469 [debug] QUERY OK source="media_items" db=0.9ms idle=114.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-29 12:53:49Z], 1] 16:57:30.470 [debug] QUERY OK source="media_items" db=0.7ms idle=115.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["LinkedIn Tip for Job Seekers in 2024", "533c8636-2cf3-407e-9707-c78817b324f0", false, "cKOp_ajx7ZU", 1, [], 29, false, "https://www.youtube.com/shorts/cKOp_ajx7ZU", 99, "/downloads/Jeff Su/2022-12-29 LinkedIn Tip for Job Seekers in 2024/LinkedIn Tip for Job Seekers in 2024 [cKOp_ajx7ZU].mp4", false, true, 99, ~U[2022-12-29 12:53:49Z], ~U[2026-04-23 14:57:30Z], ~U[2026-04-23 14:57:30Z], "", "LinkedIn Tip for Job Seekers in 2024", "cKOp_ajx7ZU", 1, 29, false, "https://www.youtube.com/shorts/cKOp_ajx7ZU", "/downloads/Jeff Su/2022-12-29 LinkedIn Tip for Job Seekers in 2024/LinkedIn Tip for Job Seekers in 2024 [cKOp_ajx7ZU].mp4", true, ~U[2022-12-29 12:53:49Z]] 16:57:30.470 [debug] QUERY OK source="sources" db=0.2ms idle=116.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:57:30.471 [debug] QUERY OK source="media_profiles" db=0.3ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:30.472 [debug] QUERY OK source="media_items" db=0.3ms idle=3.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [287] 16:57:30.472 [debug] Current batch of media processed. Will check again in 1000ms 16:57:31.472 [debug] Current batch of media processed. Will check again in 1000ms 16:57:32.473 [debug] Current batch of media processed. Will check again in 1000ms 16:57:33.475 [debug] Current batch of media processed. Will check again in 1000ms 16:57:34.476 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 39, "filename" => "/downloads/Jeff Su/2022-12-15 Don’t make this #resume mistake! #resumetips #jobsearch #shorts/Don’t make this #resume mistake! #resumetips #jobsearch #shorts [ltQ6OhEcmZI].mp4", "id" => "ltQ6OhEcmZI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/ltQ6OhEcmZI", "playlist_index" => 100, "timestamp" => 1671105806, "title" => "Don’t make this #resume mistake! #resumetips #jobsearch #shorts", "upload_date" => "20221215"} 16:57:34.477 [debug] QUERY OK source="sources" db=0.5ms idle=786.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:57:34.477 [debug] QUERY OK source="sources" db=0.2ms idle=123.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:34.478 [debug] QUERY OK source="media_items" db=0.9ms idle=123.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-15 12:03:26Z], 1] 16:57:34.480 [debug] QUERY OK source="media_items" db=0.8ms idle=125.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Don’t make this #resume mistake! #resumetips #jobsearch #shorts", "c0242f9f-5e3b-43cc-9073-2bf3373e719c", false, "ltQ6OhEcmZI", 1, [], 39, false, "https://www.youtube.com/shorts/ltQ6OhEcmZI", 100, "/downloads/Jeff Su/2022-12-15 Don’t make this #resume mistake! #resumetips #jobsearch #shorts/Don’t make this #resume mistake! #resumetips #jobsearch #shorts [ltQ6OhEcmZI].mp4", false, true, 99, ~U[2022-12-15 12:03:26Z], ~U[2026-04-23 14:57:34Z], ~U[2026-04-23 14:57:34Z], "", "Don’t make this #resume mistake! #resumetips #jobsearch #shorts", "ltQ6OhEcmZI", 1, 39, false, "https://www.youtube.com/shorts/ltQ6OhEcmZI", "/downloads/Jeff Su/2022-12-15 Don’t make this #resume mistake! #resumetips #jobsearch #shorts/Don’t make this #resume mistake! #resumetips #jobsearch #shorts [ltQ6OhEcmZI].mp4", true, ~U[2022-12-15 12:03:26Z]] 16:57:34.480 [debug] QUERY OK source="sources" db=0.2ms idle=126.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:34.481 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:34.482 [debug] QUERY OK source="media_items" db=0.3ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [288] 16:57:34.482 [debug] Current batch of media processed. Will check again in 1000ms 16:57:35.482 [debug] Current batch of media processed. Will check again in 1000ms 16:57:36.484 [debug] Current batch of media processed. Will check again in 1000ms 16:57:37.485 [debug] Current batch of media processed. Will check again in 1000ms 16:57:38.486 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 36, "filename" => "/downloads/Jeff Su/2022-12-08 Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts/Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts [9GBDtq2kSeI].mp4", "id" => "9GBDtq2kSeI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/9GBDtq2kSeI", "playlist_index" => 101, "timestamp" => 1670504574, "title" => "Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts", "upload_date" => "20221208"} 16:57:38.487 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=788.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:57:38.488 [debug] QUERY OK source="sources" db=0.2ms idle=133.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:38.489 [debug] QUERY OK source="media_items" db=1.0ms idle=134.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-08 13:02:54Z], 1] 16:57:38.491 [debug] QUERY OK source="media_items" db=1.3ms idle=135.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts", "4f3bdf03-5ca0-4d21-8a50-7a7d53c0bcf3", false, "9GBDtq2kSeI", 1, [], 36, false, "https://www.youtube.com/shorts/9GBDtq2kSeI", 101, "/downloads/Jeff Su/2022-12-08 Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts/Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts [9GBDtq2kSeI].mp4", false, true, 99, ~U[2022-12-08 13:02:54Z], ~U[2026-04-23 14:57:38Z], ~U[2026-04-23 14:57:38Z], "", "Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts", "9GBDtq2kSeI", 1, 36, false, "https://www.youtube.com/shorts/9GBDtq2kSeI", "/downloads/Jeff Su/2022-12-08 Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts/Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts [9GBDtq2kSeI].mp4", true, ~U[2022-12-08 13:02:54Z]] 16:57:38.491 [debug] QUERY OK source="sources" db=0.2ms idle=137.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:57:38.492 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:38.492 [debug] QUERY OK source="media_items" db=0.3ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [289] 16:57:38.493 [debug] Current batch of media processed. Will check again in 1000ms 16:57:39.494 [debug] Current batch of media processed. Will check again in 1000ms 16:57:40.494 [debug] Current batch of media processed. Will check again in 1000ms 16:57:41.496 [debug] Current batch of media processed. Will check again in 1000ms 16:57:42.497 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 34, "filename" => "/downloads/Jeff Su/2022-12-01 3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts/3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts [dZrFgsFM7p8].mp4", "id" => "dZrFgsFM7p8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/dZrFgsFM7p8", "playlist_index" => 102, "timestamp" => 1669898906, "title" => "3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts", "upload_date" => "20221201"} 16:57:42.498 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=784.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:57:42.498 [debug] QUERY OK source="sources" db=0.2ms idle=144.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:42.500 [debug] QUERY OK source="media_items" db=0.9ms idle=145.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-01 12:48:26Z], 1] 16:57:42.501 [debug] QUERY OK source="media_items" db=0.8ms idle=146.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts", "509ef31a-6e84-465f-8bbe-17c568f5fe16", false, "dZrFgsFM7p8", 1, [], 34, false, "https://www.youtube.com/shorts/dZrFgsFM7p8", 102, "/downloads/Jeff Su/2022-12-01 3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts/3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts [dZrFgsFM7p8].mp4", false, true, 99, ~U[2022-12-01 12:48:26Z], ~U[2026-04-23 14:57:42Z], ~U[2026-04-23 14:57:42Z], "", "3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts", "dZrFgsFM7p8", 1, 34, false, "https://www.youtube.com/shorts/dZrFgsFM7p8", "/downloads/Jeff Su/2022-12-01 3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts/3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts [dZrFgsFM7p8].mp4", true, ~U[2022-12-01 12:48:26Z]] 16:57:42.502 [debug] QUERY OK source="sources" db=0.2ms idle=147.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:42.502 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:42.503 [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 [290] 16:57:42.503 [debug] Current batch of media processed. Will check again in 1000ms 16:57:43.504 [debug] Current batch of media processed. Will check again in 1000ms 16:57:44.504 [debug] Current batch of media processed. Will check again in 1000ms 16:57:45.506 [debug] Current batch of media processed. Will check again in 1000ms 16:57:46.507 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 24, "filename" => "/downloads/Jeff Su/2022-11-24 Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity/Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity [M0KgQ07FGcc].mp4", "id" => "M0KgQ07FGcc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/M0KgQ07FGcc", "playlist_index" => 103, "timestamp" => 1669286816, "title" => "Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity", "upload_date" => "20221124"} 16:57:46.507 [debug] QUERY OK source="sources" db=0.2ms idle=786.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:57:46.508 [debug] QUERY OK source="sources" db=0.1ms idle=154.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:46.509 [debug] QUERY OK source="media_items" db=0.9ms idle=154.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-24 10:46:56Z], 1] 16:57:46.511 [debug] QUERY OK source="media_items" db=1.2ms idle=155.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity", "fd6d9b54-fbef-4ba2-8f19-b88f1b88dff5", false, "M0KgQ07FGcc", 1, [], 24, false, "https://www.youtube.com/shorts/M0KgQ07FGcc", 103, "/downloads/Jeff Su/2022-11-24 Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity/Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity [M0KgQ07FGcc].mp4", false, true, 99, ~U[2022-11-24 10:46:56Z], ~U[2026-04-23 14:57:46Z], ~U[2026-04-23 14:57:46Z], "", "Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity", "M0KgQ07FGcc", 1, 24, false, "https://www.youtube.com/shorts/M0KgQ07FGcc", "/downloads/Jeff Su/2022-11-24 Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity/Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity [M0KgQ07FGcc].mp4", true, ~U[2022-11-24 10:46:56Z]] 16:57:46.512 [debug] QUERY OK source="sources" db=0.2ms idle=157.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:57:46.512 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:46.513 [debug] QUERY OK source="media_items" db=0.3ms idle=4.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [291] 16:57:46.513 [debug] Current batch of media processed. Will check again in 1000ms 16:57:47.513 [debug] Current batch of media processed. Will check again in 1000ms 16:57:48.320 [info] {"source":"oban","duration":913,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:57:48.514 [debug] Current batch of media processed. Will check again in 1000ms 16:57:49.516 [debug] Current batch of media processed. Will check again in 1000ms 16:57:50.517 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 28, "filename" => "/downloads/Jeff Su/2022-11-17 Unpopular Work Advice #careertips #unpopularopinions #shorts/Unpopular Work Advice #careertips #unpopularopinions #shorts [FTUkkOwhRis].mp4", "id" => "FTUkkOwhRis", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/FTUkkOwhRis", "playlist_index" => 104, "timestamp" => 1668689827, "title" => "Unpopular Work Advice #careertips #unpopularopinions #shorts", "upload_date" => "20221117"} 16:57:50.518 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1163.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:57:50.518 [debug] QUERY OK source="sources" db=0.2ms idle=789.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:50.519 [debug] QUERY OK source="media_items" db=0.9ms idle=164.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-17 12:57:07Z], 1] 16:57:50.521 [debug] QUERY OK source="media_items" db=0.8ms idle=166.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Unpopular Work Advice #careertips #unpopularopinions #shorts", "d77e0290-d802-42cb-ac6b-9d8c05327d4b", false, "FTUkkOwhRis", 1, [], 28, false, "https://www.youtube.com/shorts/FTUkkOwhRis", 104, "/downloads/Jeff Su/2022-11-17 Unpopular Work Advice #careertips #unpopularopinions #shorts/Unpopular Work Advice #careertips #unpopularopinions #shorts [FTUkkOwhRis].mp4", false, true, 99, ~U[2022-11-17 12:57:07Z], ~U[2026-04-23 14:57:50Z], ~U[2026-04-23 14:57:50Z], "", "Unpopular Work Advice #careertips #unpopularopinions #shorts", "FTUkkOwhRis", 1, 28, false, "https://www.youtube.com/shorts/FTUkkOwhRis", "/downloads/Jeff Su/2022-11-17 Unpopular Work Advice #careertips #unpopularopinions #shorts/Unpopular Work Advice #careertips #unpopularopinions #shorts [FTUkkOwhRis].mp4", true, ~U[2022-11-17 12:57:07Z]] 16:57:50.521 [debug] QUERY OK source="sources" db=0.3ms idle=167.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:57:50.522 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:50.522 [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 [292] 16:57:50.522 [debug] Current batch of media processed. Will check again in 1000ms 16:57:51.523 [debug] Current batch of media processed. Will check again in 1000ms 16:57:52.524 [debug] Current batch of media processed. Will check again in 1000ms 16:57:53.525 [debug] Current batch of media processed. Will check again in 1000ms 16:57:54.527 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 49, "filename" => "/downloads/Jeff Su/2022-11-10 3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts/3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts [BTDSmLXD0bg].mp4", "id" => "BTDSmLXD0bg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/BTDSmLXD0bg", "playlist_index" => 105, "timestamp" => 1668084587, "title" => "3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts", "upload_date" => "20221110"} 16:57:54.527 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=790.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:57:54.528 [debug] QUERY OK source="sources" db=0.2ms idle=174.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:54.529 [debug] QUERY OK source="media_items" db=0.9ms idle=174.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-10 12:49:47Z], 1] 16:57:54.531 [debug] QUERY OK source="media_items" db=0.8ms idle=175.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts", "7904b83f-78ca-463e-8c34-1c5f29f4c909", false, "BTDSmLXD0bg", 1, [], 49, false, "https://www.youtube.com/shorts/BTDSmLXD0bg", 105, "/downloads/Jeff Su/2022-11-10 3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts/3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts [BTDSmLXD0bg].mp4", false, true, 99, ~U[2022-11-10 12:49:47Z], ~U[2026-04-23 14:57:54Z], ~U[2026-04-23 14:57:54Z], "", "3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts", "BTDSmLXD0bg", 1, 49, false, "https://www.youtube.com/shorts/BTDSmLXD0bg", "/downloads/Jeff Su/2022-11-10 3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts/3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts [BTDSmLXD0bg].mp4", true, ~U[2022-11-10 12:49:47Z]] 16:57:54.531 [debug] QUERY OK source="sources" db=0.3ms idle=177.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:57:54.532 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:57:54.532 [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 [293] 16:57:54.532 [debug] Current batch of media processed. Will check again in 1000ms 16:57:55.533 [debug] Current batch of media processed. Will check again in 1000ms 16:57:56.534 [debug] Current batch of media processed. Will check again in 1000ms 16:57:57.535 [debug] Current batch of media processed. Will check again in 1000ms 16:57:58.537 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 36, "filename" => "/downloads/Jeff Su/2022-11-03 3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career/3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career [uPD1eAWSAvc].mp4", "id" => "uPD1eAWSAvc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/uPD1eAWSAvc", "playlist_index" => 106, "timestamp" => 1667475976, "title" => "3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career", "upload_date" => "20221103"} 16:57:58.537 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=792.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 16:57:58.538 [debug] QUERY OK source="sources" db=0.2ms idle=184.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:57:58.539 [debug] QUERY OK source="media_items" db=1.0ms idle=184.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-03 11:46:16Z], 1] 16:57:58.541 [debug] QUERY OK source="media_items" db=0.8ms idle=186.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career", "1a8a74c5-c391-4487-a3b0-b253ecafcbf3", false, "uPD1eAWSAvc", 1, [], 36, false, "https://www.youtube.com/shorts/uPD1eAWSAvc", 106, "/downloads/Jeff Su/2022-11-03 3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career/3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career [uPD1eAWSAvc].mp4", false, true, 99, ~U[2022-11-03 11:46:16Z], ~U[2026-04-23 14:57:58Z], ~U[2026-04-23 14:57:58Z], "", "3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career", "uPD1eAWSAvc", 1, 36, false, "https://www.youtube.com/shorts/uPD1eAWSAvc", "/downloads/Jeff Su/2022-11-03 3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career/3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career [uPD1eAWSAvc].mp4", true, ~U[2022-11-03 11:46:16Z]] 16:57:58.541 [debug] QUERY OK source="sources" db=0.2ms idle=187.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:57:58.542 [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] 16:57:58.542 [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 [294] 16:57:58.542 [debug] Current batch of media processed. Will check again in 1000ms 16:57:59.543 [debug] Current batch of media processed. Will check again in 1000ms 16:58:00.228 [info] {"source":"oban","duration":259,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:58:00.544 [debug] Current batch of media processed. Will check again in 1000ms 16:58:01.546 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 21, "filename" => "/downloads/Jeff Su/2022-10-13 What Motivates You? #interviewtips #interviewquestions #jobsearch/What Motivates You? #interviewtips #interviewquestions #jobsearch [OjQ26g4U0JI].mp4", "id" => "OjQ26g4U0JI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/OjQ26g4U0JI", "playlist_index" => 107, "timestamp" => 1665663115, "title" => "What Motivates You? #interviewtips #interviewquestions #jobsearch", "upload_date" => "20221013"} 16:58:01.546 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1192.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:58:01.547 [debug] QUERY OK source="sources" db=0.2ms idle=1193.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:01.548 [debug] QUERY OK source="media_items" db=0.9ms idle=1193.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-10-13 12:11:55Z], 1] 16:58:01.550 [debug] QUERY OK source="media_items" db=0.7ms idle=798.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["What Motivates You? #interviewtips #interviewquestions #jobsearch", "76e2c157-4e2a-4bf8-bd6a-f0d0e49e8b9a", false, "OjQ26g4U0JI", 1, [], 21, false, "https://www.youtube.com/shorts/OjQ26g4U0JI", 107, "/downloads/Jeff Su/2022-10-13 What Motivates You? #interviewtips #interviewquestions #jobsearch/What Motivates You? #interviewtips #interviewquestions #jobsearch [OjQ26g4U0JI].mp4", false, true, 99, ~U[2022-10-13 12:11:55Z], ~U[2026-04-23 14:58:01Z], ~U[2026-04-23 14:58:01Z], "", "What Motivates You? #interviewtips #interviewquestions #jobsearch", "OjQ26g4U0JI", 1, 21, false, "https://www.youtube.com/shorts/OjQ26g4U0JI", "/downloads/Jeff Su/2022-10-13 What Motivates You? #interviewtips #interviewquestions #jobsearch/What Motivates You? #interviewtips #interviewquestions #jobsearch [OjQ26g4U0JI].mp4", true, ~U[2022-10-13 12:11:55Z]] 16:58:01.550 [debug] QUERY OK source="sources" db=0.2ms idle=196.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:58:01.551 [debug] QUERY OK source="media_profiles" db=0.3ms 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] 16:58:01.551 [debug] QUERY OK source="media_items" db=0.3ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [295] 16:58:01.551 [debug] Current batch of media processed. Will check again in 1000ms 16:58:02.552 [debug] Current batch of media processed. Will check again in 1000ms 16:58:03.553 [debug] Current batch of media processed. Will check again in 1000ms 16:58:04.554 [debug] Current batch of media processed. Will check again in 1000ms 16:58:05.556 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 37, "filename" => "/downloads/Jeff Su/2022-10-06 iPhone Tip to Protect Your Eyes 👀/iPhone Tip to Protect Your Eyes 👀 [KspOveyTUjY].mp4", "id" => "KspOveyTUjY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/KspOveyTUjY", "playlist_index" => 108, "timestamp" => 1665052547, "title" => "iPhone Tip to Protect Your Eyes 👀", "upload_date" => "20221006"} 16:58:05.556 [debug] QUERY OK source="sources" db=0.2ms idle=797.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:58:05.557 [debug] QUERY OK source="sources" db=0.2ms idle=203.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:05.559 [debug] QUERY OK source="media_items" db=1.6ms idle=203.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-10-06 10:35:47Z], 1] 16:58:05.560 [debug] QUERY OK source="media_items" db=0.8ms idle=205.7ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["iPhone Tip to Protect Your Eyes 👀", "d00ab9e5-9eb7-4d1c-b614-3b19638266a3", false, "KspOveyTUjY", 1, [], 37, false, "https://www.youtube.com/shorts/KspOveyTUjY", 108, "/downloads/Jeff Su/2022-10-06 iPhone Tip to Protect Your Eyes 👀/iPhone Tip to Protect Your Eyes 👀 [KspOveyTUjY].mp4", false, true, 99, ~U[2022-10-06 10:35:47Z], ~U[2026-04-23 14:58:05Z], ~U[2026-04-23 14:58:05Z], "", "iPhone Tip to Protect Your Eyes 👀", "KspOveyTUjY", 1, 37, false, "https://www.youtube.com/shorts/KspOveyTUjY", "/downloads/Jeff Su/2022-10-06 iPhone Tip to Protect Your Eyes 👀/iPhone Tip to Protect Your Eyes 👀 [KspOveyTUjY].mp4", true, ~U[2022-10-06 10:35:47Z]] 16:58:05.562 [debug] QUERY OK source="sources" db=0.9ms idle=207.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:58:05.562 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:58:05.563 [debug] QUERY OK source="media_items" db=0.3ms 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 [296] 16:58:05.563 [debug] Current batch of media processed. Will check again in 1000ms 16:58:06.564 [debug] Current batch of media processed. Will check again in 1000ms 16:58:07.565 [debug] Current batch of media processed. Will check again in 1000ms 16:58:08.567 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 48, "filename" => "/downloads/Jeff Su/2022-09-29 My 6 Favorite iOS16 Tips! #iphone14pro #ios16/My 6 Favorite iOS16 Tips! #iphone14pro #ios16 [7A_Irr0FA9A].mp4", "id" => "7A_Irr0FA9A", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/7A_Irr0FA9A", "playlist_index" => 109, "timestamp" => 1664453102, "title" => "My 6 Favorite iOS16 Tips! #iphone14pro #ios16", "upload_date" => "20220929"} 16:58:08.567 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1213.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:58:08.568 [debug] QUERY OK source="sources" db=0.2ms idle=1214.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:08.569 [debug] QUERY OK source="media_items" db=0.9ms idle=1214.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-29 12:05:02Z], 1] 16:58:08.571 [debug] QUERY OK source="media_items" db=0.8ms idle=1216.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My 6 Favorite iOS16 Tips! #iphone14pro #ios16", "1fe7e7c2-99b4-4bfd-b60c-58925823ba21", false, "7A_Irr0FA9A", 1, [], 48, false, "https://www.youtube.com/shorts/7A_Irr0FA9A", 109, "/downloads/Jeff Su/2022-09-29 My 6 Favorite iOS16 Tips! #iphone14pro #ios16/My 6 Favorite iOS16 Tips! #iphone14pro #ios16 [7A_Irr0FA9A].mp4", false, true, 99, ~U[2022-09-29 12:05:02Z], ~U[2026-04-23 14:58:08Z], ~U[2026-04-23 14:58:08Z], "", "My 6 Favorite iOS16 Tips! #iphone14pro #ios16", "7A_Irr0FA9A", 1, 48, false, "https://www.youtube.com/shorts/7A_Irr0FA9A", "/downloads/Jeff Su/2022-09-29 My 6 Favorite iOS16 Tips! #iphone14pro #ios16/My 6 Favorite iOS16 Tips! #iphone14pro #ios16 [7A_Irr0FA9A].mp4", true, ~U[2022-09-29 12:05:02Z]] 16:58:08.571 [debug] QUERY OK source="sources" db=0.2ms idle=806.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:58:08.572 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:58:08.572 [debug] QUERY OK source="media_items" db=0.3ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [297] 16:58:08.573 [debug] Current batch of media processed. Will check again in 1000ms 16:58:09.574 [debug] Current batch of media processed. Will check again in 1000ms 16:58:10.575 [debug] Current batch of media processed. Will check again in 1000ms 16:58:11.575 [debug] Current batch of media processed. Will check again in 1000ms 16:58:12.576 [debug] Current batch of media processed. Will check again in 1000ms 16:58:13.578 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 15, "filename" => "/downloads/Jeff Su/2022-09-22 99% of LinkedIn Users Don’t Do This!/99% of LinkedIn Users Don’t Do This! [V7Gg19QmB0Y].mp4", "id" => "V7Gg19QmB0Y", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/V7Gg19QmB0Y", "playlist_index" => 110, "timestamp" => 1663848251, "title" => "99% of LinkedIn Users Don’t Do This!", "upload_date" => "20220922"} 16:58:13.579 [debug] QUERY OK source="sources" db=0.4ms idle=1224.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:58:13.579 [debug] QUERY OK source="sources" db=0.1ms idle=1225.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:13.581 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=1226.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-22 12:04:11Z], 1] 16:58:13.583 [debug] QUERY OK source="media_items" db=0.8ms idle=1228.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["99% of LinkedIn Users Don’t Do This!", "7eb19e84-07cc-4a4d-8ae8-1ededc2e4a46", false, "V7Gg19QmB0Y", 1, [], 15, false, "https://www.youtube.com/shorts/V7Gg19QmB0Y", 110, "/downloads/Jeff Su/2022-09-22 99% of LinkedIn Users Don’t Do This!/99% of LinkedIn Users Don’t Do This! [V7Gg19QmB0Y].mp4", false, true, 99, ~U[2022-09-22 12:04:11Z], ~U[2026-04-23 14:58:13Z], ~U[2026-04-23 14:58:13Z], "", "99% of LinkedIn Users Don’t Do This!", "V7Gg19QmB0Y", 1, 15, false, "https://www.youtube.com/shorts/V7Gg19QmB0Y", "/downloads/Jeff Su/2022-09-22 99% of LinkedIn Users Don’t Do This!/99% of LinkedIn Users Don’t Do This! [V7Gg19QmB0Y].mp4", true, ~U[2022-09-22 12:04:11Z]] 16:58:13.583 [debug] QUERY OK source="sources" db=0.2ms idle=808.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:58:13.584 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.2ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:58:13.585 [debug] QUERY OK source="media_items" db=0.3ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [298] 16:58:13.585 [debug] Current batch of media processed. Will check again in 1000ms 16:58:14.586 [debug] Current batch of media processed. Will check again in 1000ms 16:58:15.587 [debug] FileFollowerServer Handler: Got media attributes: %{"description" => "", "duration" => 17, "filename" => "/downloads/Jeff Su/2022-09-13 Gmail Productivity Hack! #gmail/Gmail Productivity Hack! #gmail [42hUYr2IU-c].NA", "id" => "42hUYr2IU-c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/42hUYr2IU-c", "playlist_index" => 111, "timestamp" => 1663067732, "title" => "Gmail Productivity Hack! #gmail", "upload_date" => "20220913"} 16:58:15.588 [debug] QUERY OK source="sources" db=0.3ms idle=809.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:58:15.588 [debug] QUERY OK source="sources" db=0.1ms idle=234.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:15.590 [debug] QUERY OK source="media_items" db=1.0ms idle=234.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-13 11:15:32Z], 1] 16:58:15.591 [debug] QUERY OK source="media_items" db=0.9ms idle=236.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Gmail Productivity Hack! #gmail", "8dddefdd-ad45-48c0-93a4-18e9123c70da", false, "42hUYr2IU-c", 1, [], 17, false, "https://www.youtube.com/shorts/42hUYr2IU-c", 111, "/downloads/Jeff Su/2022-09-13 Gmail Productivity Hack! #gmail/Gmail Productivity Hack! #gmail [42hUYr2IU-c].NA", false, true, 99, ~U[2022-09-13 11:15:32Z], ~U[2026-04-23 14:58:15Z], ~U[2026-04-23 14:58:15Z], "", "Gmail Productivity Hack! #gmail", "42hUYr2IU-c", 1, 17, false, "https://www.youtube.com/shorts/42hUYr2IU-c", "/downloads/Jeff Su/2022-09-13 Gmail Productivity Hack! #gmail/Gmail Productivity Hack! #gmail [42hUYr2IU-c].NA", true, ~U[2022-09-13 11:15:32Z]] 16:58:15.592 [debug] QUERY OK source="sources" db=0.2ms idle=237.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:58:15.593 [debug] QUERY OK source="media_profiles" db=0.4ms queue=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] 16:58:15.593 [debug] QUERY OK source="media_items" db=0.2ms idle=4.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [299] 16:58:15.593 [debug] Current batch of media processed. Will check again in 1000ms 16:58:16.594 [debug] Current batch of media processed. Will check again in 1000ms 16:58:17.595 [debug] Current batch of media processed. Will check again in 1000ms 16:58:18.322 [info] {"source":"oban","duration":894,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:58:18.597 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 23, "filename" => "/downloads/Jeff Su/2022-09-07 Crazy Customization Tip for MacBook Users!/Crazy Customization Tip for MacBook Users! [3FtJia6HnmA].mp4", "id" => "3FtJia6HnmA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/3FtJia6HnmA", "playlist_index" => 112, "timestamp" => 1662553500, "title" => "Crazy Customization Tip for MacBook Users!", "upload_date" => "20220907"} 16:58:18.598 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=1243.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:58:18.598 [debug] QUERY OK source="sources" db=0.1ms idle=1244.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:18.599 [debug] QUERY OK source="media_items" db=0.9ms idle=1244.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-07 12:25:00Z], 1] 16:58:18.601 [debug] QUERY OK source="media_items" db=0.8ms idle=815.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Crazy Customization Tip for MacBook Users!", "78c0c21d-c681-4018-a222-521792ae0749", false, "3FtJia6HnmA", 1, [], 23, false, "https://www.youtube.com/shorts/3FtJia6HnmA", 112, "/downloads/Jeff Su/2022-09-07 Crazy Customization Tip for MacBook Users!/Crazy Customization Tip for MacBook Users! [3FtJia6HnmA].mp4", false, true, 99, ~U[2022-09-07 12:25:00Z], ~U[2026-04-23 14:58:18Z], ~U[2026-04-23 14:58:18Z], "", "Crazy Customization Tip for MacBook Users!", "3FtJia6HnmA", 1, 23, false, "https://www.youtube.com/shorts/3FtJia6HnmA", "/downloads/Jeff Su/2022-09-07 Crazy Customization Tip for MacBook Users!/Crazy Customization Tip for MacBook Users! [3FtJia6HnmA].mp4", true, ~U[2022-09-07 12:25:00Z]] 16:58:18.601 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:18.602 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 16:58:18.602 [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 [300] 16:58:18.602 [debug] Current batch of media processed. Will check again in 1000ms 16:58:19.603 [debug] Current batch of media processed. Will check again in 1000ms 16:58:20.605 [debug] Current batch of media processed. Will check again in 1000ms 16:58:21.605 [debug] Current batch of media processed. Will check again in 1000ms 16:58:22.606 [debug] Current batch of media processed. Will check again in 1000ms 16:58:23.608 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 0.56, "description" => "", "duration" => 32, "filename" => "/downloads/Jeff Su/2022-09-01 LinkedIn hack for job search #jobsearch #linkedin/LinkedIn hack for job search #jobsearch #linkedin [QEFaxDcp9bA].mp4", "id" => "QEFaxDcp9bA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/shorts/QEFaxDcp9bA", "playlist_index" => 113, "timestamp" => 1662004936, "title" => "LinkedIn hack for job search #jobsearch #linkedin", "upload_date" => "20220901"} 16:58:23.609 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1254.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:58:23.609 [debug] QUERY OK source="sources" db=0.2ms idle=1255.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:23.611 [debug] QUERY OK source="media_items" db=0.9ms idle=1256.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-01 04:02:16Z], 1] 16:58:23.612 [debug] QUERY OK source="media_items" db=0.7ms idle=1257.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["LinkedIn hack for job search #jobsearch #linkedin", "f83bc24e-8623-458b-86fe-fa6ddcc07a86", false, "QEFaxDcp9bA", 1, [], 32, false, "https://www.youtube.com/shorts/QEFaxDcp9bA", 113, "/downloads/Jeff Su/2022-09-01 LinkedIn hack for job search #jobsearch #linkedin/LinkedIn hack for job search #jobsearch #linkedin [QEFaxDcp9bA].mp4", false, true, 99, ~U[2022-09-01 04:02:16Z], ~U[2026-04-23 14:58:23Z], ~U[2026-04-23 14:58:23Z], "", "LinkedIn hack for job search #jobsearch #linkedin", "QEFaxDcp9bA", 1, 32, false, "https://www.youtube.com/shorts/QEFaxDcp9bA", "/downloads/Jeff Su/2022-09-01 LinkedIn hack for job search #jobsearch #linkedin/LinkedIn hack for job search #jobsearch #linkedin [QEFaxDcp9bA].mp4", true, ~U[2022-09-01 04:02:16Z]] 16:58:23.613 [debug] QUERY OK source="sources" db=0.2ms idle=817.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 16:58:23.613 [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] 16:58:23.614 [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 [301] 16:58:23.614 [debug] Current batch of media processed. Will check again in 1000ms 16:58:24.615 [debug] Current batch of media processed. Will check again in 1000ms 16:58:25.615 [debug] Current batch of media processed. Will check again in 1000ms 16:58:26.616 [debug] Current batch of media processed. Will check again in 1000ms 16:58:26.999 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Jeff Su/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:720,+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/6f/6f/6f6fa611b0c6c1b6567df0ec24c2e85ed88f0cadcc70d1a927f0681997de9c47.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 16:58:27.015 [debug] Gracefully stopping file follower 16:58:27.015 [debug] QUERY OK source="sources" db=0.3ms queue=0.2ms idle=1661.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_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] 16:58:27.016 [debug] QUERY OK source="sources" db=0.2ms idle=1662.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:27.018 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=1662.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-07 13:02:24Z], 1] 16:58:27.020 [debug] QUERY OK source="media_items" db=1.7ms idle=1217.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🌟 Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=v202\n\nClaude #Cowork is Anthropic's desktop app that turns Claude from a chatbot into a full productivity system on your computer. This walkthrough covers the 7 core capabilities, including local file access, persistent memory, connectors, skills, Cowork Projects, and scheduled tasks, with real examples you can try today.\n\nIf you've been using #Claude Chat but want to automate real work like expense reports, inbox triage, and reusable workflows, this is where to start.\n\n*TIMESTAMPS*\n00:00 Claude Chat, Cowork, Code\n00:25: Claude Chat vs. Claude Cowork\n02:19 Claude Cowork: Essential Settings\n04:12 Capability #1: Local File Access\n06:14 Capability #2: Persistent Memory\n08:44 Capability #3: Tools & Connectors\n10:38 Capability #4: Claude Skills\n14:26 Capability #5: Cowork Projects\n15:39 Capability #6: Claude Browser Extension\n16:44 Capability #7: Scheduled Tasks\n\n*RESOURCES MENTIONED*\nResources for Claude Cowork - https://www.jeffsu.org/learn-80-of-claude-cowork-in-under-20-minutes?utm_source=youtube&utm_medium=video&utm_campaign=v202\nFree AI Toolkit - https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=v202\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=v202\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=v202\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#AI", "Learn 80% of Claude Cowork in Under 20 Minutes", "764f6242-798d-4858-ad5a-3d5fc51ed002", false, "z9rdrNrkvDY", 1, [], 1134, false, "https://www.youtube.com/watch?v=z9rdrNrkvDY", 1, "/downloads/Jeff Su/2026-04-07 Learn 80% of Claude Cowork in Under 20 Minutes/Learn 80% of Claude Cowork in Under 20 Minutes [z9rdrNrkvDY].mp4", false, false, 98, ~U[2026-04-07 13:02:24Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "🌟 Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=v202\n\nClaude #Cowork is Anthropic's desktop app that turns Claude from a chatbot into a full productivity system on your computer. This walkthrough covers the 7 core capabilities, including local file access, persistent memory, connectors, skills, Cowork Projects, and scheduled tasks, with real examples you can try today.\n\nIf you've been using #Claude Chat but want to automate real work like expense reports, inbox triage, and reusable workflows, this is where to start.\n\n*TIMESTAMPS*\n00:00 Claude Chat, Cowork, Code\n00:25: Claude Chat vs. Claude Cowork\n02:19 Claude Cowork: Essential Settings\n04:12 Capability #1: Local File Access\n06:14 Capability #2: Persistent Memory\n08:44 Capability #3: Tools & Connectors\n10:38 Capability #4: Claude Skills\n14:26 Capability #5: Cowork Projects\n15:39 Capability #6: Claude Browser Extension\n16:44 Capability #7: Scheduled Tasks\n\n*RESOURCES MENTIONED*\nResources for Claude Cowork - https://www.jeffsu.org/learn-80-of-claude-cowork-in-under-20-minutes?utm_source=youtube&utm_medium=video&utm_campaign=v202\nFree AI Toolkit - https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=v202\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=v202\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=v202\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#AI", "Learn 80% of Claude Cowork in Under 20 Minutes", "z9rdrNrkvDY", 1, 1134, false, "https://www.youtube.com/watch?v=z9rdrNrkvDY", "/downloads/Jeff Su/2026-04-07 Learn 80% of Claude Cowork in Under 20 Minutes/Learn 80% of Claude Cowork in Under 20 Minutes [z9rdrNrkvDY].mp4", false, ~U[2026-04-07 13:02:24Z]] 16:58:27.021 [debug] QUERY OK source="sources" db=0.2ms idle=217.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:27.022 [debug] QUERY OK source="media_items" db=0.9ms idle=5.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-17 13:01:14Z], 1] 16:58:27.025 [debug] QUERY OK source="media_items" db=1.9ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✅\u00A0Grab HubSpot’s NotebookLM guide: https://clickhubspot.com/414d85\n\n#NotebookLM just got a massive wave of updates and is now more popular than #Gemini itself. In this full walkthrough, I break down the three-column layout, rank every Studio panel tool into Tier 1 (must-use) and Tier 2 (situational), and share the exact prompt templates and workflows I use to turn raw sources into finished reports, presentations, and social-ready visuals.\n\n*TIMESTAMPS*\n00:00 NotebookLM Full Tutorial\n00:21 NotebookLM’s Core Advantage\n02:05 NotebookLM: Sources Panel\n05:17 NotebookLM: Chat Panel\n07:51 Studio Panel: Tier 1 Tools\n08:21 Tool #1: Reports\n09:46 Tool #2: Slide Decks\n12:53 Tool #3: Infographics\n13:56 Tool #4: Mind Maps\n15:07 Studio Panel: Tier 2 Tools\n15:15 Tool #5: Data Tables\n16:09 Tool #6: Video Overviews\n17:02 Bonus Tool: Cinematic Video Overviews\n17:29 Tool #7: Quiz\n17:52 Tool #8: Flashcards\n18:28 Tool #9: Audio Overviews\n19:14 Lightening Round: NotebookLM Use Cases\n19:50 Advanced NotebookLM Workflows\n\n*RESOURCES MENTIONED*\nPrompt Templates: https://www.jeffsu.org/notebooklm-changed-completely-heres-what-matters-in-2026\nWorkspace Essentials Newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=201\nWatch my Gemini tutorial next: https://youtu.be/bTLmt9BKGVc\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=201\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=201\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "NotebookLM Changed Completely: Here's What Matters (in 2026)", "c1d19595-bed6-4ca0-8d9f-eff5d6024630", false, "_uXnyhrqmsU", 1, [], 1230, false, "https://www.youtube.com/watch?v=_uXnyhrqmsU", 2, "/downloads/Jeff Su/2026-03-17 NotebookLM Changed Completely: Here's What Matters (in 2026)/NotebookLM Changed Completely: Here's What Matters (in 2026) [_uXnyhrqmsU].mp4", false, false, 98, ~U[2026-03-17 13:01:14Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "✅\u00A0Grab HubSpot’s NotebookLM guide: https://clickhubspot.com/414d85\n\n#NotebookLM just got a massive wave of updates and is now more popular than #Gemini itself. In this full walkthrough, I break down the three-column layout, rank every Studio panel tool into Tier 1 (must-use) and Tier 2 (situational), and share the exact prompt templates and workflows I use to turn raw sources into finished reports, presentations, and social-ready visuals.\n\n*TIMESTAMPS*\n00:00 NotebookLM Full Tutorial\n00:21 NotebookLM’s Core Advantage\n02:05 NotebookLM: Sources Panel\n05:17 NotebookLM: Chat Panel\n07:51 Studio Panel: Tier 1 Tools\n08:21 Tool #1: Reports\n09:46 Tool #2: Slide Decks\n12:53 Tool #3: Infographics\n13:56 Tool #4: Mind Maps\n15:07 Studio Panel: Tier 2 Tools\n15:15 Tool #5: Data Tables\n16:09 Tool #6: Video Overviews\n17:02 Bonus Tool: Cinematic Video Overviews\n17:29 Tool #7: Quiz\n17:52 Tool #8: Flashcards\n18:28 Tool #9: Audio Overviews\n19:14 Lightening Round: NotebookLM Use Cases\n19:50 Advanced NotebookLM Workflows\n\n*RESOURCES MENTIONED*\nPrompt Templates: https://www.jeffsu.org/notebooklm-changed-completely-heres-what-matters-in-2026\nWorkspace Essentials Newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=201\nWatch my Gemini tutorial next: https://youtu.be/bTLmt9BKGVc\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=201\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=201\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "NotebookLM Changed Completely: Here's What Matters (in 2026)", "_uXnyhrqmsU", 1, 1230, false, "https://www.youtube.com/watch?v=_uXnyhrqmsU", "/downloads/Jeff Su/2026-03-17 NotebookLM Changed Completely: Here's What Matters (in 2026)/NotebookLM Changed Completely: Here's What Matters (in 2026) [_uXnyhrqmsU].mp4", false, ~U[2026-03-17 13:01:14Z]] 16:58:27.026 [debug] QUERY OK source="sources" db=0.4ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:27.027 [debug] QUERY OK source="media_items" db=0.9ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-03 13:01:04Z], 1] 16:58:27.030 [debug] QUERY OK source="media_items" db=1.8ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["️Try Gamma now ➡️\u00A0https://gam.link/jeffsu\n\nMost #AI presentation tutorials stop at the first draft. But if you've worked in any corporate environment, you know the draft is maybe 20% of the work. The other 80% is rounds of edits from stakeholders who all want different things.\n\nThis video walks through a real workflow using #Gamma, covering seven realistic editing scenarios based on actual stakeholder roles: reordering narrative structure, adding slides with live data, verifying stats, transforming text into charts, fixing visual hierarchy, combining redundant slides, and translating a full deck.\n\nEach one tests a different capability of AI #presentation tools.\n\n*TIMESTAMPS*\n00:00 The Problem with AI Presentations\n00:42 A Realistic Presentation Outline\n01:42 Generating First Draft of Your Presentation\n03:55 Editing Your First Draft\n05:04 Scenario 1: Reorder the Narrative\n05:45 Scenario 2: Add a Slide with Live Data\n06:38 Scenario 3: Verify and Source a Stat\n07:22 Scenario 4: Turn Text into a Chart\n08:35 Scenario 5: Fix Visual Hierarchy\n09:26 Scenario 6: Merge Two Slides into One\n10:29 Scenario 7: Translate The Full Deck\n11:46 Pro Tips for Presentations\n\n*RESOURCES MENTIONED*\nPresentation outline - https://www.jeffsu.org/your-ai-presentations-look-great-but-say-nothing\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=200\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=200\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "The Top 1% Build AI Presentations Differently. Here's How.", "5f99faf2-7182-43db-9b1e-7ab821a5cc4a", false, "ZpXN9M0WLQ4", 1, [], 772, false, "https://www.youtube.com/watch?v=ZpXN9M0WLQ4", 3, "/downloads/Jeff Su/2026-03-03 The Top 1% Build AI Presentations Differently. Here's How#/The Top 1% Build AI Presentations Differently. Here's How. [ZpXN9M0WLQ4].mp4", false, false, 98, ~U[2026-03-03 13:01:04Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "️Try Gamma now ➡️\u00A0https://gam.link/jeffsu\n\nMost #AI presentation tutorials stop at the first draft. But if you've worked in any corporate environment, you know the draft is maybe 20% of the work. The other 80% is rounds of edits from stakeholders who all want different things.\n\nThis video walks through a real workflow using #Gamma, covering seven realistic editing scenarios based on actual stakeholder roles: reordering narrative structure, adding slides with live data, verifying stats, transforming text into charts, fixing visual hierarchy, combining redundant slides, and translating a full deck.\n\nEach one tests a different capability of AI #presentation tools.\n\n*TIMESTAMPS*\n00:00 The Problem with AI Presentations\n00:42 A Realistic Presentation Outline\n01:42 Generating First Draft of Your Presentation\n03:55 Editing Your First Draft\n05:04 Scenario 1: Reorder the Narrative\n05:45 Scenario 2: Add a Slide with Live Data\n06:38 Scenario 3: Verify and Source a Stat\n07:22 Scenario 4: Turn Text into a Chart\n08:35 Scenario 5: Fix Visual Hierarchy\n09:26 Scenario 6: Merge Two Slides into One\n10:29 Scenario 7: Translate The Full Deck\n11:46 Pro Tips for Presentations\n\n*RESOURCES MENTIONED*\nPresentation outline - https://www.jeffsu.org/your-ai-presentations-look-great-but-say-nothing\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=200\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=200\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "The Top 1% Build AI Presentations Differently. Here's How.", "ZpXN9M0WLQ4", 1, 772, false, "https://www.youtube.com/watch?v=ZpXN9M0WLQ4", "/downloads/Jeff Su/2026-03-03 The Top 1% Build AI Presentations Differently. Here's How#/The Top 1% Build AI Presentations Differently. Here's How. [ZpXN9M0WLQ4].mp4", false, ~U[2026-03-03 13:01:04Z]] 16:58:27.031 [debug] QUERY OK source="sources" db=0.3ms idle=8.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:27.032 [debug] QUERY OK source="media_items" db=0.9ms idle=6.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-20 13:01:44Z], 1] 16:58:27.037 [debug] QUERY OK source="media_items" db=3.9ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✅\u00A0Google’s #AI Course on Coursera: https://imp.i384100.net/YVD5vq\n\nKnowing how to \"use AI\" is now table stakes (unfortunately) 😅. This video covers 4 skills that will help you get ahead, and each skill is backed by research from Wharton, Harvard, BCG, and MIT.\n\nYou'll learn a mental model for deciding when to delegate, collaborate, or go manual with AI; how to design workflows that compound as AI improves; why storytelling remains your strongest moat; and how to keep your critical thinking sharp instead of letting it atrophy.\n\n*TIMESTAMPS*\n00:00 4 Skills AI Can’t Replace\n00:24 Skill #1: The Cockpit Rule\n03:09 Google’s AI Certificate\n04:04 Skill #2: Build the Rails\n06:04 Skill #3: The Storytelling Moat\n09:04 Skill #4: Manual Override\n10:58 So is AI making us dumber?\n\n*RESOURCES MENTIONED*\nAI Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=199\nMy Essential Power Prompts: https://www.notion.so/templates/essential-power-prompts-jeff-su\nPhilipp Humm on Storytelling: https://www.youtube.com/watch?v=hNuAv-42jzY\nVinh Giang on Storytelling: https://www.youtube.com/watch?v=5HfeNDleTS4\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=199\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#chatgpt #claude", "4 Skills I’m Learning that AI Can’t Replace (backed by data)", "a62d4204-3eaf-47f8-8f8f-9aceb85476fd", false, "s_765enJBy8", 1, [], 731, false, "https://www.youtube.com/watch?v=s_765enJBy8", 4, "/downloads/Jeff Su/2026-02-20 4 Skills I’m Learning that AI Can’t Replace (backed by data)/4 Skills I’m Learning that AI Can’t Replace (backed by data) [s_765enJBy8].mp4", false, false, 98, ~U[2026-02-20 13:01:44Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "✅\u00A0Google’s #AI Course on Coursera: https://imp.i384100.net/YVD5vq\n\nKnowing how to \"use AI\" is now table stakes (unfortunately) 😅. This video covers 4 skills that will help you get ahead, and each skill is backed by research from Wharton, Harvard, BCG, and MIT.\n\nYou'll learn a mental model for deciding when to delegate, collaborate, or go manual with AI; how to design workflows that compound as AI improves; why storytelling remains your strongest moat; and how to keep your critical thinking sharp instead of letting it atrophy.\n\n*TIMESTAMPS*\n00:00 4 Skills AI Can’t Replace\n00:24 Skill #1: The Cockpit Rule\n03:09 Google’s AI Certificate\n04:04 Skill #2: Build the Rails\n06:04 Skill #3: The Storytelling Moat\n09:04 Skill #4: Manual Override\n10:58 So is AI making us dumber?\n\n*RESOURCES MENTIONED*\nAI Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=199\nMy Essential Power Prompts: https://www.notion.so/templates/essential-power-prompts-jeff-su\nPhilipp Humm on Storytelling: https://www.youtube.com/watch?v=hNuAv-42jzY\nVinh Giang on Storytelling: https://www.youtube.com/watch?v=5HfeNDleTS4\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=199\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#chatgpt #claude", "4 Skills I’m Learning that AI Can’t Replace (backed by data)", "s_765enJBy8", 1, 731, false, "https://www.youtube.com/watch?v=s_765enJBy8", "/downloads/Jeff Su/2026-02-20 4 Skills I’m Learning that AI Can’t Replace (backed by data)/4 Skills I’m Learning that AI Can’t Replace (backed by data) [s_765enJBy8].mp4", false, ~U[2026-02-20 13:01:44Z]] 16:58:27.038 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:27.039 [debug] QUERY OK source="media_items" db=0.8ms idle=8.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-03 13:00:03Z], 1] 16:58:27.042 [debug] QUERY OK source="media_items" db=1.7ms idle=8.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["AI Systems Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=Q1_CNT_YOUTUBE_VIDEO_198_AI\n\nAfter three years of testing AI tools daily, I've narrowed down the one thing each tool does better than every alternative.\n\nThis is Part 2 of the AI Superpower Series, covering Productivity AI and Creative AI. You'll see exactly when to use Google Workspace's #Gemini over standalone chatbots, what Notion AI can actually do inside your workspace, and how #Midjourney, Nano Banana Pro, and ChatGPT's image model each serve different creative needs.\n\nEvery recommendation includes a clear rule of thumb so you know which tool to reach for and when.\n\n*TIMESTAMPS*\n00:00 if you’re overwhelmed by AI tools, watch this\n00:59 Google Workspace (Gemini)\n02:53 Notion AI\n05:16 Wispr Flow AI\n06:38 Midjourney\n08:28 Google Nano Banana Pro\n10:22 ChatGPT Image\n11:52 Google Flow\n13:00 Closing Thoughts\n\n*RESOURCES MENTIONED*\nWispr Flow: https://wisprflow.ai/r?JEFF306\nThe full blogpost: https://www.jeffsu.org/if-youre-overwhelmed-by-ai-tools-read-this\nPart 1 (Everyday + Specialist AI): https://youtu.be/htZRCE2GgIs\nNotion video on Relations feature: https://www.youtube.com/watch?v=4Fu23_l9F_o\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=198\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ChatGPT", "The 5 AI Tools You Need After ChatGPT (that do real work)", "3b60091e-7280-4517-bbe6-87ac60daec27", false, "aH9ctWaxGgQ", 1, [], 814, false, "https://www.youtube.com/watch?v=aH9ctWaxGgQ", 5, "/downloads/Jeff Su/2026-02-03 The 5 AI Tools You Need After ChatGPT (that do real work)/The 5 AI Tools You Need After ChatGPT (that do real work) [aH9ctWaxGgQ].mp4", false, false, 98, ~U[2026-02-03 13:00:03Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "AI Systems Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=Q1_CNT_YOUTUBE_VIDEO_198_AI\n\nAfter three years of testing AI tools daily, I've narrowed down the one thing each tool does better than every alternative.\n\nThis is Part 2 of the AI Superpower Series, covering Productivity AI and Creative AI. You'll see exactly when to use Google Workspace's #Gemini over standalone chatbots, what Notion AI can actually do inside your workspace, and how #Midjourney, Nano Banana Pro, and ChatGPT's image model each serve different creative needs.\n\nEvery recommendation includes a clear rule of thumb so you know which tool to reach for and when.\n\n*TIMESTAMPS*\n00:00 if you’re overwhelmed by AI tools, watch this\n00:59 Google Workspace (Gemini)\n02:53 Notion AI\n05:16 Wispr Flow AI\n06:38 Midjourney\n08:28 Google Nano Banana Pro\n10:22 ChatGPT Image\n11:52 Google Flow\n13:00 Closing Thoughts\n\n*RESOURCES MENTIONED*\nWispr Flow: https://wisprflow.ai/r?JEFF306\nThe full blogpost: https://www.jeffsu.org/if-youre-overwhelmed-by-ai-tools-read-this\nPart 1 (Everyday + Specialist AI): https://youtu.be/htZRCE2GgIs\nNotion video on Relations feature: https://www.youtube.com/watch?v=4Fu23_l9F_o\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=198\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ChatGPT", "The 5 AI Tools You Need After ChatGPT (that do real work)", "aH9ctWaxGgQ", 1, 814, false, "https://www.youtube.com/watch?v=aH9ctWaxGgQ", "/downloads/Jeff Su/2026-02-03 The 5 AI Tools You Need After ChatGPT (that do real work)/The 5 AI Tools You Need After ChatGPT (that do real work) [aH9ctWaxGgQ].mp4", false, ~U[2026-02-03 13:00:03Z]] 16:58:27.042 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:27.044 [debug] QUERY OK source="media_items" db=1.0ms idle=6.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-20 13:01:32Z], 1] 16:58:27.047 [debug] QUERY OK source="media_items" db=1.7ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["⚡️ HubSpot’s Free Guide: https://clickhubspot.com/5c4cca\n\nEvery AI tool excels at one thing. #ChatGPT follows complex instructions without dropping steps. #Gemini handles video, audio, and massive files other models can't process. #Claude produces working code and polished copy on the first try. Perplexity fetches accurate information in seconds. NotebookLM answers only from your sources, so it can't hallucinate.\n\nThis video breaks down when to use each tool based on three years of daily use, first at Google and now as a creator. Part 1 covers Everyday AI and Specialist AI. Part 2 covers Creative and Productivity AI.\n\n*TIMESTAMPS*\n00:00 The AI Tools that Drive 90% of My Results\n00:32 Everyday AI\n00:47 ChatGPT\n02:46 Google Gemini\n05:15 Claude\n07:45 Recap: Everyday AI\n08:14 Specialist AI\n08:47 Perplexity\n10:20 NotebookLM\n\n*RESOURCES MENTIONED*\nMy Essential Power Prompts template: https://www.notion.com/templates/essential-power-prompts-jeff-su\nGoogle search operators video: https://youtu.be/DIuo_QL4sAQ\nBlogpost: https://www.jeffsu.org/10-ai-tools-drive-most-results/\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=197\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=197\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "The Only AI Tools You Need (12-Minute Guide)", "b56648e2-d55a-4977-9736-8600b74701b3", false, "htZRCE2GgIs", 1, [], 716, false, "https://www.youtube.com/watch?v=htZRCE2GgIs", 6, "/downloads/Jeff Su/2026-01-20 The Only AI Tools You Need (12-Minute Guide)/The Only AI Tools You Need (12-Minute Guide) [htZRCE2GgIs].mp4", false, false, 98, ~U[2026-01-20 13:01:32Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "⚡️ HubSpot’s Free Guide: https://clickhubspot.com/5c4cca\n\nEvery AI tool excels at one thing. #ChatGPT follows complex instructions without dropping steps. #Gemini handles video, audio, and massive files other models can't process. #Claude produces working code and polished copy on the first try. Perplexity fetches accurate information in seconds. NotebookLM answers only from your sources, so it can't hallucinate.\n\nThis video breaks down when to use each tool based on three years of daily use, first at Google and now as a creator. Part 1 covers Everyday AI and Specialist AI. Part 2 covers Creative and Productivity AI.\n\n*TIMESTAMPS*\n00:00 The AI Tools that Drive 90% of My Results\n00:32 Everyday AI\n00:47 ChatGPT\n02:46 Google Gemini\n05:15 Claude\n07:45 Recap: Everyday AI\n08:14 Specialist AI\n08:47 Perplexity\n10:20 NotebookLM\n\n*RESOURCES MENTIONED*\nMy Essential Power Prompts template: https://www.notion.com/templates/essential-power-prompts-jeff-su\nGoogle search operators video: https://youtu.be/DIuo_QL4sAQ\nBlogpost: https://www.jeffsu.org/10-ai-tools-drive-most-results/\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=197\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=197\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "The Only AI Tools You Need (12-Minute Guide)", "htZRCE2GgIs", 1, 716, false, "https://www.youtube.com/watch?v=htZRCE2GgIs", "/downloads/Jeff Su/2026-01-20 The Only AI Tools You Need (12-Minute Guide)/The Only AI Tools You Need (12-Minute Guide) [htZRCE2GgIs].mp4", false, ~U[2026-01-20 13:01:32Z]] 16:58:27.048 [debug] QUERY OK source="sources" db=0.3ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:27.049 [debug] QUERY OK source="media_items" db=0.9ms idle=6.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-06 13:00:31Z], 1] 16:58:27.052 [debug] QUERY OK source="media_items" db=1.7ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Most #AI predictions are speculation. This video covers six trends backed by data from McKinsey, Stanford, #OpenAI, and Epoch AI, with specific steps you can take for each one.\n\nYou'll learn why the \"best model\" debate no longer matters, how AI workflows are outperforming autonomous agents in real enterprise settings, and why your file management system now directly impacts how useful AI can be for your work. Each trend includes concrete examples and a clear action item.\n\n*TIMESTAMPS*\n00:00 Top 6 AI Trends That Will Define 2026\n00:24 Trend 1: Models Won’t Matter Much Anymore\n02:55 Trend 2: Year of AI Workflows, NOT AI Agents\n05:33 Trend 3: The End of the Technical Divide\n07:13 Trend 4: The Rise of Context Engineering\n09:12 Trend 5: Advertising Comes to Chatbots\n10:46 Trend 6: From Chatbots to Robots\n\n*RESOURCES MENTIONED*\nSources mentioned: https://www.jeffsu.org/6-ai-trends-that-actually-matter-for-your-work-in-2026?utm_source=youtube&utm_medium=video&utm_campaign=196\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=196\nFree AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=196\nEssential Power Prompts: https://www.notion.com/templates/essential-power-prompts-jeff-su\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=196\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#2026", "Top 6 AI Trends That Will Define 2026 (backed by data)", "69cb58ed-7677-47bb-9507-e43a6e07f9e0", false, "B23W1gRT9eY", 1, [], 793, false, "https://www.youtube.com/watch?v=B23W1gRT9eY", 7, "/downloads/Jeff Su/2026-01-06 Top 6 AI Trends That Will Define 2026 (backed by data)/Top 6 AI Trends That Will Define 2026 (backed by data) [B23W1gRT9eY].mp4", false, false, 98, ~U[2026-01-06 13:00:31Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "Most #AI predictions are speculation. This video covers six trends backed by data from McKinsey, Stanford, #OpenAI, and Epoch AI, with specific steps you can take for each one.\n\nYou'll learn why the \"best model\" debate no longer matters, how AI workflows are outperforming autonomous agents in real enterprise settings, and why your file management system now directly impacts how useful AI can be for your work. Each trend includes concrete examples and a clear action item.\n\n*TIMESTAMPS*\n00:00 Top 6 AI Trends That Will Define 2026\n00:24 Trend 1: Models Won’t Matter Much Anymore\n02:55 Trend 2: Year of AI Workflows, NOT AI Agents\n05:33 Trend 3: The End of the Technical Divide\n07:13 Trend 4: The Rise of Context Engineering\n09:12 Trend 5: Advertising Comes to Chatbots\n10:46 Trend 6: From Chatbots to Robots\n\n*RESOURCES MENTIONED*\nSources mentioned: https://www.jeffsu.org/6-ai-trends-that-actually-matter-for-your-work-in-2026?utm_source=youtube&utm_medium=video&utm_campaign=196\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=196\nFree AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=196\nEssential Power Prompts: https://www.notion.com/templates/essential-power-prompts-jeff-su\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=196\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#2026", "Top 6 AI Trends That Will Define 2026 (backed by data)", "B23W1gRT9eY", 1, 793, false, "https://www.youtube.com/watch?v=B23W1gRT9eY", "/downloads/Jeff Su/2026-01-06 Top 6 AI Trends That Will Define 2026 (backed by data)/Top 6 AI Trends That Will Define 2026 (backed by data) [B23W1gRT9eY].mp4", false, ~U[2026-01-06 13:00:31Z]] 16:58:27.052 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:27.054 [debug] QUERY OK source="media_items" db=0.9ms idle=6.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 12:01:13Z], 1] 16:58:27.056 [debug] QUERY OK source="media_items" db=1.7ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✅\u00A0Get 40% off 3 months of Coursera Plus: https://imp.i384100.net/c/2464514/3102764/14726\n\nThe sheer volume of updates in #Gemini 3.0 is overwhelming, but not every feature deserves your attention. After a month of testing the model with real-world workflows, I have narrowed down the five specific changes that actually impact professional productivity.\n\nThis breakdown covers how to use improved multimodal understanding to turn video into documentation, leveraging generative interfaces for dynamic data analysis, and why context engineering is replacing prompt engineering for reliable outputs.\n\n*TIMESTAMPS*\n00:00 How to use Google Gemini in 2026\n00:21 Improved Multimodal Understanding\n02:09 Better Use of Large Documents\n04:28 Enhanced Workspace Search\n07:03 Generative Interfaces\n10:11 Better Intent Understanding\n12:00 Bonus Tip!\n\n*RESOURCES MENTIONED*\n💪🏻\u00A0Google’s new People Management Course: https://imp.i384100.net/YR522K\n🤖\u00A0Essential Power Prompts: https://www.notion.com/templates/essential-power-prompts-jeff-su\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=195\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=XXX\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai #google", "Master Gemini 3.1 for Work in 12 Minutes (2026)", "cccfc2b5-40ec-434c-baf4-d3a1bd742023", false, "bTLmt9BKGVc", 1, [], 777, false, "https://www.youtube.com/watch?v=bTLmt9BKGVc", 8, "/downloads/Jeff Su/2025-12-16 Master Gemini 3.1 for Work in 12 Minutes (2026)/Master Gemini 3.1 for Work in 12 Minutes (2026) [bTLmt9BKGVc].mp4", false, false, 98, ~U[2025-12-16 12:01:13Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "✅\u00A0Get 40% off 3 months of Coursera Plus: https://imp.i384100.net/c/2464514/3102764/14726\n\nThe sheer volume of updates in #Gemini 3.0 is overwhelming, but not every feature deserves your attention. After a month of testing the model with real-world workflows, I have narrowed down the five specific changes that actually impact professional productivity.\n\nThis breakdown covers how to use improved multimodal understanding to turn video into documentation, leveraging generative interfaces for dynamic data analysis, and why context engineering is replacing prompt engineering for reliable outputs.\n\n*TIMESTAMPS*\n00:00 How to use Google Gemini in 2026\n00:21 Improved Multimodal Understanding\n02:09 Better Use of Large Documents\n04:28 Enhanced Workspace Search\n07:03 Generative Interfaces\n10:11 Better Intent Understanding\n12:00 Bonus Tip!\n\n*RESOURCES MENTIONED*\n💪🏻\u00A0Google’s new People Management Course: https://imp.i384100.net/YR522K\n🤖\u00A0Essential Power Prompts: https://www.notion.com/templates/essential-power-prompts-jeff-su\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=195\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=XXX\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai #google", "Master Gemini 3.1 for Work in 12 Minutes (2026)", "bTLmt9BKGVc", 1, 777, false, "https://www.youtube.com/watch?v=bTLmt9BKGVc", "/downloads/Jeff Su/2025-12-16 Master Gemini 3.1 for Work in 12 Minutes (2026)/Master Gemini 3.1 for Work in 12 Minutes (2026) [bTLmt9BKGVc].mp4", false, ~U[2025-12-16 12:01:13Z]] 16:58:27.057 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:27.058 [debug] QUERY OK source="media_items" db=0.9ms idle=6.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 13:00:26Z], 1] 16:58:27.061 [debug] QUERY OK source="media_items" db=1.6ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I walk you through three practical habits and one bonus system that turn tools like #ChatGPT, #Gemini, and Claude into a real AI-native workflow. You will learn how to leave AI breadcrumbs, build an AI swipe file, plan projects AI-first, and keep a living prompts database so you save time, improve quality, and stop rebuilding the same work from scratch.\n\n*TIMESTAMPS*\n00:00 How to become AI-Native\n00:37 Leave AI Breadcrumbs\n03:13 Build an AI Swipe File System\n05:20 AI-First Task Planning\n08:01 Bonus AI-Native Habit\n\n*RESOURCES MENTIONED*\nAI Course Waitlist: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=194\nEssential Prompts Collection: https://www.notion.so/templates/essential-power-prompts-jeff-su\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=194\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ainative", "Give Me 9 Minutes, I'll Make You AI-Native", "a36cf44d-45a9-4b96-bc85-65bff795c03d", false, "E7YiKBeOneo", 1, [], 534, false, "https://www.youtube.com/watch?v=E7YiKBeOneo", 9, "/downloads/Jeff Su/2025-12-04 Give Me 9 Minutes, I'll Make You AI-Native/Give Me 9 Minutes, I'll Make You AI-Native [E7YiKBeOneo].mp4", false, false, 98, ~U[2025-12-04 13:00:26Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "In this video I walk you through three practical habits and one bonus system that turn tools like #ChatGPT, #Gemini, and Claude into a real AI-native workflow. You will learn how to leave AI breadcrumbs, build an AI swipe file, plan projects AI-first, and keep a living prompts database so you save time, improve quality, and stop rebuilding the same work from scratch.\n\n*TIMESTAMPS*\n00:00 How to become AI-Native\n00:37 Leave AI Breadcrumbs\n03:13 Build an AI Swipe File System\n05:20 AI-First Task Planning\n08:01 Bonus AI-Native Habit\n\n*RESOURCES MENTIONED*\nAI Course Waitlist: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=194\nEssential Prompts Collection: https://www.notion.so/templates/essential-power-prompts-jeff-su\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=194\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ainative", "Give Me 9 Minutes, I'll Make You AI-Native", "E7YiKBeOneo", 1, 534, false, "https://www.youtube.com/watch?v=E7YiKBeOneo", "/downloads/Jeff Su/2025-12-04 Give Me 9 Minutes, I'll Make You AI-Native/Give Me 9 Minutes, I'll Make You AI-Native [E7YiKBeOneo].mp4", false, ~U[2025-12-04 13:00:26Z]] 16:58:27.062 [debug] QUERY OK source="sources" db=0.3ms idle=7.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:27.063 [debug] QUERY OK source="media_items" db=0.9ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-18 13:00:11Z], 1] 16:58:27.066 [debug] QUERY OK source="media_items" db=1.8ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🧠\u00A0Build Your Own Command Center: https://www.pressplay.cc/link/s/9BBC0F4D\n\nMost #Notion users keep their databases isolated, which means tasks, notes, and projects get jumbled together in confusing ways. The Relations feature changes that by connecting your databases so only relevant information shows up when you need it. This is the foundation of building powerful Notion #systems, and it takes about 2 minutes to learn.\n\nIn this video, you'll see exactly why typical Notion setups fall apart, how to connect databases using Relations, and how to build self-filtering #templates that automatically organize new projects. I'll walk through manual and automated approaches with a working example you can duplicate.\n\n*TIMESTAMPS*\n00:00 The Only Notion Feature You Need\n00:06 How Beginners Use Notion\n02:21 The Correct Way to Use Notion\n03:51 Connect Databases Using Relations\n05:33 Our New and Improved Notion Workflow\n10:04 Putting It All Together\n12:54 Taking It a Step Further\n\n*RESOURCES MENTIONED*\nNotion template (duplicate and follow along): https://www.jeffsu.org/master-80-of-notion-with-this-one-feature\nThe College Essay Playbook (free resource for students): https://themaychen.substack.com/?utm_source=youtube&utm_medium=video&utm_campaign=jeffsu\nCommand Center full course: https://www.pressplay.cc/link/s/9BBC0F4D\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=193\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=193\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#productivity", "Master 80% of Notion with this ONE Feature", "35c97a96-7343-449e-a8af-f53188b83084", false, "4Fu23_l9F_o", 1, [], 826, false, "https://www.youtube.com/watch?v=4Fu23_l9F_o", 10, "/downloads/Jeff Su/2025-11-18 Master 80% of Notion with this ONE Feature/Master 80% of Notion with this ONE Feature [4Fu23_l9F_o].mp4", false, false, 98, ~U[2025-11-18 13:00:11Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "🧠\u00A0Build Your Own Command Center: https://www.pressplay.cc/link/s/9BBC0F4D\n\nMost #Notion users keep their databases isolated, which means tasks, notes, and projects get jumbled together in confusing ways. The Relations feature changes that by connecting your databases so only relevant information shows up when you need it. This is the foundation of building powerful Notion #systems, and it takes about 2 minutes to learn.\n\nIn this video, you'll see exactly why typical Notion setups fall apart, how to connect databases using Relations, and how to build self-filtering #templates that automatically organize new projects. I'll walk through manual and automated approaches with a working example you can duplicate.\n\n*TIMESTAMPS*\n00:00 The Only Notion Feature You Need\n00:06 How Beginners Use Notion\n02:21 The Correct Way to Use Notion\n03:51 Connect Databases Using Relations\n05:33 Our New and Improved Notion Workflow\n10:04 Putting It All Together\n12:54 Taking It a Step Further\n\n*RESOURCES MENTIONED*\nNotion template (duplicate and follow along): https://www.jeffsu.org/master-80-of-notion-with-this-one-feature\nThe College Essay Playbook (free resource for students): https://themaychen.substack.com/?utm_source=youtube&utm_medium=video&utm_campaign=jeffsu\nCommand Center full course: https://www.pressplay.cc/link/s/9BBC0F4D\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=193\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=193\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#productivity", "Master 80% of Notion with this ONE Feature", "4Fu23_l9F_o", 1, 826, false, "https://www.youtube.com/watch?v=4Fu23_l9F_o", "/downloads/Jeff Su/2025-11-18 Master 80% of Notion with this ONE Feature/Master 80% of Notion with this ONE Feature [4Fu23_l9F_o].mp4", false, ~U[2025-11-18 13:00:11Z]] 16:58:27.067 [debug] QUERY OK source="sources" db=0.3ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:27.068 [debug] QUERY OK source="media_items" db=0.8ms idle=6.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-04 13:30:08Z], 1] 16:58:27.071 [debug] QUERY OK source="media_items" db=1.7ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab HubSpot’s #ChatGPT ebook: https://clickhubspot.com/4f1519\n\nMost people waste hours going back and forth with ChatGPT, refining prompts until they finally get decent results. This video shows you four techniques that change that completely.\n\nYou'll learn how to reverse-engineer your best prompts, amplify one piece of content into multiple formats, use AI to critique its own work, and force ChatGPT to outline its reasoning before executing. Each technique is demonstrated with real examples you can apply immediately.\n\nThese methods have cut my AI workflow time in half, and they work across any role or industry.\n\n*TIMESTAMPS*\n00:00 Prompt Reversal Technique\n02:57 Free ChatGPT Resource\n03:35 The 5-Minute Amplifer\n06:06 The Red Team Technique\n08:09 Blueprint Scaffolding\n\n*RESOURCES MENTIONED*\nJoin the waitlist for my #AI Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=192\nWritten blogpost: https://www.jeffsu.org/4-chatgpt-hacks-that-cut-my-workload-in-half?utm_source=youtube&utm_medium=video&utm_campaign=192\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=192\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#productivity", "4 ChatGPT Hacks that Cut My Workload in Half", "e97073b1-6aee-4fa1-a032-f8c5a7c37995", false, "6hRO1q8vv60", 1, [], 649, false, "https://www.youtube.com/watch?v=6hRO1q8vv60", 11, "/downloads/Jeff Su/2025-11-04 4 ChatGPT Hacks that Cut My Workload in Half/4 ChatGPT Hacks that Cut My Workload in Half [6hRO1q8vv60].mp4", false, false, 98, ~U[2025-11-04 13:30:08Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "Grab HubSpot’s #ChatGPT ebook: https://clickhubspot.com/4f1519\n\nMost people waste hours going back and forth with ChatGPT, refining prompts until they finally get decent results. This video shows you four techniques that change that completely.\n\nYou'll learn how to reverse-engineer your best prompts, amplify one piece of content into multiple formats, use AI to critique its own work, and force ChatGPT to outline its reasoning before executing. Each technique is demonstrated with real examples you can apply immediately.\n\nThese methods have cut my AI workflow time in half, and they work across any role or industry.\n\n*TIMESTAMPS*\n00:00 Prompt Reversal Technique\n02:57 Free ChatGPT Resource\n03:35 The 5-Minute Amplifer\n06:06 The Red Team Technique\n08:09 Blueprint Scaffolding\n\n*RESOURCES MENTIONED*\nJoin the waitlist for my #AI Course: https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=192\nWritten blogpost: https://www.jeffsu.org/4-chatgpt-hacks-that-cut-my-workload-in-half?utm_source=youtube&utm_medium=video&utm_campaign=192\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=192\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#productivity", "4 ChatGPT Hacks that Cut My Workload in Half", "6hRO1q8vv60", 1, 649, false, "https://www.youtube.com/watch?v=6hRO1q8vv60", "/downloads/Jeff Su/2025-11-04 4 ChatGPT Hacks that Cut My Workload in Half/4 ChatGPT Hacks that Cut My Workload in Half [6hRO1q8vv60].mp4", false, ~U[2025-11-04 13:30:08Z]] 16:58:27.071 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:27.073 [debug] QUERY OK source="media_items" db=0.9ms idle=6.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-21 13:01:38Z], 1] 16:58:27.076 [debug] QUERY OK source="media_items" db=1.8ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📑\u00A0My blogpost on the CORE #workflow: https://www.jeffsu.org/i-taught-6-642-googlers-this-productivity-system\n\nI'm sharing the exact #productivity system I taught to over 6,600 Google employees over nine years.\n\nThe CORE workflow handles all four types of workplace information through a simple four-step process: Capture everything immediately, Organize with minimal friction, Review during scheduled sessions, and Engage by blocking time to execute.\n\nTrust me when I tell you it works with any tool you already use and becomes automatic within two weeks. No more relying on memory or willpower alone!\n\n*TIMESTAMPS*\n00:00 The Productivity System I Taught at Google\n00:28 The Basics\n01:05 The CORE Workflow in Action\n02:50 Why This Works\n04:10 Breaking Down the CORE Workflow\n06:53 Recap of My Productivity System\n\n*RESOURCES MENTIONED*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=191\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=191\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=191\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#google", "The Productivity System I Taught to 6,642 Googlers", "c469e7da-e759-4a2a-a1a7-9dda0f5e4223", false, "oO9GLC2iKy8", 1, [], 491, false, "https://www.youtube.com/watch?v=oO9GLC2iKy8", 12, "/downloads/Jeff Su/2025-10-21 The Productivity System I Taught to 6,642 Googlers/The Productivity System I Taught to 6,642 Googlers [oO9GLC2iKy8].mp4", false, false, 98, ~U[2025-10-21 13:01:38Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "📑\u00A0My blogpost on the CORE #workflow: https://www.jeffsu.org/i-taught-6-642-googlers-this-productivity-system\n\nI'm sharing the exact #productivity system I taught to over 6,600 Google employees over nine years.\n\nThe CORE workflow handles all four types of workplace information through a simple four-step process: Capture everything immediately, Organize with minimal friction, Review during scheduled sessions, and Engage by blocking time to execute.\n\nTrust me when I tell you it works with any tool you already use and becomes automatic within two weeks. No more relying on memory or willpower alone!\n\n*TIMESTAMPS*\n00:00 The Productivity System I Taught at Google\n00:28 The Basics\n01:05 The CORE Workflow in Action\n02:50 Why This Works\n04:10 Breaking Down the CORE Workflow\n06:53 Recap of My Productivity System\n\n*RESOURCES MENTIONED*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=191\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=191\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=191\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#google", "The Productivity System I Taught to 6,642 Googlers", "oO9GLC2iKy8", 1, 491, false, "https://www.youtube.com/watch?v=oO9GLC2iKy8", "/downloads/Jeff Su/2025-10-21 The Productivity System I Taught to 6,642 Googlers/The Productivity System I Taught to 6,642 Googlers [oO9GLC2iKy8].mp4", false, ~U[2025-10-21 13:01:38Z]] 16:58:27.076 [debug] QUERY OK source="sources" db=0.3ms idle=8.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:27.078 [debug] QUERY OK source="media_items" db=0.9ms idle=6.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-07 12:28:54Z], 1] 16:58:27.625 [debug] QUERY OK source="media_items" db=546.3ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📈\u00A0Grab my AI Toolkit - https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=190\n\nForget the hype about #AI replacing Hollywood overnight. The reality is that although AI video tools are incredibly powerful, there's no magic button that creates entire videos with one prompt. The real challenge is consistency: getting your characters, voices, and scenes to stay the same across multiple clips.\n\nIn this video, I walk through the exact 4-step workflow I use to create multi-scene AI videos with consistent characters. We'll use Google Whisk, Flow, a custom Gemini Gem, and ElevenLabs to build a complete skit from scratch.\n\nNo BS, just the actual process.\n\n*TIMESTAMPS*\n00:00 The Reality of the AI Video Landscape\n00:25 Bottom Line Up Front\n04:15 Step 1\n06:34 Step 2\n08:53 Step 3\n12:43 Step 4\n14:56 Final Thoughts\n16:09 Sora 2 Rollout and Implications\n\n*RESOURCES MENTIONED*\nPrompts & Templates: https://www.jeffsu.org/the-reality-of-ai-video-a-no-bullshit-guide/\nOther free resources: https://www.jeffsu.org/links/?utm_source=youtube&utm_medium=video&utm_campaign=190\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=190\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=190\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#googlegemini #googleveo", "How to Create Cinematic AI Videos (No-BS Guide)", "c3307064-bf33-4460-9950-3b5e643d14e4", false, "0-0gFuDwmXI", 1, [], 1021, false, "https://www.youtube.com/watch?v=0-0gFuDwmXI", 13, "/downloads/Jeff Su/2025-10-07 How to Create Cinematic AI Videos (No-BS Guide)/How to Create Cinematic AI Videos (No-BS Guide) [0-0gFuDwmXI].mp4", false, false, 98, ~U[2025-10-07 12:28:54Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "📈\u00A0Grab my AI Toolkit - https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=190\n\nForget the hype about #AI replacing Hollywood overnight. The reality is that although AI video tools are incredibly powerful, there's no magic button that creates entire videos with one prompt. The real challenge is consistency: getting your characters, voices, and scenes to stay the same across multiple clips.\n\nIn this video, I walk through the exact 4-step workflow I use to create multi-scene AI videos with consistent characters. We'll use Google Whisk, Flow, a custom Gemini Gem, and ElevenLabs to build a complete skit from scratch.\n\nNo BS, just the actual process.\n\n*TIMESTAMPS*\n00:00 The Reality of the AI Video Landscape\n00:25 Bottom Line Up Front\n04:15 Step 1\n06:34 Step 2\n08:53 Step 3\n12:43 Step 4\n14:56 Final Thoughts\n16:09 Sora 2 Rollout and Implications\n\n*RESOURCES MENTIONED*\nPrompts & Templates: https://www.jeffsu.org/the-reality-of-ai-video-a-no-bullshit-guide/\nOther free resources: https://www.jeffsu.org/links/?utm_source=youtube&utm_medium=video&utm_campaign=190\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=190\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=190\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#googlegemini #googleveo", "How to Create Cinematic AI Videos (No-BS Guide)", "0-0gFuDwmXI", 1, 1021, false, "https://www.youtube.com/watch?v=0-0gFuDwmXI", "/downloads/Jeff Su/2025-10-07 How to Create Cinematic AI Videos (No-BS Guide)/How to Create Cinematic AI Videos (No-BS Guide) [0-0gFuDwmXI].mp4", false, ~U[2025-10-07 12:28:54Z]] 16:58:27.626 [debug] QUERY OK source="sources" db=0.4ms idle=552.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:27.627 [debug] QUERY OK source="media_items" db=0.9ms idle=551.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-23 13:15:09Z], 1] 16:58:28.266 [debug] QUERY OK source="media_items" db=637.7ms idle=551.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🦾\u00A0HubSpot’s #ChatGPT Playbook: https://clickhubspot.com/65d274\n\nIf your ChatGPT-5 results seem worse, it's not just you. #OpenAI fundamentally changed GPT-5’s architecture, which is why old prompting techniques are now less effective. After a month of testing, I've found 5 simple tips that dramatically improve your outputs. This video covers everything from easy \"nudge phrases\" that force deeper reasoning to advanced \"perfection loops\" for complex tasks, helping you master the new model.\n\n*TIMESTAMPS*\n00:00 Why ChatGPT-5 is WORSE than before\n00:34 Update #1 from OpenAI\n01:29 Update #2 from OpenAI\n02:10 Tip 1: Router Nudge Phrases\n04:32 Tip 2: Verbosity Control\n06:18 Tip 3: OpenAI’s Prompt Optimizer\n08:12 Tip 4: Create an XML Sandwich\n09:55 Tip 5: The Perfection Loop\n11:26 ChatGPT-5 Updates Recap\n\n*RESOURCES MENTIONED*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=189\nMy free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=189\nPrompts & Phrases from the video: https://www.jeffsu.org/chatgpt-5-prompting-best-practices\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=189\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "95% of People STILL Prompt ChatGPT-5 Wrong", "a75c8594-4103-4d8a-ac0a-60a097407152", false, "iRTK-jsfleg", 1, [], 710, false, "https://www.youtube.com/watch?v=iRTK-jsfleg", 14, "/downloads/Jeff Su/2025-09-23 95% of People STILL Prompt ChatGPT-5 Wrong/95% of People STILL Prompt ChatGPT-5 Wrong [iRTK-jsfleg].mp4", false, false, 98, ~U[2025-09-23 13:15:09Z], ~U[2026-04-23 14:58:27Z], ~U[2026-04-23 14:58:27Z], "🦾\u00A0HubSpot’s #ChatGPT Playbook: https://clickhubspot.com/65d274\n\nIf your ChatGPT-5 results seem worse, it's not just you. #OpenAI fundamentally changed GPT-5’s architecture, which is why old prompting techniques are now less effective. After a month of testing, I've found 5 simple tips that dramatically improve your outputs. This video covers everything from easy \"nudge phrases\" that force deeper reasoning to advanced \"perfection loops\" for complex tasks, helping you master the new model.\n\n*TIMESTAMPS*\n00:00 Why ChatGPT-5 is WORSE than before\n00:34 Update #1 from OpenAI\n01:29 Update #2 from OpenAI\n02:10 Tip 1: Router Nudge Phrases\n04:32 Tip 2: Verbosity Control\n06:18 Tip 3: OpenAI’s Prompt Optimizer\n08:12 Tip 4: Create an XML Sandwich\n09:55 Tip 5: The Perfection Loop\n11:26 ChatGPT-5 Updates Recap\n\n*RESOURCES MENTIONED*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=189\nMy free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=189\nPrompts & Phrases from the video: https://www.jeffsu.org/chatgpt-5-prompting-best-practices\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=189\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "95% of People STILL Prompt ChatGPT-5 Wrong", "iRTK-jsfleg", 1, 710, false, "https://www.youtube.com/watch?v=iRTK-jsfleg", "/downloads/Jeff Su/2025-09-23 95% of People STILL Prompt ChatGPT-5 Wrong/95% of People STILL Prompt ChatGPT-5 Wrong [iRTK-jsfleg].mp4", false, ~U[2025-09-23 13:15:09Z]] 16:58:28.268 [debug] QUERY OK source="sources" db=1.0ms idle=642.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.269 [debug] QUERY OK source="media_items" db=0.9ms idle=642.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-09 13:01:04Z], 1] 16:58:28.272 [debug] QUERY OK source="media_items" db=1.9ms queue=0.1ms idle=642.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✅\u00A0Get 40% off 3 months of Coursera Plus: https://imp.i384100.net/c/2464514/3102764/14726\n\nMost #iPhone users tap through multiple screens just to use AI, but the top performers have built seamless workflows that make #AI feel native to their device.\n\nIn this video we go over 5 specific mobile habits that eliminate friction when using #ChatGPT, Claude, and #Gemini on your phone. You'll learn cross-app drag-and-drop techniques, system-level share sheet optimization, text replacement shortcuts for instant prompting, action button configurations for voice commands, and an advanced shortcut system for contextual AI actions.\n\n*TIMESTAMPS*\n00:00 How to use AI on iPhone\n00:42 #1: Drag to Ask\n02:19 #2: Instant Content Analysis\n04:57 How I Stay Ahead with AI\n05:47 The Prompt Snippet Keyboard\n07:59 Pocket Voice Command Launcher\n09:38 Smart Context Launcher\n\n*RESOURCES MENTIONED*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=188\nAI Actions Shortcut: https://www.icloud.com/shortcuts/d88093ef3e7944d2b53b4e30f19df7cd\nPrompt Templates: https://jeffsu.notion.site/jeff-su-5-iphone-ai-habits\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=188\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "My Top 5 AI Tips for iPhone Users!", "ebaa0bc1-118e-4c04-adc2-7ae7def7bac2", false, "ZEyRtkNmcEQ", 1, [], 788, false, "https://www.youtube.com/watch?v=ZEyRtkNmcEQ", 15, "/downloads/Jeff Su/2025-09-09 My Top 5 AI Tips for iPhone Users!/My Top 5 AI Tips for iPhone Users! [ZEyRtkNmcEQ].mp4", false, false, 98, ~U[2025-09-09 13:01:04Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "✅\u00A0Get 40% off 3 months of Coursera Plus: https://imp.i384100.net/c/2464514/3102764/14726\n\nMost #iPhone users tap through multiple screens just to use AI, but the top performers have built seamless workflows that make #AI feel native to their device.\n\nIn this video we go over 5 specific mobile habits that eliminate friction when using #ChatGPT, Claude, and #Gemini on your phone. You'll learn cross-app drag-and-drop techniques, system-level share sheet optimization, text replacement shortcuts for instant prompting, action button configurations for voice commands, and an advanced shortcut system for contextual AI actions.\n\n*TIMESTAMPS*\n00:00 How to use AI on iPhone\n00:42 #1: Drag to Ask\n02:19 #2: Instant Content Analysis\n04:57 How I Stay Ahead with AI\n05:47 The Prompt Snippet Keyboard\n07:59 Pocket Voice Command Launcher\n09:38 Smart Context Launcher\n\n*RESOURCES MENTIONED*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=188\nAI Actions Shortcut: https://www.icloud.com/shortcuts/d88093ef3e7944d2b53b4e30f19df7cd\nPrompt Templates: https://jeffsu.notion.site/jeff-su-5-iphone-ai-habits\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=188\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "My Top 5 AI Tips for iPhone Users!", "ZEyRtkNmcEQ", 1, 788, false, "https://www.youtube.com/watch?v=ZEyRtkNmcEQ", "/downloads/Jeff Su/2025-09-09 My Top 5 AI Tips for iPhone Users!/My Top 5 AI Tips for iPhone Users! [ZEyRtkNmcEQ].mp4", false, ~U[2025-09-09 13:01:04Z]] 16:58:28.273 [debug] QUERY OK source="sources" db=0.2ms idle=468.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.274 [debug] QUERY OK source="media_items" db=0.9ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-27 14:30:01Z], 1] 16:58:28.277 [debug] QUERY OK source="media_items" db=1.7ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["➡️\u00A0HubSpot’s free AI Agents Playbook: https://clickhubspot.com/f034de\n\nAI tools like #ChatGPT and Gemini are supposed to make us “more productive” but oftentimes the friction of using these tools is just high enough that we default to our old, and less efficient workflows.\n\nIn this video we’ll go through three daily habits that eliminate that friction completely: global keyboard shortcuts that launch AI from anywhere, text expanders that deploy complex prompts instantly, and the prompt multiplier method for high-stakes decisions.\n\nThese techniques work across ALL AI tools (i.e. they’re platform-agnostic) and involves only simple setup steps that take minutes but save hours.\n\n*TIMESTAMPS*\n00:00 AI Habits that Save Me 20+ Hours a Week\n01:20 The Everywhere AI Shortcut\n04:35 Utilize Text Expanders\n07:13 The Prompt Multiplier Method\n09:44 Bonus Tip!\n\n*RESOURCES MENTIONED*\nMy AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=187\nTools: https://www.jeffsu.org/3-ai-habits-that-saves-me-20-hours-a-week\nPrompts: https://jeffsu.notion.site/jeff-su-3-ai-habits-prompts?source=copy_link\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=187\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=187\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai #claude", "3 AI Habits So Powerful It Feels Like Cheating", "f0d98491-bfdd-452a-ac92-267190ecd500", false, "31cp_OXKzkI", 1, [], 650, false, "https://www.youtube.com/watch?v=31cp_OXKzkI", 16, "/downloads/Jeff Su/2025-08-27 3 AI Habits So Powerful It Feels Like Cheating/3 AI Habits So Powerful It Feels Like Cheating [31cp_OXKzkI].mp4", false, false, 98, ~U[2025-08-27 14:30:01Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "➡️\u00A0HubSpot’s free AI Agents Playbook: https://clickhubspot.com/f034de\n\nAI tools like #ChatGPT and Gemini are supposed to make us “more productive” but oftentimes the friction of using these tools is just high enough that we default to our old, and less efficient workflows.\n\nIn this video we’ll go through three daily habits that eliminate that friction completely: global keyboard shortcuts that launch AI from anywhere, text expanders that deploy complex prompts instantly, and the prompt multiplier method for high-stakes decisions.\n\nThese techniques work across ALL AI tools (i.e. they’re platform-agnostic) and involves only simple setup steps that take minutes but save hours.\n\n*TIMESTAMPS*\n00:00 AI Habits that Save Me 20+ Hours a Week\n01:20 The Everywhere AI Shortcut\n04:35 Utilize Text Expanders\n07:13 The Prompt Multiplier Method\n09:44 Bonus Tip!\n\n*RESOURCES MENTIONED*\nMy AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=187\nTools: https://www.jeffsu.org/3-ai-habits-that-saves-me-20-hours-a-week\nPrompts: https://jeffsu.notion.site/jeff-su-3-ai-habits-prompts?source=copy_link\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=187\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=187\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai #claude", "3 AI Habits So Powerful It Feels Like Cheating", "31cp_OXKzkI", 1, 650, false, "https://www.youtube.com/watch?v=31cp_OXKzkI", "/downloads/Jeff Su/2025-08-27 3 AI Habits So Powerful It Feels Like Cheating/3 AI Habits So Powerful It Feels Like Cheating [31cp_OXKzkI].mp4", false, ~U[2025-08-27 14:30:01Z]] 16:58:28.278 [debug] QUERY OK source="sources" db=0.3ms idle=8.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.279 [debug] QUERY OK source="media_items" db=0.9ms idle=6.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-12 13:00:35Z], 1] 16:58:28.282 [debug] QUERY OK source="media_items" db=1.7ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🌟 Build Your Command Center in Notion - https://www.pressplay.cc/link/s/F8236D6B\n\nCreate your first AI agent in three simple steps using n8n! This tutorial shows you how to create an automated subscription tracker that processes natural language input and updates Google Sheets automatically.\n\nYou'll learn to configure the agent's brain (chat model and memory), connect tools like Google Sheets, and write system prompts that control agent behavior. Perfect for non-technical users ready to transition from using AI tools to actually building with them.\n\n*TIMESTAMPS*\n00:00 Build Your First AI Agent\n00:29 Refresher on AI Agents\n01:20 Getting Started on n8n\n02:54 Why Bother?\n03:32 Step 1: Building the Brain\n08:21 Step 2: Connecting the Tools\n10:38 Step 3: Activating the Brainstem\n12:21 Testing our AI Agent\n14:56 Beyond the Basics\n\n*RESOURCES MENTIONED*\nOpenAI API Setup: https://platform.openai.com/\nChatGPT System Prompt Template: https://www.jeffsu.org/build-your-first-ai-agent-in-n8n-a-step-by-step-guide\nNotion Command Center System: https://www.pressplay.cc/link/s/F8236D6B\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=186\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=186\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#aiagents #ai #automation", "The AI Agent Tutorial That Should've Been Your First (no code)", "81efbf11-aa9b-46c8-9449-bf3b71ce16ff", false, "GchXMRwuWxE", 1, [], 1018, false, "https://www.youtube.com/watch?v=GchXMRwuWxE", 17, "/downloads/Jeff Su/2025-08-12 The AI Agent Tutorial That Should've Been Your First (no code)/The AI Agent Tutorial That Should've Been Your First (no code) [GchXMRwuWxE].mp4", false, false, 98, ~U[2025-08-12 13:00:35Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "🌟 Build Your Command Center in Notion - https://www.pressplay.cc/link/s/F8236D6B\n\nCreate your first AI agent in three simple steps using n8n! This tutorial shows you how to create an automated subscription tracker that processes natural language input and updates Google Sheets automatically.\n\nYou'll learn to configure the agent's brain (chat model and memory), connect tools like Google Sheets, and write system prompts that control agent behavior. Perfect for non-technical users ready to transition from using AI tools to actually building with them.\n\n*TIMESTAMPS*\n00:00 Build Your First AI Agent\n00:29 Refresher on AI Agents\n01:20 Getting Started on n8n\n02:54 Why Bother?\n03:32 Step 1: Building the Brain\n08:21 Step 2: Connecting the Tools\n10:38 Step 3: Activating the Brainstem\n12:21 Testing our AI Agent\n14:56 Beyond the Basics\n\n*RESOURCES MENTIONED*\nOpenAI API Setup: https://platform.openai.com/\nChatGPT System Prompt Template: https://www.jeffsu.org/build-your-first-ai-agent-in-n8n-a-step-by-step-guide\nNotion Command Center System: https://www.pressplay.cc/link/s/F8236D6B\n\n*BUILD A POWERFUL WORKFLOW*\n🦾 AI Systems Academy - https://systemsacademy.ai/?utm_source=youtube&utm_medium=video&utm_campaign=186\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=186\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#aiagents #ai #automation", "The AI Agent Tutorial That Should've Been Your First (no code)", "GchXMRwuWxE", 1, 1018, false, "https://www.youtube.com/watch?v=GchXMRwuWxE", "/downloads/Jeff Su/2025-08-12 The AI Agent Tutorial That Should've Been Your First (no code)/The AI Agent Tutorial That Should've Been Your First (no code) [GchXMRwuWxE].mp4", false, ~U[2025-08-12 13:00:35Z]] 16:58:28.283 [debug] QUERY OK source="sources" db=0.3ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.284 [debug] QUERY OK source="media_items" db=0.9ms idle=6.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-29 13:00:46Z], 1] 16:58:28.287 [debug] QUERY OK source="media_items" db=1.5ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\n\nAfter 9 years at #Google and interviewing hundreds of non-technical candidates, I'm sharing the insider strategies that actually work; based on real #hiring data and firsthand experience from both sides of the #interview table.\n\nLet’s dive in!\n\n*TIMESTAMPS*\n00:00 How to join Google\n00:12 Strategy #1\n02:13 Strategy #2\n04:01 Strategy #3\n06:22 Strategy #4\n07:29 Strategy #5\n09:12 Strategy #6\n\n*RESOURCES MENTIONED*\nThe\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\nGoogle Ads webinars: https://adsonair.withgoogle.com/\nMy Job Search Playlist: https://www.youtube.com/watch?v=Tt08KmFfIYQ&list=PLo-kPya_Ww2x1PzbqzmPPC5v7fCYhrK4z\nCase Interview Secrets: https://amzn.to/4o4XtUB\nCase in Point: https://amzn.to/3IPkGdm\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "My Brutally Honest Advice About Joining Google (after 9 years)", "4219c5b1-dc35-4542-ada8-fd9a8d0cea88", false, "O_L5M8VojLs", 1, [], 636, false, "https://www.youtube.com/watch?v=O_L5M8VojLs", 18, "/downloads/Jeff Su/2025-07-29 My Brutally Honest Advice About Joining Google (after 9 years)/My Brutally Honest Advice About Joining Google (after 9 years) [O_L5M8VojLs].mp4", false, false, 98, ~U[2025-07-29 13:00:46Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "The Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\n\nAfter 9 years at #Google and interviewing hundreds of non-technical candidates, I'm sharing the insider strategies that actually work; based on real #hiring data and firsthand experience from both sides of the #interview table.\n\nLet’s dive in!\n\n*TIMESTAMPS*\n00:00 How to join Google\n00:12 Strategy #1\n02:13 Strategy #2\n04:01 Strategy #3\n06:22 Strategy #4\n07:29 Strategy #5\n09:12 Strategy #6\n\n*RESOURCES MENTIONED*\nThe\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\nGoogle Ads webinars: https://adsonair.withgoogle.com/\nMy Job Search Playlist: https://www.youtube.com/watch?v=Tt08KmFfIYQ&list=PLo-kPya_Ww2x1PzbqzmPPC5v7fCYhrK4z\nCase Interview Secrets: https://amzn.to/4o4XtUB\nCase in Point: https://amzn.to/3IPkGdm\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=185\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "My Brutally Honest Advice About Joining Google (after 9 years)", "O_L5M8VojLs", 1, 636, false, "https://www.youtube.com/watch?v=O_L5M8VojLs", "/downloads/Jeff Su/2025-07-29 My Brutally Honest Advice About Joining Google (after 9 years)/My Brutally Honest Advice About Joining Google (after 9 years) [O_L5M8VojLs].mp4", false, ~U[2025-07-29 13:00:46Z]] 16:58:28.287 [debug] QUERY OK source="sources" db=0.3ms idle=7.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.289 [debug] QUERY OK source="media_items" db=0.9ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-15 13:00:36Z], 1] 16:58:28.291 [debug] QUERY OK source="media_items" db=1.5ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["➡️\u00A0Coursera Data Analysis course (40% off for 3 months): https://imp.i384100.net/c/2464514/3102764/14726\n\nLearn how to analyze any dataset in minutes using #ChatGPT and the proven DIG framework. This practical guide shows you how to turn ChatGPT into your personal data analyst without any technical skills required.\n\nPerfect for professionals who work with spreadsheets but lack formal data analysis training!\n\n*TIMESTAMPS*\n00:00 ChatGPT for Data Analysis\n00:45 The DIG Data Analysis Framework\n01:49 Step 1: Description\n05:31 Step 2: Introspection\n09:16 Step 3: Goal Setting\n10:55 Bonus Prompt\n\n*RESOURCES MENTIONED*\nDIG Framework prompts: https://jeffsu.notion.site/184-data-analysis-resources\nApple TV+ sample dataset: https://jeffsu.notion.site/184-data-analysis-resources\nhttps://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=184\nChatGPT Pro Tips video: https://youtu.be/p3840QxlYzc\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=184\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dataanalysis", "Master Data Analysis with ChatGPT (in just 12 minutes)", "f9c75a12-2777-4fec-8132-9f97da919e80", false, "FKLr3ft8ea0", 1, [], 714, false, "https://www.youtube.com/watch?v=FKLr3ft8ea0", 19, "/downloads/Jeff Su/2025-07-15 Master Data Analysis with ChatGPT (in just 12 minutes)/Master Data Analysis with ChatGPT (in just 12 minutes) [FKLr3ft8ea0].mp4", false, false, 98, ~U[2025-07-15 13:00:36Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "➡️\u00A0Coursera Data Analysis course (40% off for 3 months): https://imp.i384100.net/c/2464514/3102764/14726\n\nLearn how to analyze any dataset in minutes using #ChatGPT and the proven DIG framework. This practical guide shows you how to turn ChatGPT into your personal data analyst without any technical skills required.\n\nPerfect for professionals who work with spreadsheets but lack formal data analysis training!\n\n*TIMESTAMPS*\n00:00 ChatGPT for Data Analysis\n00:45 The DIG Data Analysis Framework\n01:49 Step 1: Description\n05:31 Step 2: Introspection\n09:16 Step 3: Goal Setting\n10:55 Bonus Prompt\n\n*RESOURCES MENTIONED*\nDIG Framework prompts: https://jeffsu.notion.site/184-data-analysis-resources\nApple TV+ sample dataset: https://jeffsu.notion.site/184-data-analysis-resources\nhttps://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=184\nChatGPT Pro Tips video: https://youtu.be/p3840QxlYzc\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=184\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dataanalysis", "Master Data Analysis with ChatGPT (in just 12 minutes)", "FKLr3ft8ea0", 1, 714, false, "https://www.youtube.com/watch?v=FKLr3ft8ea0", "/downloads/Jeff Su/2025-07-15 Master Data Analysis with ChatGPT (in just 12 minutes)/Master Data Analysis with ChatGPT (in just 12 minutes) [FKLr3ft8ea0].mp4", false, ~U[2025-07-15 13:00:36Z]] 16:58:28.292 [debug] QUERY OK source="sources" db=0.3ms idle=7.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.294 [debug] QUERY OK source="media_items" db=0.9ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-01 13:01:37Z], 1] 16:58:28.301 [debug] QUERY OK source="media_items" db=6.2ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🌟\u00A0Start learning with Coursera today: https://imp.i384100.net/c/2464514/3058290/14726\n\n#ChatGPT releases over 1.1 updates weekly, but most explanations are filled with meaningless jargon. This video cuts through the noise with real-world examples showing exactly when to use reasoning models vs chat models, ChatGPT search vs Google, Deep Research, and Canvas! \n\n*TIMESTAMPS*\n00:00 The most important ChatGPT features\n00:24 Choosing the right ChatGPT model\n03:11 How I learn AI\n04:05 When to use ChatGPT web search\n05:52 How to use ChatGPT Deep Research\n07:45 When to enable Canvas in ChatGPT\n09:09 Pro tips for ChatGPT\n\n*RESOURCES MENTIONED*\n✅\u00A0Deep Research GPT from Reddit - https://www.jeffsu.org/chatgpt-features-that-actually-matter\n🌟 My Notion Command Center - https://www.pressplay.cc/link/s/85ECD9B7\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=183\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "The CORRECT way to use ChatGPT (in 2026)", "15a7347e-9378-41d5-ab18-28f709127760", false, "p3840QxlYzc", 1, [], 586, false, "https://www.youtube.com/watch?v=p3840QxlYzc", 20, "/downloads/Jeff Su/2025-07-01 The CORRECT way to use ChatGPT (in 2026)/The CORRECT way to use ChatGPT (in 2026) [p3840QxlYzc].mp4", false, false, 98, ~U[2025-07-01 13:01:37Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "🌟\u00A0Start learning with Coursera today: https://imp.i384100.net/c/2464514/3058290/14726\n\n#ChatGPT releases over 1.1 updates weekly, but most explanations are filled with meaningless jargon. This video cuts through the noise with real-world examples showing exactly when to use reasoning models vs chat models, ChatGPT search vs Google, Deep Research, and Canvas! \n\n*TIMESTAMPS*\n00:00 The most important ChatGPT features\n00:24 Choosing the right ChatGPT model\n03:11 How I learn AI\n04:05 When to use ChatGPT web search\n05:52 How to use ChatGPT Deep Research\n07:45 When to enable Canvas in ChatGPT\n09:09 Pro tips for ChatGPT\n\n*RESOURCES MENTIONED*\n✅\u00A0Deep Research GPT from Reddit - https://www.jeffsu.org/chatgpt-features-that-actually-matter\n🌟 My Notion Command Center - https://www.pressplay.cc/link/s/85ECD9B7\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=183\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#ai", "The CORRECT way to use ChatGPT (in 2026)", "p3840QxlYzc", 1, 586, false, "https://www.youtube.com/watch?v=p3840QxlYzc", "/downloads/Jeff Su/2025-07-01 The CORRECT way to use ChatGPT (in 2026)/The CORRECT way to use ChatGPT (in 2026) [p3840QxlYzc].mp4", false, ~U[2025-07-01 13:01:37Z]] 16:58:28.302 [debug] QUERY OK source="sources" db=0.3ms queue=0.3ms idle=12.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.303 [debug] QUERY OK source="media_items" db=0.9ms idle=11.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-17 13:01:24Z], 1] 16:58:28.306 [debug] QUERY OK source="media_items" db=1.7ms idle=11.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["⚡️️ Start designing today with Gamma for free\u00A0➡️\u00A0https://gamma.app\n\nMost AI presentation tools excel at creating beautiful slides but miss the critical part: uncovering insights that actually matter.\n\nIn this video, I demonstrate how to bridge the gap between insight generation and presentation design by recreating an actual #Google sales pitch deck. You'll learn a proven 3-step process using ChatGPT's Deep Research for market analysis, SCQA framework for storytelling structure, and #Gamma for professional slide design.\n\n*TIMESTAMPS*\n00:00 The Problem with AI Presentation Tools\n00:34 Presentation Overview\n01:02 Step 1\n03:13 Step 2\n04:49 Step 3\n11:11 Pro tips for Gamma\n12:25 Key Takeaways\n\n*RESOURCES MENTIONED*\nMy Deep Research prompt template: https://www.jeffsu.org/how-to-create-presentations-with-ai-the-right-way/\nSCQA framework prompt template: https://www.jeffsu.org/how-to-create-presentations-with-ai-the-right-way/\nOriginal Reddit post: https://www.reddit.com/r/ChatGPTPromptGenius/comments/1jbyp7a/chatgpt_prompt_of_the_day_the_deep_research_gpt/\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=182\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#chatgpt", "Why 90% of AI Presentations Fail (do this instead)", "c312929e-4434-429f-8cc5-868ae307be95", false, "mi2vCsP1oKY", 1, [], 796, false, "https://www.youtube.com/watch?v=mi2vCsP1oKY", 21, "/downloads/Jeff Su/2025-06-17 Why 90% of AI Presentations Fail (do this instead)/Why 90% of AI Presentations Fail (do this instead) [mi2vCsP1oKY].mp4", false, false, 98, ~U[2025-06-17 13:01:24Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "⚡️️ Start designing today with Gamma for free\u00A0➡️\u00A0https://gamma.app\n\nMost AI presentation tools excel at creating beautiful slides but miss the critical part: uncovering insights that actually matter.\n\nIn this video, I demonstrate how to bridge the gap between insight generation and presentation design by recreating an actual #Google sales pitch deck. You'll learn a proven 3-step process using ChatGPT's Deep Research for market analysis, SCQA framework for storytelling structure, and #Gamma for professional slide design.\n\n*TIMESTAMPS*\n00:00 The Problem with AI Presentation Tools\n00:34 Presentation Overview\n01:02 Step 1\n03:13 Step 2\n04:49 Step 3\n11:11 Pro tips for Gamma\n12:25 Key Takeaways\n\n*RESOURCES MENTIONED*\nMy Deep Research prompt template: https://www.jeffsu.org/how-to-create-presentations-with-ai-the-right-way/\nSCQA framework prompt template: https://www.jeffsu.org/how-to-create-presentations-with-ai-the-right-way/\nOriginal Reddit post: https://www.reddit.com/r/ChatGPTPromptGenius/comments/1jbyp7a/chatgpt_prompt_of_the_day_the_deep_research_gpt/\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=182\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/DE1C4C50\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#chatgpt", "Why 90% of AI Presentations Fail (do this instead)", "mi2vCsP1oKY", 1, 796, false, "https://www.youtube.com/watch?v=mi2vCsP1oKY", "/downloads/Jeff Su/2025-06-17 Why 90% of AI Presentations Fail (do this instead)/Why 90% of AI Presentations Fail (do this instead) [mi2vCsP1oKY].mp4", false, ~U[2025-06-17 13:01:24Z]] 16:58:28.306 [debug] QUERY OK source="sources" db=0.3ms idle=12.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.308 [debug] QUERY OK source="media_items" db=1.1ms idle=6.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-03 13:00:23Z], 1] 16:58:28.310 [debug] QUERY OK source="media_items" db=1.4ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Peace out #Google, it’s been fun 😁\n\n@Google \n\n*TIMESTAMPS*\n00:00 My Last Day at Google\n00:24 My first three months at Google\n01:30 Most important lesson from my time at Google\n02:42 Why I left (reason #1)\n04:35 Why I left (reason #2)\n05:14 Why I left (reason #3)\n05:41 What’s next\n06:47 Thank You Google\n\n*RESOURCES MENTIONED*\nOdyssey Plan Exercise: https://youtu.be/FYU-4NOnLDY?t=331\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=181\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=181\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/EE8FB764\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dayinthelife", "My Last Day at Google (after 9 years)", "1b850032-3fa6-4595-bff2-1127a51633f8", false, "BVT5EZkb24Q", 1, [], 475, false, "https://www.youtube.com/watch?v=BVT5EZkb24Q", 22, "/downloads/Jeff Su/2025-06-03 My Last Day at Google (after 9 years)/My Last Day at Google (after 9 years) [BVT5EZkb24Q].mp4", false, false, 98, ~U[2025-06-03 13:00:23Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "Peace out #Google, it’s been fun 😁\n\n@Google \n\n*TIMESTAMPS*\n00:00 My Last Day at Google\n00:24 My first three months at Google\n01:30 Most important lesson from my time at Google\n02:42 Why I left (reason #1)\n04:35 Why I left (reason #2)\n05:14 Why I left (reason #3)\n05:41 What’s next\n06:47 Thank You Google\n\n*RESOURCES MENTIONED*\nOdyssey Plan Exercise: https://youtu.be/FYU-4NOnLDY?t=331\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=181\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=181\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/EE8FB764\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dayinthelife", "My Last Day at Google (after 9 years)", "BVT5EZkb24Q", 1, 475, false, "https://www.youtube.com/watch?v=BVT5EZkb24Q", "/downloads/Jeff Su/2025-06-03 My Last Day at Google (after 9 years)/My Last Day at Google (after 9 years) [BVT5EZkb24Q].mp4", false, ~U[2025-06-03 13:00:23Z]] 16:58:28.311 [debug] QUERY OK source="sources" db=0.3ms idle=7.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.312 [debug] QUERY OK source="media_items" db=0.9ms idle=5.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-20 13:01:04Z], 1] 16:58:28.315 [debug] QUERY OK source="media_items" db=1.7ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✍️ My #Notion Command Center - https://www.pressplay.cc/link/s/92635AE6\n\nThanks to this single Notion page, I manage my full-time job, content creation, and everything else with total peace of mind. After years of tweaking, I've finally built a system I trust completely.\n\nInstead of boring you with every detail, I'll show you five key benefits of my Daily/Weekly Planner in Notion: no more planning paralysis, frictionless action-taking, intuitive structure, a custom-fit system, and information that finds you when you need it.\n\n*TIMESTAMPS*\n00:00 Jeff’s Command Center in Notion\n00:25 No More Planning Paralysis in Notion\n02:40 Frictionless Action-Taking\n05:11 Intuitive Structure\n07:02 Custom-Fit System\n09:11 Information that Finds You\n10:51 Build Your Command Center in Notion\n\n*RESOURCES MENTIONED*\nFree Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=mywebsite&utm_medium=post&utm_campaign=181\nSave to Notion Tutorial: https://youtu.be/diK9dZulkAs\nEaslo's Book Tracker: https://www.easlo.co/templates/book-tracker\n\n*BUILD A POWERFUL WORKFLOW*\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/92635AE6\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dailyplayer #lifeOS", "How I Organize My Life | Notion Tour 2026", "9857f599-dc22-4e29-8448-c57f2e06feeb", false, "_RTqbo5ZZ2k", 1, [], 686, false, "https://www.youtube.com/watch?v=_RTqbo5ZZ2k", 23, "/downloads/Jeff Su/2025-05-20 How I Organize My Life | Notion Tour 2026/How I Organize My Life | Notion Tour 2026 [_RTqbo5ZZ2k].mp4", false, false, 98, ~U[2025-05-20 13:01:04Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "✍️ My #Notion Command Center - https://www.pressplay.cc/link/s/92635AE6\n\nThanks to this single Notion page, I manage my full-time job, content creation, and everything else with total peace of mind. After years of tweaking, I've finally built a system I trust completely.\n\nInstead of boring you with every detail, I'll show you five key benefits of my Daily/Weekly Planner in Notion: no more planning paralysis, frictionless action-taking, intuitive structure, a custom-fit system, and information that finds you when you need it.\n\n*TIMESTAMPS*\n00:00 Jeff’s Command Center in Notion\n00:25 No More Planning Paralysis in Notion\n02:40 Frictionless Action-Taking\n05:11 Intuitive Structure\n07:02 Custom-Fit System\n09:11 Information that Finds You\n10:51 Build Your Command Center in Notion\n\n*RESOURCES MENTIONED*\nFree Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=mywebsite&utm_medium=post&utm_campaign=181\nSave to Notion Tutorial: https://youtu.be/diK9dZulkAs\nEaslo's Book Tracker: https://www.easlo.co/templates/book-tracker\n\n*BUILD A POWERFUL WORKFLOW*\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/92635AE6\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#dailyplayer #lifeOS", "How I Organize My Life | Notion Tour 2026", "_RTqbo5ZZ2k", 1, 686, false, "https://www.youtube.com/watch?v=_RTqbo5ZZ2k", "/downloads/Jeff Su/2025-05-20 How I Organize My Life | Notion Tour 2026/How I Organize My Life | Notion Tour 2026 [_RTqbo5ZZ2k].mp4", false, ~U[2025-05-20 13:01:04Z]] 16:58:28.316 [debug] QUERY OK source="sources" db=0.3ms idle=7.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.317 [debug] QUERY OK source="media_items" db=0.9ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-06 13:00:50Z], 1] 16:58:28.319 [debug] QUERY OK source="media_items" db=1.6ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=179\n\nIn this video you’ll learn practical #Gemini skills that won't become obsolete tomorrow. \n\nWe cover essential setup tips, when to use Flash vs Pro models, workspace integrations that save hours weekly, and how to leverage Gemini's massive context window.\n\nDiscover how to transform PDFs into interactive games, use AI formulas in Sheets, and integrate Gemini with Gmail, Docs and Drive for maximum productivity!\n\n@Google \n\n*TIMESTAMPS*\n00:00 Full Google Gemini Tutorial\n00:12 Setup Tips for Google Gemini\n00:51 My Favorite Gemini Workflow\n02:46 Choosing the Correct Gemini Model\n05:21 Transform PDFs into Games\n06:22 Productivity Tips for Google Gemini\n09:54 Gemini’s Massive Context Window\n10:35 Google Gemini’s Biggest Weakness\n\n*RESOURCES MENTIONED*\nInteractive game prompt template: https://www.jeffsu.org/master-google-gemini\nPhilipp Humm’s storytelling video: https://youtu.be/hNuAv-42jzY\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=179\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=179\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/EE8FB764\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#googlegemini #ai", "Master 85% of Google Gemini in 12 Minutes", "7bfe357b-ea08-4cae-b04a-93ab9a850f66", false, "Uy6LcpyGj7w", 1, [], 710, false, "https://www.youtube.com/watch?v=Uy6LcpyGj7w", 24, "/downloads/Jeff Su/2025-05-06 Master 85% of Google Gemini in 12 Minutes/Master 85% of Google Gemini in 12 Minutes [Uy6LcpyGj7w].mp4", false, false, 98, ~U[2025-05-06 13:00:50Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=179\n\nIn this video you’ll learn practical #Gemini skills that won't become obsolete tomorrow. \n\nWe cover essential setup tips, when to use Flash vs Pro models, workspace integrations that save hours weekly, and how to leverage Gemini's massive context window.\n\nDiscover how to transform PDFs into interactive games, use AI formulas in Sheets, and integrate Gemini with Gmail, Docs and Drive for maximum productivity!\n\n@Google \n\n*TIMESTAMPS*\n00:00 Full Google Gemini Tutorial\n00:12 Setup Tips for Google Gemini\n00:51 My Favorite Gemini Workflow\n02:46 Choosing the Correct Gemini Model\n05:21 Transform PDFs into Games\n06:22 Productivity Tips for Google Gemini\n09:54 Gemini’s Massive Context Window\n10:35 Google Gemini’s Biggest Weakness\n\n*RESOURCES MENTIONED*\nInteractive game prompt template: https://www.jeffsu.org/master-google-gemini\nPhilipp Humm’s storytelling video: https://youtu.be/hNuAv-42jzY\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=179\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The\u00A0Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=179\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/EE8FB764\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n#googlegemini #ai", "Master 85% of Google Gemini in 12 Minutes", "Uy6LcpyGj7w", 1, 710, false, "https://www.youtube.com/watch?v=Uy6LcpyGj7w", "/downloads/Jeff Su/2025-05-06 Master 85% of Google Gemini in 12 Minutes/Master 85% of Google Gemini in 12 Minutes [Uy6LcpyGj7w].mp4", false, ~U[2025-05-06 13:00:50Z]] 16:58:28.320 [debug] QUERY OK source="sources" db=0.3ms idle=7.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.322 [debug] QUERY OK source="media_items" db=0.8ms idle=6.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-22 13:00:28Z], 1] 16:58:28.324 [debug] QUERY OK source="media_items" db=1.7ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📬\u00A0My insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=178\n\nCan’t believe I’ve been at @Google for 1/4 of my life already 😅\n\nFollow me through my day as a #ProductMarketingManager where I share what Product Marketing Managers actually do.\n\nI'll spill details on my actual salary, show you the free food situation, and share my best project management tricks. Plus, I've got some solid interview tips if you're looking to join the #tech industry no technical background.\n\nNothing fancy, just an honest look at my Google life! 😁\n\n*TIMESTAMPS*\n00:00 After 8 Years at Google\n00:46 Office in the Morning\n01:06 My Job as a PMM\n04:14 Lunch in the Google Cafeteria\n04:36 Q&A 1\n05:01 Q&A 2\n05:07 Q&A 3\n05:30 Q&A 4\n06:12 Q&A 5\n06:19 Q&A 6\n06:32 Project Management Tips\n08:09 Interview Tips\n10:45 Heading Home!\n\n*RESOURCES MENTIONED*\nAccess my templates for free: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=178\nGoogle Interview Warmup Tool: https://grow.google/certificates/interview-warmup/\nCase Interview Secrets: https://amzn.to/4jjl15h\nCase In Point: https://amzn.to/3RraCrT\nInterviewing at Google Blogpost: https://www.google.com/about/careers/applications/interview-tips\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=178\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/68E76121\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "A Day in My Life at Google (8 years in)", "dc3f60fe-bcc3-48f4-bff0-9faba7dcd772", false, "FypvQrwvENk", 1, [], 666, false, "https://www.youtube.com/watch?v=FypvQrwvENk", 25, "/downloads/Jeff Su/2025-04-22 A Day in My Life at Google (8 years in)/A Day in My Life at Google (8 years in) [FypvQrwvENk].mp4", false, false, 98, ~U[2025-04-22 13:00:28Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "📬\u00A0My insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=178\n\nCan’t believe I’ve been at @Google for 1/4 of my life already 😅\n\nFollow me through my day as a #ProductMarketingManager where I share what Product Marketing Managers actually do.\n\nI'll spill details on my actual salary, show you the free food situation, and share my best project management tricks. Plus, I've got some solid interview tips if you're looking to join the #tech industry no technical background.\n\nNothing fancy, just an honest look at my Google life! 😁\n\n*TIMESTAMPS*\n00:00 After 8 Years at Google\n00:46 Office in the Morning\n01:06 My Job as a PMM\n04:14 Lunch in the Google Cafeteria\n04:36 Q&A 1\n05:01 Q&A 2\n05:07 Q&A 3\n05:30 Q&A 4\n06:12 Q&A 5\n06:19 Q&A 6\n06:32 Project Management Tips\n08:09 Interview Tips\n10:45 Heading Home!\n\n*RESOURCES MENTIONED*\nAccess my templates for free: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=178\nGoogle Interview Warmup Tool: https://grow.google/certificates/interview-warmup/\nCase Interview Secrets: https://amzn.to/4jjl15h\nCase In Point: https://amzn.to/3RraCrT\nInterviewing at Google Blogpost: https://www.google.com/about/careers/applications/interview-tips\n\n*BUILD A POWERFUL WORKFLOW*\n📈\u00A0The Workspace Academy - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=178\n✍️ My Notion Command Center - https://www.pressplay.cc/link/s/68E76121\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/", "A Day in My Life at Google (8 years in)", "FypvQrwvENk", 1, 666, false, "https://www.youtube.com/watch?v=FypvQrwvENk", "/downloads/Jeff Su/2025-04-22 A Day in My Life at Google (8 years in)/A Day in My Life at Google (8 years in) [FypvQrwvENk].mp4", false, ~U[2025-04-22 13:00:28Z]] 16:58:28.326 [debug] QUERY OK source="sources" db=0.9ms 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" = ?) [1] 16:58:28.327 [debug] QUERY OK source="media_items" db=0.9ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-08 13:00:28Z], 1] 16:58:28.330 [debug] QUERY OK source="media_items" db=1.6ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=177\n\nUnderstanding AI Agents doesn't require a technical background. This video breaks down the evolution from basic LLMs like #ChatGPT to AI Workflows and finally to true #AI Agents through practical, real-world examples.\n\nLearn the key differences between these technologies and discover how concepts like RAG and ReAct actually work in simple terms. Perfect for regular AI users who want to understand how these emerging technologies will impact their daily lives.\n\n*TIMESTAMPS*\n00:00 AI vs. AI Agents\n01:04 Level 1: LLMs\n02:17 Level 2: AI Workflows\n05:26 Level 3: AI Agents\n07:48 Real-world Example\n09:10 Summary\n\n*RESOURCES MENTIONED*\nHelena Liu's AI Workflow Tutorial: https://youtu.be/H0YRniHh2tg\nAndrew Ng's AI Agent Demo: https://youtu.be/KrRD7r7y7NY\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#aiagents", "AI Agents, Clearly Explained", "7a6b0953-2327-4aff-91b9-3806fb5ece38", false, "FwOTs4UxQS4", 1, [], 609, false, "https://www.youtube.com/watch?v=FwOTs4UxQS4", 26, "/downloads/Jeff Su/2025-04-08 AI Agents, Clearly Explained/AI Agents, Clearly Explained [FwOTs4UxQS4].mp4", false, false, 98, ~U[2025-04-08 13:00:28Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "My AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=177\n\nUnderstanding AI Agents doesn't require a technical background. This video breaks down the evolution from basic LLMs like #ChatGPT to AI Workflows and finally to true #AI Agents through practical, real-world examples.\n\nLearn the key differences between these technologies and discover how concepts like RAG and ReAct actually work in simple terms. Perfect for regular AI users who want to understand how these emerging technologies will impact their daily lives.\n\n*TIMESTAMPS*\n00:00 AI vs. AI Agents\n01:04 Level 1: LLMs\n02:17 Level 2: AI Workflows\n05:26 Level 3: AI Agents\n07:48 Real-world Example\n09:10 Summary\n\n*RESOURCES MENTIONED*\nHelena Liu's AI Workflow Tutorial: https://youtu.be/H0YRniHh2tg\nAndrew Ng's AI Agent Demo: https://youtu.be/KrRD7r7y7NY\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#aiagents", "AI Agents, Clearly Explained", "FwOTs4UxQS4", 1, 609, false, "https://www.youtube.com/watch?v=FwOTs4UxQS4", "/downloads/Jeff Su/2025-04-08 AI Agents, Clearly Explained/AI Agents, Clearly Explained [FwOTs4UxQS4].mp4", false, ~U[2025-04-08 13:00:28Z]] 16:58:28.331 [debug] QUERY OK source="sources" db=0.3ms idle=8.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.332 [debug] QUERY OK source="media_items" db=0.9ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-18 13:00:36Z], 1] 16:58:28.334 [debug] QUERY OK source="media_items" db=1.6ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔗\u00A0Duplicate my #Prompts Database: https://www.jeffsu.org/how-to-build-a-prompts-database-in-notion?utm_source=youtube&utm_medium=video&utm_campaign=176\n\nDiscover how to build a simple prompts database in #Notion that saves hours weekly and creates a sustainable #system for AI integration. I'll show you step-by-step how to create a system that makes prompting automatic in your daily work, even with zero technical background.\n\nLearn to capture useful prompts without disrupting your workflow, organize them effectively with tags, and access them instantly when needed.\n\n@Notion \n\n*TIMESTAMPS*\n00:00 The Best AI Users Rely on Systems\n00:37 How the Prompts Database works\n01:24 Getting Started\n05:03 Prompts Database Properties\n06:29 Adding Views to Prompts Database\n12:19 Real-world Examples\n\n*RESOURCES MENTIONED*\nBuild Your Command Center in Notion: https://www.pressplay.cc/link/s/2E08937A\nDuplicate my #Prompts Database: https://www.jeffsu.org/how-to-build-a-prompts-database-in-notion?utm_source=youtube&utm_medium=video&utm_campaign=176\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "How to Build a Prompts Database in Notion (template included)!", "fc342ee9-4c72-4df2-bd21-ad0b7c445c64", false, "Oo_GGWV9Hys", 1, [], 965, false, "https://www.youtube.com/watch?v=Oo_GGWV9Hys", 27, "/downloads/Jeff Su/2025-03-18 How to Build a Prompts Database in Notion (template included)!/How to Build a Prompts Database in Notion (template included)! [Oo_GGWV9Hys].mp4", false, false, 98, ~U[2025-03-18 13:00:36Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "🔗\u00A0Duplicate my #Prompts Database: https://www.jeffsu.org/how-to-build-a-prompts-database-in-notion?utm_source=youtube&utm_medium=video&utm_campaign=176\n\nDiscover how to build a simple prompts database in #Notion that saves hours weekly and creates a sustainable #system for AI integration. I'll show you step-by-step how to create a system that makes prompting automatic in your daily work, even with zero technical background.\n\nLearn to capture useful prompts without disrupting your workflow, organize them effectively with tags, and access them instantly when needed.\n\n@Notion \n\n*TIMESTAMPS*\n00:00 The Best AI Users Rely on Systems\n00:37 How the Prompts Database works\n01:24 Getting Started\n05:03 Prompts Database Properties\n06:29 Adding Views to Prompts Database\n12:19 Real-world Examples\n\n*RESOURCES MENTIONED*\nBuild Your Command Center in Notion: https://www.pressplay.cc/link/s/2E08937A\nDuplicate my #Prompts Database: https://www.jeffsu.org/how-to-build-a-prompts-database-in-notion?utm_source=youtube&utm_medium=video&utm_campaign=176\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "How to Build a Prompts Database in Notion (template included)!", "Oo_GGWV9Hys", 1, 965, false, "https://www.youtube.com/watch?v=Oo_GGWV9Hys", "/downloads/Jeff Su/2025-03-18 How to Build a Prompts Database in Notion (template included)!/How to Build a Prompts Database in Notion (template included)! [Oo_GGWV9Hys].mp4", false, ~U[2025-03-18 13:00:36Z]] 16:58:28.335 [debug] QUERY OK source="sources" db=0.3ms idle=7.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.337 [debug] QUERY OK source="media_items" db=0.9ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-25 17:00:23Z], 1] 16:58:28.350 [debug] QUERY OK source="media_items" db=12.1ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=175\n\nLearn how to maximize #Google Tasks' minimal, distraction-free design for seamless task management. Perfect for Google Workspace users who want frictionless task capture and those seeking clean, straightforward task organization.\n\n*TIMESTAMPS*\n00:00 Google Tasks vs. Todoist vs. Ticktick\n00:28 Google Tasks Standalone Interface\n01:17 Add Tasks from Gmail\n02:47 Add Tasks from Google Chat\n04:07 Tasks x Calendar Workflow\n05:02 Google Tasks Sidebar\n06:12 Google Tasks’ Mobile Workflow\n06:37 Create Tasks from Google Gemini\n07:35 Bonus Tip\n\n*RESOURCES MENTIONED*\nStandalone Google Tasks URL: http://tasks.google.com/embed/list/~default?origin=https://mail.google.com\nThe Workspace Academy: https://academy.jeffsu.org/workspace-academy?utm_source=mywebsite&utm_medium=post&utm_campaign=175\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#googletasks #productivity", "Google Tasks: Top 10 Tips for Getting Things Done!", "dec75a79-fd89-4bc8-8c1b-12357b0d0eb0", false, "ONa85JLNahw", 1, [], 493, false, "https://www.youtube.com/watch?v=ONa85JLNahw", 28, "/downloads/Jeff Su/2025-02-25 Google Tasks: Top 10 Tips for Getting Things Done!/Google Tasks: Top 10 Tips for Getting Things Done! [ONa85JLNahw].mp4", false, false, 98, ~U[2025-02-25 17:00:23Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "My insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=175\n\nLearn how to maximize #Google Tasks' minimal, distraction-free design for seamless task management. Perfect for Google Workspace users who want frictionless task capture and those seeking clean, straightforward task organization.\n\n*TIMESTAMPS*\n00:00 Google Tasks vs. Todoist vs. Ticktick\n00:28 Google Tasks Standalone Interface\n01:17 Add Tasks from Gmail\n02:47 Add Tasks from Google Chat\n04:07 Tasks x Calendar Workflow\n05:02 Google Tasks Sidebar\n06:12 Google Tasks’ Mobile Workflow\n06:37 Create Tasks from Google Gemini\n07:35 Bonus Tip\n\n*RESOURCES MENTIONED*\nStandalone Google Tasks URL: http://tasks.google.com/embed/list/~default?origin=https://mail.google.com\nThe Workspace Academy: https://academy.jeffsu.org/workspace-academy?utm_source=mywebsite&utm_medium=post&utm_campaign=175\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#googletasks #productivity", "Google Tasks: Top 10 Tips for Getting Things Done!", "ONa85JLNahw", 1, 493, false, "https://www.youtube.com/watch?v=ONa85JLNahw", "/downloads/Jeff Su/2025-02-25 Google Tasks: Top 10 Tips for Getting Things Done!/Google Tasks: Top 10 Tips for Getting Things Done! [ONa85JLNahw].mp4", false, ~U[2025-02-25 17:00:23Z]] 16:58:28.351 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.352 [debug] QUERY OK source="media_items" db=0.8ms idle=16.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-11 13:00:41Z], 1] 16:58:28.354 [debug] QUERY OK source="media_items" db=1.6ms idle=17.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Claude: https://claude.ai/referral/NWuVXWV9ww\n\n➡️\u00A0My free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=173\n\nLearn how #Claude AI handles complex tasks differently from #ChatGPT and Google #Gemini.\n\nIn this video we cover Claude's most powerful features: Projects for managing multi-level context, Artifacts for handling complex outputs, interactive dashboards for visualizing dense information, and data analysis capabilities for deriving business insights from unstructured data.\n\n*TIMESTAMPS*\n00:00 Claude compared to ChatGPT and Gemini\n00:23 Optimize Your Claude Settings\n01:27 Artifacts Feature in Claude\n02:43 Native Screenshot Feature\n03:47 Writing Styles\n04:46 Claude Projects\n07:19 Interactive Dashboards\n09:27 Data Analytics and Visualization\n11:57 Quick Recap\n\n*RESOURCES MENTIONED*\nClaude: https://claude.ai/referral/NWuVXWV9ww\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=173\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "I Switched 50% of My AI Work to Claude, Here's Why", "4ddabd2c-8f59-4333-8d42-d213f4807178", false, "RudrWy9uPZE", 1, [], 764, false, "https://www.youtube.com/watch?v=RudrWy9uPZE", 29, "/downloads/Jeff Su/2025-02-11 I Switched 50% of My AI Work to Claude, Here's Why/I Switched 50% of My AI Work to Claude, Here's Why [RudrWy9uPZE].mp4", false, false, 98, ~U[2025-02-11 13:00:41Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "Claude: https://claude.ai/referral/NWuVXWV9ww\n\n➡️\u00A0My free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=173\n\nLearn how #Claude AI handles complex tasks differently from #ChatGPT and Google #Gemini.\n\nIn this video we cover Claude's most powerful features: Projects for managing multi-level context, Artifacts for handling complex outputs, interactive dashboards for visualizing dense information, and data analysis capabilities for deriving business insights from unstructured data.\n\n*TIMESTAMPS*\n00:00 Claude compared to ChatGPT and Gemini\n00:23 Optimize Your Claude Settings\n01:27 Artifacts Feature in Claude\n02:43 Native Screenshot Feature\n03:47 Writing Styles\n04:46 Claude Projects\n07:19 Interactive Dashboards\n09:27 Data Analytics and Visualization\n11:57 Quick Recap\n\n*RESOURCES MENTIONED*\nClaude: https://claude.ai/referral/NWuVXWV9ww\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=173\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "I Switched 50% of My AI Work to Claude, Here's Why", "RudrWy9uPZE", 1, 764, false, "https://www.youtube.com/watch?v=RudrWy9uPZE", "/downloads/Jeff Su/2025-02-11 I Switched 50% of My AI Work to Claude, Here's Why/I Switched 50% of My AI Work to Claude, Here's Why [RudrWy9uPZE].mp4", false, ~U[2025-02-11 13:00:41Z]] 16:58:28.355 [debug] QUERY OK source="sources" db=0.5ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.357 [debug] QUERY OK source="media_items" db=0.9ms idle=6.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-03 13:01:20Z], 1] 16:58:28.359 [debug] QUERY OK source="media_items" db=1.6ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔗\u00A0Link to the presented Notion page: https://www.jeffsu.org/deepseek-what-actually-matters-for-the-everyday-user?utm_source=youtube&utm_medium=video&utm_campaign=174\n\nA no-nonsense breakdown of DeepSeek's recent AI developments, clearing up common misconceptions and explaining what actually matters for everyday AI users.\n\nLearn about DeepSeek's true development costs, its relationship with OpenAI's models, data privacy concerns, and practical implications for both free and premium #AI tool users. Get clarity on #DeepSeek R1's capabilities compared to #ChatGPT, and understand how to safely access advanced AI features without compromising your data.\n\n*TIMESTAMPS*\n00:00 DeepSeek hype and misinformation\n00:28 Myth #1\n01:08 Myth #2\n02:22 Myth #3\n03:51 Myth #4\n04:57 Myth #5\n05:51 Myth #6\n06:52 Myth #7\n07:37 Myth #8\n08:13 Myth #9\n09:43 Myth #10\n10:41 Implication #1\n11:05 Implication #2\n11:40 Implication #3\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=174\nMy AI toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=174\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "DeepSeek: What Actually Matters (for the everyday user)", "b6e3f6ca-c481-4c20-8f97-b3a0b3661031", false, "wBi8IDngmiE", 1, [], 803, false, "https://www.youtube.com/watch?v=wBi8IDngmiE", 30, "/downloads/Jeff Su/2025-02-03 DeepSeek: What Actually Matters (for the everyday user)/DeepSeek: What Actually Matters (for the everyday user) [wBi8IDngmiE].mp4", false, false, 98, ~U[2025-02-03 13:01:20Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "🔗\u00A0Link to the presented Notion page: https://www.jeffsu.org/deepseek-what-actually-matters-for-the-everyday-user?utm_source=youtube&utm_medium=video&utm_campaign=174\n\nA no-nonsense breakdown of DeepSeek's recent AI developments, clearing up common misconceptions and explaining what actually matters for everyday AI users.\n\nLearn about DeepSeek's true development costs, its relationship with OpenAI's models, data privacy concerns, and practical implications for both free and premium #AI tool users. Get clarity on #DeepSeek R1's capabilities compared to #ChatGPT, and understand how to safely access advanced AI features without compromising your data.\n\n*TIMESTAMPS*\n00:00 DeepSeek hype and misinformation\n00:28 Myth #1\n01:08 Myth #2\n02:22 Myth #3\n03:51 Myth #4\n04:57 Myth #5\n05:51 Myth #6\n06:52 Myth #7\n07:37 Myth #8\n08:13 Myth #9\n09:43 Myth #10\n10:41 Implication #1\n11:05 Implication #2\n11:40 Implication #3\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=174\nMy AI toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=174\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "DeepSeek: What Actually Matters (for the everyday user)", "wBi8IDngmiE", 1, 803, false, "https://www.youtube.com/watch?v=wBi8IDngmiE", "/downloads/Jeff Su/2025-02-03 DeepSeek: What Actually Matters (for the everyday user)/DeepSeek: What Actually Matters (for the everyday user) [wBi8IDngmiE].mp4", false, ~U[2025-02-03 13:01:20Z]] 16:58:28.360 [debug] QUERY OK source="sources" db=0.7ms idle=7.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.361 [debug] QUERY OK source="media_items" db=0.8ms idle=6.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-21 13:01:05Z], 1] 16:58:28.363 [debug] QUERY OK source="media_items" db=1.5ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯\u00A0Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=172\n\nFeeling overwhelmed by all the #AI noise?\n\nThis video breaks down three key strategies to become AI-native in 2025: building a focused \"Minimum Viable Toolkit\" instead of chasing every new tool, implementing friction-free prompt #workflows, and creating sustainable learning systems to stay current with AI developments. Perfect for non-technical professionals looking to effectively integrate AI into their daily work.\n\n*TIMESTAMPS*\n00:00 I feel overwhelmed by AI\n00:37 The problem with learning AI\n01:20 Challenge 1: AI Tools Paralysis\n04:40 Challenge 2: Death by Prompts\n07:18 Challenge 3: Update Suffocation\n09:34 Recap of 3 Strategies\n\n*RESOURCES MENTIONED*\nAI Action Plan Doc: https://docs.google.com/document/d/1fs7hq12UqZHk7uSq6yN9x0vISouroAmV_F_Ln3Dm_R4/copy\nMy AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=172\nMy Perplexity Tutorial: https://youtu.be/YoWdogtZRw8\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "You're Not Behind: Become AI-Native (without the overwhelm)", "334d0592-a014-422a-be9e-05dff4b6f241", false, "j63bBK_ct-M", 1, [], 611, false, "https://www.youtube.com/watch?v=j63bBK_ct-M", 31, "/downloads/Jeff Su/2025-01-21 You're Not Behind: Become AI-Native (without the overwhelm)/You're Not Behind: Become AI-Native (without the overwhelm) [j63bBK_ct-M].mp4", false, false, 98, ~U[2025-01-21 13:01:05Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "🎯\u00A0Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=172\n\nFeeling overwhelmed by all the #AI noise?\n\nThis video breaks down three key strategies to become AI-native in 2025: building a focused \"Minimum Viable Toolkit\" instead of chasing every new tool, implementing friction-free prompt #workflows, and creating sustainable learning systems to stay current with AI developments. Perfect for non-technical professionals looking to effectively integrate AI into their daily work.\n\n*TIMESTAMPS*\n00:00 I feel overwhelmed by AI\n00:37 The problem with learning AI\n01:20 Challenge 1: AI Tools Paralysis\n04:40 Challenge 2: Death by Prompts\n07:18 Challenge 3: Update Suffocation\n09:34 Recap of 3 Strategies\n\n*RESOURCES MENTIONED*\nAI Action Plan Doc: https://docs.google.com/document/d/1fs7hq12UqZHk7uSq6yN9x0vISouroAmV_F_Ln3Dm_R4/copy\nMy AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=172\nMy Perplexity Tutorial: https://youtu.be/YoWdogtZRw8\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "You're Not Behind: Become AI-Native (without the overwhelm)", "j63bBK_ct-M", 1, 611, false, "https://www.youtube.com/watch?v=j63bBK_ct-M", "/downloads/Jeff Su/2025-01-21 You're Not Behind: Become AI-Native (without the overwhelm)/You're Not Behind: Become AI-Native (without the overwhelm) [j63bBK_ct-M].mp4", false, ~U[2025-01-21 13:01:05Z]] 16:58:28.364 [debug] QUERY OK source="sources" db=0.3ms idle=7.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.365 [debug] QUERY OK source="media_items" db=0.8ms idle=5.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-07 13:00:52Z], 1] 16:58:28.368 [debug] QUERY OK source="media_items" db=1.5ms idle=5.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯\u00A0My free Job Search Toolkit - https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=171\n\nMaster the art of salary #negotiation with evidence-based strategies backed by LinkedIn's comprehensive report of 93,000+ data points.\n\nLearn why 93% of candidates who negotiate receive higher offers, discover how negotiation can double your lifetime earnings, and implement three practical techniques: avoiding the early salary trap, using the bolstering range method, and applying the Double Nope rule.\n\n*TIMESTAMPS*\n00:00 Evidence-Based Negotiation Tips for Job Seekers\n00:18 Key Takeaway #1\n01:42 Key Takeaway #2\n02:42 Key Takeaway #3\n03:43 Avoid the “Early Ask” Salary Trap\n05:10 Prepare Your Bolstering Range\n06:17 Adhere to the Double Nope Rule\n07:30 Bonus Tip for Job Seekers\n\n*RESOURCES MENTIONED*\nSalary Calculation Spreadsheet: https://www.jeffsu.org/negotiate-a-higher-salary-3-evidence-based-tips\nAustin Belcak's Negotiation Script: https://cultivatedculture.com/salary-resources/\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#jobsearch #joboffer", "How to Negotiate a Higher Salary: 3 Evidence-Based Tips!", "ea7271fa-92cd-49dc-8a01-8fcd7634a030", false, "e2_HXKNIzaM", 1, [], 479, false, "https://www.youtube.com/watch?v=e2_HXKNIzaM", 32, "/downloads/Jeff Su/2025-01-07 How to Negotiate a Higher Salary: 3 Evidence-Based Tips!/How to Negotiate a Higher Salary: 3 Evidence-Based Tips! [e2_HXKNIzaM].mp4", false, false, 98, ~U[2025-01-07 13:00:52Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "🎯\u00A0My free Job Search Toolkit - https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=171\n\nMaster the art of salary #negotiation with evidence-based strategies backed by LinkedIn's comprehensive report of 93,000+ data points.\n\nLearn why 93% of candidates who negotiate receive higher offers, discover how negotiation can double your lifetime earnings, and implement three practical techniques: avoiding the early salary trap, using the bolstering range method, and applying the Double Nope rule.\n\n*TIMESTAMPS*\n00:00 Evidence-Based Negotiation Tips for Job Seekers\n00:18 Key Takeaway #1\n01:42 Key Takeaway #2\n02:42 Key Takeaway #3\n03:43 Avoid the “Early Ask” Salary Trap\n05:10 Prepare Your Bolstering Range\n06:17 Adhere to the Double Nope Rule\n07:30 Bonus Tip for Job Seekers\n\n*RESOURCES MENTIONED*\nSalary Calculation Spreadsheet: https://www.jeffsu.org/negotiate-a-higher-salary-3-evidence-based-tips\nAustin Belcak's Negotiation Script: https://cultivatedculture.com/salary-resources/\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#jobsearch #joboffer", "How to Negotiate a Higher Salary: 3 Evidence-Based Tips!", "e2_HXKNIzaM", 1, 479, false, "https://www.youtube.com/watch?v=e2_HXKNIzaM", "/downloads/Jeff Su/2025-01-07 How to Negotiate a Higher Salary: 3 Evidence-Based Tips!/How to Negotiate a Higher Salary: 3 Evidence-Based Tips! [e2_HXKNIzaM].mp4", false, ~U[2025-01-07 13:00:52Z]] 16:58:28.369 [debug] QUERY OK source="sources" db=0.3ms idle=7.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.370 [debug] QUERY OK source="media_items" db=0.8ms idle=5.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-10 13:00:16Z], 1] 16:58:28.372 [debug] QUERY OK source="media_items" db=1.5ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["➡️\u00A0Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=170\n\nPut simply, #NotebookLM is perfect for professionals working with large amounts of documentation who need reliable information synthesis.\n\nIn this video I go through how to leverage NotebookLM effectively for analyzing documents, PDFs, and video content across multiple formats.\n\nLet’s get started!\n\n*TIMESTAMPS*\n00:00 When to use NotebookLM\n00:36 NotebookLM Basics\n02:56 Step-by-step Workflow\n06:00 Focused Knowledge Retrieval\n08:09 Project Context Engine\n09:46 Targeted Insights Studio\n11:33 Beyond the Basics\n\n*RESOURCES MENTIONED*\nMy insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=170\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - https://get.tealhq.com/jeffsu\n\n#AI #productivity", "Learn 80% of NotebookLM in Under 13 Minutes!", "bac429a5-8812-4d82-93ca-4af73e469698", false, "EOmgC3-hznM", 1, [], 756, false, "https://www.youtube.com/watch?v=EOmgC3-hznM", 33, "/downloads/Jeff Su/2024-12-10 Learn 80% of NotebookLM in Under 13 Minutes!/Learn 80% of NotebookLM in Under 13 Minutes! [EOmgC3-hznM].mp4", false, false, 98, ~U[2024-12-10 13:00:16Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "➡️\u00A0Grab my free AI Toolkit: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=170\n\nPut simply, #NotebookLM is perfect for professionals working with large amounts of documentation who need reliable information synthesis.\n\nIn this video I go through how to leverage NotebookLM effectively for analyzing documents, PDFs, and video content across multiple formats.\n\nLet’s get started!\n\n*TIMESTAMPS*\n00:00 When to use NotebookLM\n00:36 NotebookLM Basics\n02:56 Step-by-step Workflow\n06:00 Focused Knowledge Retrieval\n08:09 Project Context Engine\n09:46 Targeted Insights Studio\n11:33 Beyond the Basics\n\n*RESOURCES MENTIONED*\nMy insanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=170\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - https://get.tealhq.com/jeffsu\n\n#AI #productivity", "Learn 80% of NotebookLM in Under 13 Minutes!", "EOmgC3-hznM", 1, 756, false, "https://www.youtube.com/watch?v=EOmgC3-hznM", "/downloads/Jeff Su/2024-12-10 Learn 80% of NotebookLM in Under 13 Minutes!/Learn 80% of NotebookLM in Under 13 Minutes! [EOmgC3-hznM].mp4", false, ~U[2024-12-10 13:00:16Z]] 16:58:28.373 [debug] QUERY OK source="sources" db=0.3ms idle=7.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.374 [debug] QUERY OK source="media_items" db=0.8ms idle=5.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-26 13:00:01Z], 1] 16:58:28.377 [debug] QUERY OK source="media_items" db=1.6ms idle=5.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["💡\u00A0The Workspace Academy: https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=169\n\nLearn 11 powerful #GoogleKeep features to transform your digital note-taking and #organization.\n\nFrom quick capture shortcuts and advanced search techniques to calendar integration and automated text extraction from images.\n\nPerfect for professionals looking to streamline their workflow, manage meeting notes more effectively, and create a sustainable system for processing information using Google Keep.\n\n*TIMESTAMPS*\n00:00 Google Keep Tips for Productivity\n00:10 Best way to Capture Notes in Keep\n00:40 Google Keep Settings\n01:20 Hidden Search Feature\n01:54 Bullet Points in Google Keep\n02:25 Transfer Information from Keep\n03:34 Link Google Keep to Calendar\n04:17 Save Websites to Google Keep\n05:05 Filter Notes by Color\n05:45 Create Checklists in Google Keep\n06:11 Grab Image Text from Photos\n07:04 Capture Voice Notes in Keep\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=169\nAccess my templates for free: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=169\nLinks & URLs mentioned in the video: https://www.jeffsu.org/google-keep-11-hidden-tips-for-better-digital-organization\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#productivity", "Google Keep: Top 11 Tips for Insane Digital Organization!", "931f6405-2a9e-4529-93e2-46853886bd33", false, "aKDqz07y2Mw", 1, [], 474, false, "https://www.youtube.com/watch?v=aKDqz07y2Mw", 34, "/downloads/Jeff Su/2024-11-26 Google Keep: Top 11 Tips for Insane Digital Organization!/Google Keep: Top 11 Tips for Insane Digital Organization! [aKDqz07y2Mw].mp4", false, false, 98, ~U[2024-11-26 13:00:01Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "💡\u00A0The Workspace Academy: https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=169\n\nLearn 11 powerful #GoogleKeep features to transform your digital note-taking and #organization.\n\nFrom quick capture shortcuts and advanced search techniques to calendar integration and automated text extraction from images.\n\nPerfect for professionals looking to streamline their workflow, manage meeting notes more effectively, and create a sustainable system for processing information using Google Keep.\n\n*TIMESTAMPS*\n00:00 Google Keep Tips for Productivity\n00:10 Best way to Capture Notes in Keep\n00:40 Google Keep Settings\n01:20 Hidden Search Feature\n01:54 Bullet Points in Google Keep\n02:25 Transfer Information from Keep\n03:34 Link Google Keep to Calendar\n04:17 Save Websites to Google Keep\n05:05 Filter Notes by Color\n05:45 Create Checklists in Google Keep\n06:11 Grab Image Text from Photos\n07:04 Capture Voice Notes in Keep\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=169\nAccess my templates for free: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=169\nLinks & URLs mentioned in the video: https://www.jeffsu.org/google-keep-11-hidden-tips-for-better-digital-organization\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#productivity", "Google Keep: Top 11 Tips for Insane Digital Organization!", "aKDqz07y2Mw", 1, 474, false, "https://www.youtube.com/watch?v=aKDqz07y2Mw", "/downloads/Jeff Su/2024-11-26 Google Keep: Top 11 Tips for Insane Digital Organization!/Google Keep: Top 11 Tips for Insane Digital Organization! [aKDqz07y2Mw].mp4", false, ~U[2024-11-26 13:00:01Z]] 16:58:28.378 [debug] QUERY OK source="sources" db=0.3ms idle=7.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.379 [debug] QUERY OK source="media_items" db=0.8ms idle=5.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-12 13:00:32Z], 1] 16:58:28.382 [debug] QUERY OK source="media_items" db=1.6ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎉\u00A0Unlock AI for $10 per month →\u00A0https://ntn.so/JeffSu\n\n📑\u00A0Grab my Notion Toolkit for free: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=168\n\nMaster Notion with 8 practical workflow tips including notes threads for recurring meetings, inbox views for database management, and advanced techniques for Notion AI integration.\n\nLearn essential productivity features like dynamic Buttons, how best to use Synced Blocks in Notion, and the PARA organization method. This is perfect for both beginners looking to get started and intermediate users wanting to optimize their workspace!\n\n*TIMESTAMPS*\n00:00 Notion made easy\n00:10 Use Notes Threads\n01:48 Add an Outstanding section\n02:36 Naming Convention for Notes\n03:27 Grounding outputs with Notion AI\n05:31 Always create Inbox Views\n07:26 Backend vs. Frontend\n09:41 The True Power of Buttons\n11:29 Best Practices for Synced Blocks\n\n*RESOURCES MENTIONED*\nGrab my Notion Toolkit for free: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=168\nSign up for my newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=168\nMy Notion Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2yQ69AlfI2EMtLUiw_uNPfL\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#NotionPartner #Notion #NotionAI", "Notion was HARD until I Learned These 8 Tips!", "592b79ee-38a1-4289-bbef-73696f662af5", false, "N0hod3YFCy4", 1, [], 797, false, "https://www.youtube.com/watch?v=N0hod3YFCy4", 35, "/downloads/Jeff Su/2024-11-12 Notion was HARD until I Learned These 8 Tips!/Notion was HARD until I Learned These 8 Tips! [N0hod3YFCy4].mp4", false, false, 98, ~U[2024-11-12 13:00:32Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "🎉\u00A0Unlock AI for $10 per month →\u00A0https://ntn.so/JeffSu\n\n📑\u00A0Grab my Notion Toolkit for free: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=168\n\nMaster Notion with 8 practical workflow tips including notes threads for recurring meetings, inbox views for database management, and advanced techniques for Notion AI integration.\n\nLearn essential productivity features like dynamic Buttons, how best to use Synced Blocks in Notion, and the PARA organization method. This is perfect for both beginners looking to get started and intermediate users wanting to optimize their workspace!\n\n*TIMESTAMPS*\n00:00 Notion made easy\n00:10 Use Notes Threads\n01:48 Add an Outstanding section\n02:36 Naming Convention for Notes\n03:27 Grounding outputs with Notion AI\n05:31 Always create Inbox Views\n07:26 Backend vs. Frontend\n09:41 The True Power of Buttons\n11:29 Best Practices for Synced Blocks\n\n*RESOURCES MENTIONED*\nGrab my Notion Toolkit for free: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=168\nSign up for my newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=168\nMy Notion Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2yQ69AlfI2EMtLUiw_uNPfL\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#NotionPartner #Notion #NotionAI", "Notion was HARD until I Learned These 8 Tips!", "N0hod3YFCy4", 1, 797, false, "https://www.youtube.com/watch?v=N0hod3YFCy4", "/downloads/Jeff Su/2024-11-12 Notion was HARD until I Learned These 8 Tips!/Notion was HARD until I Learned These 8 Tips! [N0hod3YFCy4].mp4", false, ~U[2024-11-12 13:00:32Z]] 16:58:28.382 [debug] QUERY OK source="sources" db=0.3ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.384 [debug] QUERY OK source="media_items" db=0.9ms idle=6.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-29 13:01:10Z], 1] 16:58:28.387 [debug] QUERY OK source="media_items" db=1.8ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Here are 20 essential #Gmail settings that will transform your inbox experience!\n\nFrom disabling annoying nudges to setting up efficient swipe actions on mobile, this comprehensive guide covers both desktop and iOS/Android Gmail optimization. Perfect for anyone looking to declutter their inbox and streamline their email workflow.\n\n*TIMESTAMPS*\n00:00 20 Gmail Settings You Need to Change\n00:13 Declutter your inbox\n00:30 Disable Hover Actions\n00:45 Maximize Undo Send\n01:11 Update Button Labels\n01:26 Must-Use Shortcuts\n02:05 Auto-Advance conversations\n02:45 Turn Off Ads in Gmail\n03:06 Disable Nudges\n03:25 Gmail Signature Settings\n03:38 Cleaner Layout in Gmail\n04:18 System Label Settings in Gmail\n05:01 Category Settings in Gmail\n05:24 Enable Gmail Templates\n06:12 Gemini Settings in Gmail\n06:34 Android Theme in Gmail\n06:43 Swipe actions in Gmail Mobile app\n07:05 Conversation Density\n07:25 Default Apps in iOS\n07:42 Turn off Additional Diagnostics\n\n*RESOURCES MENTIONED*\n\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=167\nDownload my Gmail filters: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=167\nGoogle Workspace Tutorial Playlist: https://www.youtube.com/watch?v=MM-MPS57qKA&list=PLo-kPya_Ww2yGaxjUQxUK4zFv76eM-Nzj\nTask Zero for Gmail workflow: https://academy.jeffsu.org/workspace-academy?utm_source=mywebsite&utm_medium=post&utm_campaign=167\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#productivity #inboxmanagement", "20 Gmail Settings EVERYONE Needs to Change!", "c287a437-043e-43c3-8464-e04490c64036", false, "v-9CVpuoIEo", 1, [], 483, false, "https://www.youtube.com/watch?v=v-9CVpuoIEo", 36, "/downloads/Jeff Su/2024-10-29 20 Gmail Settings EVERYONE Needs to Change!/20 Gmail Settings EVERYONE Needs to Change! [v-9CVpuoIEo].mp4", false, false, 98, ~U[2024-10-29 13:01:10Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "Here are 20 essential #Gmail settings that will transform your inbox experience!\n\nFrom disabling annoying nudges to setting up efficient swipe actions on mobile, this comprehensive guide covers both desktop and iOS/Android Gmail optimization. Perfect for anyone looking to declutter their inbox and streamline their email workflow.\n\n*TIMESTAMPS*\n00:00 20 Gmail Settings You Need to Change\n00:13 Declutter your inbox\n00:30 Disable Hover Actions\n00:45 Maximize Undo Send\n01:11 Update Button Labels\n01:26 Must-Use Shortcuts\n02:05 Auto-Advance conversations\n02:45 Turn Off Ads in Gmail\n03:06 Disable Nudges\n03:25 Gmail Signature Settings\n03:38 Cleaner Layout in Gmail\n04:18 System Label Settings in Gmail\n05:01 Category Settings in Gmail\n05:24 Enable Gmail Templates\n06:12 Gemini Settings in Gmail\n06:34 Android Theme in Gmail\n06:43 Swipe actions in Gmail Mobile app\n07:05 Conversation Density\n07:25 Default Apps in iOS\n07:42 Turn off Additional Diagnostics\n\n*RESOURCES MENTIONED*\n\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=167\nDownload my Gmail filters: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=167\nGoogle Workspace Tutorial Playlist: https://www.youtube.com/watch?v=MM-MPS57qKA&list=PLo-kPya_Ww2yGaxjUQxUK4zFv76eM-Nzj\nTask Zero for Gmail workflow: https://academy.jeffsu.org/workspace-academy?utm_source=mywebsite&utm_medium=post&utm_campaign=167\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#productivity #inboxmanagement", "20 Gmail Settings EVERYONE Needs to Change!", "v-9CVpuoIEo", 1, 483, false, "https://www.youtube.com/watch?v=v-9CVpuoIEo", "/downloads/Jeff Su/2024-10-29 20 Gmail Settings EVERYONE Needs to Change!/20 Gmail Settings EVERYONE Needs to Change! [v-9CVpuoIEo].mp4", false, ~U[2024-10-29 13:01:10Z]] 16:58:28.387 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [1] 16:58:28.389 [debug] QUERY OK source="media_items" db=0.9ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-15 13:00:15Z], 1] 16:58:28.391 [debug] QUERY OK source="media_items" db=1.5ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sign up for Google’s Project Management Certification on Coursera here: https://imp.i384100.net/js-project-management\n\nGrab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=166\n\nSince we’re all pretty tired of generic #ChatGPT tutorials, this video dives deep into 5 practical ways professionals can leverage ChatGPT to enhance #productivity and achieve better results.\n\n*TIMESTAMPS*\n00:00 How to use ChatGPT for work\n00:10 Context Cheating\n02:10 Convert with Intention\n04:19 Answer Leveling\n06:10 Seamless Data Extraction\n08:06 Uncover Actionable Insights\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=166\nPrompts from this video: https://www.jeffsu.org/top-5-chatgpt-use-cases-for-professionals\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#ai", "Top 5 ChatGPT Use Cases for Professionals!", "6fc91ad6-77f8-4eb3-b524-1eb4c6fe1140", false, "EDkaQj7K5_c", 1, [], 648, false, "https://www.youtube.com/watch?v=EDkaQj7K5_c", 37, "/downloads/Jeff Su/2024-10-15 Top 5 ChatGPT Use Cases for Professionals!/Top 5 ChatGPT Use Cases for Professionals! [EDkaQj7K5_c].mp4", false, false, 98, ~U[2024-10-15 13:00:15Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "Sign up for Google’s Project Management Certification on Coursera here: https://imp.i384100.net/js-project-management\n\nGrab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=166\n\nSince we’re all pretty tired of generic #ChatGPT tutorials, this video dives deep into 5 practical ways professionals can leverage ChatGPT to enhance #productivity and achieve better results.\n\n*TIMESTAMPS*\n00:00 How to use ChatGPT for work\n00:10 Context Cheating\n02:10 Convert with Intention\n04:19 Answer Leveling\n06:10 Seamless Data Extraction\n08:06 Uncover Actionable Insights\n\n*RESOURCES MENTIONED*\nInsanely actionable newsletter: https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=166\nPrompts from this video: https://www.jeffsu.org/top-5-chatgpt-use-cases-for-professionals\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#ai", "Top 5 ChatGPT Use Cases for Professionals!", "EDkaQj7K5_c", 1, 648, false, "https://www.youtube.com/watch?v=EDkaQj7K5_c", "/downloads/Jeff Su/2024-10-15 Top 5 ChatGPT Use Cases for Professionals!/Top 5 ChatGPT Use Cases for Professionals! [EDkaQj7K5_c].mp4", false, ~U[2024-10-15 13:00:15Z]] 16:58:28.392 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [1] 16:58:28.393 [debug] QUERY OK source="media_items" db=0.8ms idle=5.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-01 13:00:24Z], 1] 16:58:28.396 [debug] QUERY OK source="media_items" db=1.5ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Unlock the full potential of #GoogleSheets with these 10 incredible tips!\n\nLearn how to streamline data formatting, create dynamic grouped views, master filters, clean and extract data effortlessly, and leverage powerful shortcuts. Plus, discover real-world applications, collaboration tips, and currency conversion tricks.\n\n*TIMESTAMPS*\n00:00 10 Google Sheet Tips for Productivity\n00:11 Convert to Table\n01:45 Grouped Views\n02:46 Advanced Filter Tips\n03:58 Must-know Data Cleaning Techniques\n06:17 Data Extraction in Google Sheets\n08:10 3 Must-use Shortcuts for Google Sheets\n09:58 Project Management in Google Sheets\n11:21 Collaboration Tips\n11:58 Convert Currencies in Sheets\n12:51 Formatting hack in Google Sheets\n\n*RESOURCES MENTIONED*\nSubscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=165\nLearn a powerful workflow - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=165\n\n*BE MY FRIEND:*\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#googleworkspace #productivity", "10 INCREDIBLE things Google Sheets can do Right Now!", "c51dc73f-6c07-486d-9a75-810dc674476a", false, "POZorIoSK5c", 1, [], 807, false, "https://www.youtube.com/watch?v=POZorIoSK5c", 38, "/downloads/Jeff Su/2024-10-01 10 INCREDIBLE things Google Sheets can do Right Now!/10 INCREDIBLE things Google Sheets can do Right Now! [POZorIoSK5c].mp4", false, false, 98, ~U[2024-10-01 13:00:24Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "Unlock the full potential of #GoogleSheets with these 10 incredible tips!\n\nLearn how to streamline data formatting, create dynamic grouped views, master filters, clean and extract data effortlessly, and leverage powerful shortcuts. Plus, discover real-world applications, collaboration tips, and currency conversion tricks.\n\n*TIMESTAMPS*\n00:00 10 Google Sheet Tips for Productivity\n00:11 Convert to Table\n01:45 Grouped Views\n02:46 Advanced Filter Tips\n03:58 Must-know Data Cleaning Techniques\n06:17 Data Extraction in Google Sheets\n08:10 3 Must-use Shortcuts for Google Sheets\n09:58 Project Management in Google Sheets\n11:21 Collaboration Tips\n11:58 Convert Currencies in Sheets\n12:51 Formatting hack in Google Sheets\n\n*RESOURCES MENTIONED*\nSubscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=165\nLearn a powerful workflow - https://academy.jeffsu.org/workspace-academy?utm_source=youtube&utm_medium=video&utm_campaign=165\n\n*BE MY FRIEND:*\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n#googleworkspace #productivity", "10 INCREDIBLE things Google Sheets can do Right Now!", "POZorIoSK5c", 1, 807, false, "https://www.youtube.com/watch?v=POZorIoSK5c", "/downloads/Jeff Su/2024-10-01 10 INCREDIBLE things Google Sheets can do Right Now!/10 INCREDIBLE things Google Sheets can do Right Now! [POZorIoSK5c].mp4", false, ~U[2024-10-01 13:00:24Z]] 16:58:28.396 [debug] QUERY OK source="sources" db=0.3ms idle=7.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.398 [debug] QUERY OK source="media_items" db=0.8ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-17 13:00:39Z], 1] 16:58:28.400 [debug] QUERY OK source="media_items" db=1.6ms idle=6.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=164\n\nTry Perplexity yourself: https://perplexity.ai/pro?referral_code=PEDDZAKZ\n\nThis video offers a concise overview of #Perplexity, comparing it to #ChatGPT, Google #Gemini, and Google Search.\n\nLearn how to optimize Perplexity's settings, utilize the \"Focus\" feature, and leverage collections for streamlined research.\n\nWe also explore Perplexity's strengths in factual accuracy and its limitations in creative tasks. Perfect for beginners seeking to enhance their AI toolkit.\n\n*TIMESTAMPS*\n00:00 How to use Perplexity (for beginners)\n00:51 Settings for Perplexity\n02:25 Perplexity Search\n05:34 Collections Feature\n07:26 What Perplexity is NOT good for\n08:16 Perplexity Pro Features\n\n*RESOURCES MENTIONED*\nWorkspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=164\nSummary of Google's Intro to AI Course: https://youtu.be/Yq0QkCxoTHM\nMake a copy of my Perplexity Profile: https://www.jeffsu.org/perplexity-a-comprehensive-guide/\nThe SCQA Framework Prompt: https://jeffsu.gumroad.com/l/prompt-for-presentations\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "Learn 80% of Perplexity in under 10 minutes!", "c70dd05b-6a14-4104-9a47-1c04b5ed6f04", false, "YoWdogtZRw8", 1, [], 592, false, "https://www.youtube.com/watch?v=YoWdogtZRw8", 39, "/downloads/Jeff Su/2024-09-17 Learn 80% of Perplexity in under 10 minutes!/Learn 80% of Perplexity in under 10 minutes! [YoWdogtZRw8].mp4", false, false, 98, ~U[2024-09-17 13:00:39Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=164\n\nTry Perplexity yourself: https://perplexity.ai/pro?referral_code=PEDDZAKZ\n\nThis video offers a concise overview of #Perplexity, comparing it to #ChatGPT, Google #Gemini, and Google Search.\n\nLearn how to optimize Perplexity's settings, utilize the \"Focus\" feature, and leverage collections for streamlined research.\n\nWe also explore Perplexity's strengths in factual accuracy and its limitations in creative tasks. Perfect for beginners seeking to enhance their AI toolkit.\n\n*TIMESTAMPS*\n00:00 How to use Perplexity (for beginners)\n00:51 Settings for Perplexity\n02:25 Perplexity Search\n05:34 Collections Feature\n07:26 What Perplexity is NOT good for\n08:16 Perplexity Pro Features\n\n*RESOURCES MENTIONED*\nWorkspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=164\nSummary of Google's Intro to AI Course: https://youtu.be/Yq0QkCxoTHM\nMake a copy of my Perplexity Profile: https://www.jeffsu.org/perplexity-a-comprehensive-guide/\nThe SCQA Framework Prompt: https://jeffsu.gumroad.com/l/prompt-for-presentations\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=description\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu", "Learn 80% of Perplexity in under 10 minutes!", "YoWdogtZRw8", 1, 592, false, "https://www.youtube.com/watch?v=YoWdogtZRw8", "/downloads/Jeff Su/2024-09-17 Learn 80% of Perplexity in under 10 minutes!/Learn 80% of Perplexity in under 10 minutes! [YoWdogtZRw8].mp4", false, ~U[2024-09-17 13:00:39Z]] 16:58:28.401 [debug] QUERY OK source="sources" db=0.3ms idle=7.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.402 [debug] QUERY OK source="media_items" db=0.8ms idle=6.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-03 13:00:49Z], 1] 16:58:28.405 [debug] QUERY OK source="media_items" db=1.7ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Sign up for Google’s Project Management Certification on Coursera here: https://imp.i384100.net/js-project-management\n\nGrab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=163\n\nCurious about #AI but don't know where to start? In this video, I break down 5 key takeaways from Google's AI Essentials course for beginners, share the pros and cons, and help you decide if this certification is worth your time.\n\nLet’s get started 😁\n\n*TIMESTAMPS*\n00:00 I took Google’s AI Essentials Course\n00:29 There are 3 Types of AI Tools\n03:39 Always surface Implied Context\n04:51 Zero-Shot vs. Few-Shot Prompting\n05:50 Chain-of-Thought Prompting\n06:53 Limitations of AI\n07:51 Pros and Cons of Google’s AI Essentials Course\n\n*RESOURCES MENTIONED*\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=163\nWrite the Perfect Prompt: https://youtu.be/jC4v5AS4RIM\nChatGPT for Job Seekers: https://youtu.be/2uN8PTXMY5c\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#Google #ChatGPT", "99% of Beginners Don't Know the Basics of AI", "debcd118-15b1-48bf-b727-761b59ef7c74", false, "nVyD6THcvDQ", 1, [], 612, false, "https://www.youtube.com/watch?v=nVyD6THcvDQ", 40, "/downloads/Jeff Su/2024-09-03 99% of Beginners Don't Know the Basics of AI/99% of Beginners Don't Know the Basics of AI [nVyD6THcvDQ].mp4", false, false, 98, ~U[2024-09-03 13:00:49Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "Sign up for Google’s Project Management Certification on Coursera here: https://imp.i384100.net/js-project-management\n\nGrab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=163\n\nCurious about #AI but don't know where to start? In this video, I break down 5 key takeaways from Google's AI Essentials course for beginners, share the pros and cons, and help you decide if this certification is worth your time.\n\nLet’s get started 😁\n\n*TIMESTAMPS*\n00:00 I took Google’s AI Essentials Course\n00:29 There are 3 Types of AI Tools\n03:39 Always surface Implied Context\n04:51 Zero-Shot vs. Few-Shot Prompting\n05:50 Chain-of-Thought Prompting\n06:53 Limitations of AI\n07:51 Pros and Cons of Google’s AI Essentials Course\n\n*RESOURCES MENTIONED*\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=163\nWrite the Perfect Prompt: https://youtu.be/jC4v5AS4RIM\nChatGPT for Job Seekers: https://youtu.be/2uN8PTXMY5c\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#Google #ChatGPT", "99% of Beginners Don't Know the Basics of AI", "nVyD6THcvDQ", 1, 612, false, "https://www.youtube.com/watch?v=nVyD6THcvDQ", "/downloads/Jeff Su/2024-09-03 99% of Beginners Don't Know the Basics of AI/99% of Beginners Don't Know the Basics of AI [nVyD6THcvDQ].mp4", false, ~U[2024-09-03 13:00:49Z]] 16:58:28.405 [debug] QUERY OK source="sources" db=0.3ms idle=7.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.407 [debug] QUERY OK source="media_items" db=1.5ms idle=5.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-20 13:00:20Z], 1] 16:58:28.410 [debug] QUERY OK source="media_items" db=2.0ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🗃️\u00A0Learn more about Dropbox for teams: https://www.dropbox.com/jeffsu\n\nIn this video I share 10 incredible #Mac apps that will revolutionize your workflow! From file management and #productivity boosters to handy utilities, this video is packed with hidden gems you won't want to miss. \n\nI'll show you how to streamline your tasks, save time, and make the most of your #Macbook experience. Don't settle for the ordinary – discover these lesser-known apps and unlock your Mac's full potential.\n\n*TIMESTAMPS*\n00:00 App #1\n01:13 App #2\n02:17 App #3\n03:27 App #4\n05:49 App #5\n07:16 App #6\n08:04 App #7\n09:00 App #8\n10:51 App #9\n11:46 App #10\n\n*RESOURCES MENTIONED*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=162\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=162\n\n*THE APPS*\nItsycal - https://www.mowglii.com/itsycal/\nLocal Send - https://localsend.org/\nTransnomino - https://www.transnomino.com/\nChatGPT for the Mac - https://openai.com/chatgpt/mac/\nOnlySwitch - https://github.com/jacklandrin/OnlySwitch\nImage Optim - https://imageoptim.com/mac\nHyperDuck - https://sindresorhus.com/hyperduck\nGrab2Text - https://apps.apple.com/us/app/grab2text/id6475956137?mt=12\nRocket - https://matthewpalmer.net/rocket/\nCleanShot X - https://geni.us/cleanshotx\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=162\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "10 Mac Apps You Haven't Heard Of (but should be using)", "c03bd20b-642f-4c19-9581-0ec075da2a75", false, "JqKB97HpWrk", 1, [], 762, false, "https://www.youtube.com/watch?v=JqKB97HpWrk", 41, "/downloads/Jeff Su/2024-08-20 10 Mac Apps You Haven't Heard Of (but should be using)/10 Mac Apps You Haven't Heard Of (but should be using) [JqKB97HpWrk].mp4", false, false, 98, ~U[2024-08-20 13:00:20Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "🗃️\u00A0Learn more about Dropbox for teams: https://www.dropbox.com/jeffsu\n\nIn this video I share 10 incredible #Mac apps that will revolutionize your workflow! From file management and #productivity boosters to handy utilities, this video is packed with hidden gems you won't want to miss. \n\nI'll show you how to streamline your tasks, save time, and make the most of your #Macbook experience. Don't settle for the ordinary – discover these lesser-known apps and unlock your Mac's full potential.\n\n*TIMESTAMPS*\n00:00 App #1\n01:13 App #2\n02:17 App #3\n03:27 App #4\n05:49 App #5\n07:16 App #6\n08:04 App #7\n09:00 App #8\n10:51 App #9\n11:46 App #10\n\n*RESOURCES MENTIONED*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=162\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=162\n\n*THE APPS*\nItsycal - https://www.mowglii.com/itsycal/\nLocal Send - https://localsend.org/\nTransnomino - https://www.transnomino.com/\nChatGPT for the Mac - https://openai.com/chatgpt/mac/\nOnlySwitch - https://github.com/jacklandrin/OnlySwitch\nImage Optim - https://imageoptim.com/mac\nHyperDuck - https://sindresorhus.com/hyperduck\nGrab2Text - https://apps.apple.com/us/app/grab2text/id6475956137?mt=12\nRocket - https://matthewpalmer.net/rocket/\nCleanShot X - https://geni.us/cleanshotx\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter/?utm_source=youtube&utm_medium=video&utm_campaign=162\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "10 Mac Apps You Haven't Heard Of (but should be using)", "JqKB97HpWrk", 1, 762, false, "https://www.youtube.com/watch?v=JqKB97HpWrk", "/downloads/Jeff Su/2024-08-20 10 Mac Apps You Haven't Heard Of (but should be using)/10 Mac Apps You Haven't Heard Of (but should be using) [JqKB97HpWrk].mp4", false, ~U[2024-08-20 13:00:20Z]] 16:58:28.411 [debug] QUERY OK source="sources" db=0.4ms idle=8.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.413 [debug] QUERY OK source="media_items" db=0.9ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-06 13:00:04Z], 1] 16:58:28.415 [debug] QUERY OK source="media_items" db=1.7ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I'm sharing my 10 favorite time-saving hacks that you can start using in #GoogleDocs today! \n\nFrom mastering the \"@\" command and unlocking the power of pageless mode to effortlessly managing version history and streamlining collaboration, these tips are designed to save you a massive amount of time.\n\n@Google\n\n*TIMESTAMPS*\n00:00 Top 10 Google Doc Tips for Productivity\n00:11 Use Building Blocks to Save Time\n02:09 Enable Pageless Mode in Google Docs\n04:02 Set Default Fonts in Google Docs\n06:34 Link to Headings and Comments\n07:20 Preview Suggested Edits\n08:58 Compose Email from Google Docs\n10:41 Email as PDF Shortcut\n11:29 Tips and Tricks for Tables\n12:31 Quality of Life Features in Google Docs\n\n*RESOURCES MENTIONED*\nGrab my Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=161\n\nAccess my productivity templates for free: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=161\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity #googleworkspace", "10 BEST Productivity Tips for Google Docs!", "265031da-1103-4fa5-b15e-2c00b7edf5cf", false, "4rlqUHS9fgg", 1, [], 830, false, "https://www.youtube.com/watch?v=4rlqUHS9fgg", 42, "/downloads/Jeff Su/2024-08-06 10 BEST Productivity Tips for Google Docs!/10 BEST Productivity Tips for Google Docs! [4rlqUHS9fgg].mp4", false, false, 98, ~U[2024-08-06 13:00:04Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "In this video, I'm sharing my 10 favorite time-saving hacks that you can start using in #GoogleDocs today! \n\nFrom mastering the \"@\" command and unlocking the power of pageless mode to effortlessly managing version history and streamlining collaboration, these tips are designed to save you a massive amount of time.\n\n@Google\n\n*TIMESTAMPS*\n00:00 Top 10 Google Doc Tips for Productivity\n00:11 Use Building Blocks to Save Time\n02:09 Enable Pageless Mode in Google Docs\n04:02 Set Default Fonts in Google Docs\n06:34 Link to Headings and Comments\n07:20 Preview Suggested Edits\n08:58 Compose Email from Google Docs\n10:41 Email as PDF Shortcut\n11:29 Tips and Tricks for Tables\n12:31 Quality of Life Features in Google Docs\n\n*RESOURCES MENTIONED*\nGrab my Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=161\n\nAccess my productivity templates for free: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=161\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity #googleworkspace", "10 BEST Productivity Tips for Google Docs!", "4rlqUHS9fgg", 1, 830, false, "https://www.youtube.com/watch?v=4rlqUHS9fgg", "/downloads/Jeff Su/2024-08-06 10 BEST Productivity Tips for Google Docs!/10 BEST Productivity Tips for Google Docs! [4rlqUHS9fgg].mp4", false, ~U[2024-08-06 13:00:04Z]] 16:58:28.416 [debug] QUERY OK source="sources" db=0.3ms idle=8.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.417 [debug] QUERY OK source="media_items" db=0.8ms idle=6.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-28 16:00:15Z], 1] 16:58:28.420 [debug] QUERY OK source="media_items" db=1.8ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Job Search Toolkit - https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=160\n\nUse Teal to simplify your job search - https://get.tealhq.com/jeffsu\n\nThis video breaks down the latest research on #LinkedIn best practices and gives you 5 actionable tips to optimize your profile. \n\nFrom mastering keywords to crafting a compelling \"About\" section, learn how to stand out from the competition and get noticed by recruiters. \n\nLet’s get started!\n\n*TIMESTAMPS*\n00:00 The Biggest Issue with LinkedIn Advice\n00:33 5 Key Takeaways\n01:25 Master the Art of Keywords on LinkedIn\n03:21 Write Keyword-Driven Headlines\n04:47 Steal with Pride\n06:37 Write an Effective About Section\n08:08 Get Your Skills Endorsed on LinkedIn\n09:23 Free Job Search Toolkit?\n\n*RESOURCES I MENTION IN THE VIDEO*\nSarah’s original report: https://www.briefcasecoach.com/linkedin-best-practices?utm_medium=video&utm_source=jeffsu&utm_campaign=linkedin\nFind metrics for any role: https://youtu.be/IW472-d_8bs\nMake a copy of the prompts from this video: https://www.jeffsu.org/top-5-linkedin-profile-tips-for-2024-backed-by-data\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#LinkedIntips #jobsearch", "Top 5 LinkedIn Profile Tips! (backed by data)", "46592ec5-c0f4-4938-ab44-38bf5b1f576a", false, "OKF7ZeWNrfg", 1, [], 586, false, "https://www.youtube.com/watch?v=OKF7ZeWNrfg", 43, "/downloads/Jeff Su/2024-05-28 Top 5 LinkedIn Profile Tips! (backed by data)/Top 5 LinkedIn Profile Tips! (backed by data) [OKF7ZeWNrfg].mp4", false, false, 98, ~U[2024-05-28 16:00:15Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "My Job Search Toolkit - https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=160\n\nUse Teal to simplify your job search - https://get.tealhq.com/jeffsu\n\nThis video breaks down the latest research on #LinkedIn best practices and gives you 5 actionable tips to optimize your profile. \n\nFrom mastering keywords to crafting a compelling \"About\" section, learn how to stand out from the competition and get noticed by recruiters. \n\nLet’s get started!\n\n*TIMESTAMPS*\n00:00 The Biggest Issue with LinkedIn Advice\n00:33 5 Key Takeaways\n01:25 Master the Art of Keywords on LinkedIn\n03:21 Write Keyword-Driven Headlines\n04:47 Steal with Pride\n06:37 Write an Effective About Section\n08:08 Get Your Skills Endorsed on LinkedIn\n09:23 Free Job Search Toolkit?\n\n*RESOURCES I MENTION IN THE VIDEO*\nSarah’s original report: https://www.briefcasecoach.com/linkedin-best-practices?utm_medium=video&utm_source=jeffsu&utm_campaign=linkedin\nFind metrics for any role: https://youtu.be/IW472-d_8bs\nMake a copy of the prompts from this video: https://www.jeffsu.org/top-5-linkedin-profile-tips-for-2024-backed-by-data\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#LinkedIntips #jobsearch", "Top 5 LinkedIn Profile Tips! (backed by data)", "OKF7ZeWNrfg", 1, 586, false, "https://www.youtube.com/watch?v=OKF7ZeWNrfg", "/downloads/Jeff Su/2024-05-28 Top 5 LinkedIn Profile Tips! (backed by data)/Top 5 LinkedIn Profile Tips! (backed by data) [OKF7ZeWNrfg].mp4", false, ~U[2024-05-28 16:00:15Z]] 16:58:28.421 [debug] QUERY OK source="sources" db=0.3ms idle=7.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.422 [debug] QUERY OK source="media_items" db=0.8ms idle=6.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-14 13:00:50Z], 1] 16:58:28.430 [debug] QUERY OK source="media_items" db=6.5ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=159\n\nUnleash the power of AI chatbots like #ChatGPT and #GoogleGemini with Google's latest guide to writing great #prompts!\n\nIn this video, I share 5 actionable tips to write better prompts and get the most out of your AI interactions.\n\nDiscover how to use multi-step workflows, time-saving templates, and top-down competitive analysis to generate high-quality content and valuable insights. \n\n*TIMESTAMPS*\n00:00 Google’s New AI Prompting Guide\n00:25 The Power of Three\n02:13 Multi-Step Workflows\n03:47 Template Time-Savers\n05:45 Top-Down Competitive Analysis\n07:47 Supercharge Your PDFs \n\n*RESOURCES MENTIONED*\nDownload Google’s Prompt Guide: https://inthecloud.withgoogle.com/gemini-for-google-workspace-prompt-guide/dl-cd.html\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=159\nCopy prompts from this video: https://www.jeffsu.org/googles-prompting-guide-5-things-to-know\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "Google’s NEW Prompting Guide is Incredible!", "3bc2a0ee-7bda-4bac-af91-f9575d10722e", false, "o64Mv-ArFDI", 1, [], 550, false, "https://www.youtube.com/watch?v=o64Mv-ArFDI", 44, "/downloads/Jeff Su/2024-05-14 Google’s NEW Prompting Guide is Incredible!/Google’s NEW Prompting Guide is Incredible! [o64Mv-ArFDI].mp4", false, false, 98, ~U[2024-05-14 13:00:50Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=159\n\nUnleash the power of AI chatbots like #ChatGPT and #GoogleGemini with Google's latest guide to writing great #prompts!\n\nIn this video, I share 5 actionable tips to write better prompts and get the most out of your AI interactions.\n\nDiscover how to use multi-step workflows, time-saving templates, and top-down competitive analysis to generate high-quality content and valuable insights. \n\n*TIMESTAMPS*\n00:00 Google’s New AI Prompting Guide\n00:25 The Power of Three\n02:13 Multi-Step Workflows\n03:47 Template Time-Savers\n05:45 Top-Down Competitive Analysis\n07:47 Supercharge Your PDFs \n\n*RESOURCES MENTIONED*\nDownload Google’s Prompt Guide: https://inthecloud.withgoogle.com/gemini-for-google-workspace-prompt-guide/dl-cd.html\n🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=159\nCopy prompts from this video: https://www.jeffsu.org/googles-prompting-guide-5-things-to-know\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "Google’s NEW Prompting Guide is Incredible!", "o64Mv-ArFDI", 1, 550, false, "https://www.youtube.com/watch?v=o64Mv-ArFDI", "/downloads/Jeff Su/2024-05-14 Google’s NEW Prompting Guide is Incredible!/Google’s NEW Prompting Guide is Incredible! [o64Mv-ArFDI].mp4", false, ~U[2024-05-14 13:00:50Z]] 16:58:28.431 [debug] QUERY OK source="sources" db=0.3ms queue=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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.432 [debug] QUERY OK source="media_items" db=0.8ms idle=11.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-30 13:00:52Z], 1] 16:58:28.434 [debug] QUERY OK source="media_items" db=1.7ms idle=11.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Workspace Toolkit - https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=158\n\nSlides should be a powerful tool, not a boring chore. In this video, I share 10 actionable #presentation tips from Herng Lee - a veteran Strategy & Operations Manager at Google! \n\nYou'll learn:\n\n👀\u00A0How to write headlines that grab attention\n\n📈\u00A0The #1 mistake to avoid in slide structure\n\n💬\u00A0How to make your message persuasive\n\n...and more! Let’s get started 😉\n\n*TIMESTAMPS*\n00:00 How to Write Great Slides\n00:32 Tactic #1\n01:44 Tactic #2\n02:36 Tactic #3\n03:42 Tactic #4\n04:27 Tactic #5\n05:13 Tactic #6\n06:09 Tactic #7\n07:01 Tactic #8\n07:31 Tactic #9\n08:16 Tactic #10\n\n*RESOURCES I MENTION IN THE VIDEO*\nHerng’s Playbook - https://hernglee.gumroad.com/l/slide-science\nMy free Workspace Toolkit - https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=158\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googleslides #powerpoint", "10 Years of Google Presentation Advice in 10 Minutes", "0347f7d6-7532-43f2-a081-54a1fbb4c0f6", false, "qcis85AStL4", 1, [], 545, false, "https://www.youtube.com/watch?v=qcis85AStL4", 45, "/downloads/Jeff Su/2024-04-30 10 Years of Google Presentation Advice in 10 Minutes/10 Years of Google Presentation Advice in 10 Minutes [qcis85AStL4].mp4", false, false, 98, ~U[2024-04-30 13:00:52Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "My free Workspace Toolkit - https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=158\n\nSlides should be a powerful tool, not a boring chore. In this video, I share 10 actionable #presentation tips from Herng Lee - a veteran Strategy & Operations Manager at Google! \n\nYou'll learn:\n\n👀\u00A0How to write headlines that grab attention\n\n📈\u00A0The #1 mistake to avoid in slide structure\n\n💬\u00A0How to make your message persuasive\n\n...and more! Let’s get started 😉\n\n*TIMESTAMPS*\n00:00 How to Write Great Slides\n00:32 Tactic #1\n01:44 Tactic #2\n02:36 Tactic #3\n03:42 Tactic #4\n04:27 Tactic #5\n05:13 Tactic #6\n06:09 Tactic #7\n07:01 Tactic #8\n07:31 Tactic #9\n08:16 Tactic #10\n\n*RESOURCES I MENTION IN THE VIDEO*\nHerng’s Playbook - https://hernglee.gumroad.com/l/slide-science\nMy free Workspace Toolkit - https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=158\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googleslides #powerpoint", "10 Years of Google Presentation Advice in 10 Minutes", "qcis85AStL4", 1, 545, false, "https://www.youtube.com/watch?v=qcis85AStL4", "/downloads/Jeff Su/2024-04-30 10 Years of Google Presentation Advice in 10 Minutes/10 Years of Google Presentation Advice in 10 Minutes [qcis85AStL4].mp4", false, ~U[2024-04-30 13:00:52Z]] 16:58:28.435 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:28.437 [debug] QUERY OK source="media_items" db=0.9ms idle=6.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-16 13:00:58Z], 1] 16:58:28.439 [debug] QUERY OK source="media_items" db=1.6ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=157\n\nI've spent 10+ years refining these Google Workspace templates, and (hopefully) they'll change your work life!\n\nThis video gives you:\n\n📑\u00A0A super flexible Google Docs template\u00A0for notes, meetings, and more\n\n👫\u00A0A team meeting template built on Google Sheets\n\n**🗂️**\u00A0URLs to track your assigned comments\u00A0in Google Drive – never miss a thing!\n\n*TIMESTAMPS*\n00:00 The 3 Google Workspace Templates\n00:27 The Only Notes Template You Need\n03:41 My Team Meeting Notes Template\n05:30 Google Drive Templates for Organization\n06:39 Submit your template requests!\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googleworkspace #productivity #googledocs", "3 Workspace Templates that TRIPLED My Productivity", "0a2dfa0e-6272-49dd-b8b6-4ffd96c73e0a", false, "v0NjRqblySI", 1, [], 412, false, "https://www.youtube.com/watch?v=v0NjRqblySI", 46, "/downloads/Jeff Su/2024-04-16 3 Workspace Templates that TRIPLED My Productivity/3 Workspace Templates that TRIPLED My Productivity [v0NjRqblySI].mp4", false, false, 98, ~U[2024-04-16 13:00:58Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=157\n\nI've spent 10+ years refining these Google Workspace templates, and (hopefully) they'll change your work life!\n\nThis video gives you:\n\n📑\u00A0A super flexible Google Docs template\u00A0for notes, meetings, and more\n\n👫\u00A0A team meeting template built on Google Sheets\n\n**🗂️**\u00A0URLs to track your assigned comments\u00A0in Google Drive – never miss a thing!\n\n*TIMESTAMPS*\n00:00 The 3 Google Workspace Templates\n00:27 The Only Notes Template You Need\n03:41 My Team Meeting Notes Template\n05:30 Google Drive Templates for Organization\n06:39 Submit your template requests!\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googleworkspace #productivity #googledocs", "3 Workspace Templates that TRIPLED My Productivity", "v0NjRqblySI", 1, 412, false, "https://www.youtube.com/watch?v=v0NjRqblySI", "/downloads/Jeff Su/2024-04-16 3 Workspace Templates that TRIPLED My Productivity/3 Workspace Templates that TRIPLED My Productivity [v0NjRqblySI].mp4", false, ~U[2024-04-16 13:00:58Z]] 16:58:28.440 [debug] QUERY OK source="sources" db=0.3ms idle=7.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.441 [debug] QUERY OK source="media_items" db=0.9ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-02 13:00:33Z], 1] 16:58:28.444 [debug] QUERY OK source="media_items" db=1.6ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=156\n\nThe hardest part of creating #presentations from scratch is the initial brainstorming phase so in this video let’s go over how to use #ChatGPT to structure a strong presentation outline in minutes! \n\nWe’ll use a topic one of you submitted a month ago to show this method works for any type of presentation and we’ll even go over how to use ChatGPT to write Google Apps Scripts for automatic slide generation in Google Slides.\n\n*TIMESTAMPS*\n00:00 Life-Changing ChatGPT tip for Google Slides\n00:35 Craft a Presentation Outline with ChatGPT\n03:16 Use ChatGPT to Generate Google Apps Script\n05:14 Import Theme and Apply Layouts\n06:38 Pro Tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload my Google Slides template - https://www.jeffsu.org/build-amazing-presentations-in-minutes-with-chatgpt\nMake a copy of my presentation prompt - https://www.jeffsu.org/build-amazing-presentations-in-minutes-with-chatgpt\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity", "A GENIUS Way to use ChatGPT for Presentations!", "ba267555-dbc6-4b39-898f-6ac3792084f4", false, "_9pKAG_XabM", 1, [], 458, false, "https://www.youtube.com/watch?v=_9pKAG_XabM", 47, "/downloads/Jeff Su/2024-04-02 A GENIUS Way to use ChatGPT for Presentations!/A GENIUS Way to use ChatGPT for Presentations! [_9pKAG_XabM].mp4", false, false, 98, ~U[2024-04-02 13:00:33Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=156\n\nThe hardest part of creating #presentations from scratch is the initial brainstorming phase so in this video let’s go over how to use #ChatGPT to structure a strong presentation outline in minutes! \n\nWe’ll use a topic one of you submitted a month ago to show this method works for any type of presentation and we’ll even go over how to use ChatGPT to write Google Apps Scripts for automatic slide generation in Google Slides.\n\n*TIMESTAMPS*\n00:00 Life-Changing ChatGPT tip for Google Slides\n00:35 Craft a Presentation Outline with ChatGPT\n03:16 Use ChatGPT to Generate Google Apps Script\n05:14 Import Theme and Apply Layouts\n06:38 Pro Tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload my Google Slides template - https://www.jeffsu.org/build-amazing-presentations-in-minutes-with-chatgpt\nMake a copy of my presentation prompt - https://www.jeffsu.org/build-amazing-presentations-in-minutes-with-chatgpt\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my newsletter - https://www.jeffsu.org/newsletter\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity", "A GENIUS Way to use ChatGPT for Presentations!", "_9pKAG_XabM", 1, 458, false, "https://www.youtube.com/watch?v=_9pKAG_XabM", "/downloads/Jeff Su/2024-04-02 A GENIUS Way to use ChatGPT for Presentations!/A GENIUS Way to use ChatGPT for Presentations! [_9pKAG_XabM].mp4", false, ~U[2024-04-02 13:00:33Z]] 16:58:28.445 [debug] QUERY OK source="sources" db=0.3ms idle=7.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.446 [debug] QUERY OK source="media_items" db=0.9ms idle=6.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-19 13:00:05Z], 1] 16:58:28.450 [debug] QUERY OK source="media_items" db=3.0ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=155\n\n🔍\u00A0Use Teal’s free Resume Builder here: https://shrsl.com/4gg9k\n\nDiscover how #ChatGPT can streamline your job search! In this video, I share the top 5 BEST ways to use ChatGPT as a job seeker, and expose the hyped-up use cases that will only waste your time.\n\nYou'll learn how to:\n\n*📖\u00A0Research companies effectively*\u00A0while avoiding misleading prompts\n\n*📝\u00A0Write compelling cover letters*\u00A0with the \"chain of thought\" technique\n\n*💼\u00A0Tailor your resume*\u00A0for specific roles using AI\n\n*✍🏻\u00A0Craft an attention-grabbing LinkedIn headline*\u00A0by \"stealing with pride\"\n\n*💬\u00A0Get expert feedback on your resume*\u00A0based on proven best practices\n\n*TIMESTAMPS*\n00:00 The Worst ChatGPT Use Case for Job Search\n00:22 Use Case #1\n01:02 Use Case #2\n03:25 Use Case #3\n04:25 Use Case #4\n05:51 Use Case #5\n07:02 Bonus Tip for Job Seekers\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload my prompts for free - https://www.jeffsu.org/chatgpt-for-job-seekers-best-and-worst-use-cases\nBuy my premium resume package - https://jeffsu.gumroad.com/l/premium-resume-package\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #resumetips", "Top 5 ChatGPT Prompts for Job Seekers!", "3346cb59-8755-447e-9bdf-cf7a499a6c77", false, "2uN8PTXMY5c", 1, [], 491, false, "https://www.youtube.com/watch?v=2uN8PTXMY5c", 48, "/downloads/Jeff Su/2024-03-19 Top 5 ChatGPT Prompts for Job Seekers!/Top 5 ChatGPT Prompts for Job Seekers! [2uN8PTXMY5c].mp4", false, false, 98, ~U[2024-03-19 13:00:05Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=155\n\n🔍\u00A0Use Teal’s free Resume Builder here: https://shrsl.com/4gg9k\n\nDiscover how #ChatGPT can streamline your job search! In this video, I share the top 5 BEST ways to use ChatGPT as a job seeker, and expose the hyped-up use cases that will only waste your time.\n\nYou'll learn how to:\n\n*📖\u00A0Research companies effectively*\u00A0while avoiding misleading prompts\n\n*📝\u00A0Write compelling cover letters*\u00A0with the \"chain of thought\" technique\n\n*💼\u00A0Tailor your resume*\u00A0for specific roles using AI\n\n*✍🏻\u00A0Craft an attention-grabbing LinkedIn headline*\u00A0by \"stealing with pride\"\n\n*💬\u00A0Get expert feedback on your resume*\u00A0based on proven best practices\n\n*TIMESTAMPS*\n00:00 The Worst ChatGPT Use Case for Job Search\n00:22 Use Case #1\n01:02 Use Case #2\n03:25 Use Case #3\n04:25 Use Case #4\n05:51 Use Case #5\n07:02 Bonus Tip for Job Seekers\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload my prompts for free - https://www.jeffsu.org/chatgpt-for-job-seekers-best-and-worst-use-cases\nBuy my premium resume package - https://jeffsu.gumroad.com/l/premium-resume-package\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #resumetips", "Top 5 ChatGPT Prompts for Job Seekers!", "2uN8PTXMY5c", 1, 491, false, "https://www.youtube.com/watch?v=2uN8PTXMY5c", "/downloads/Jeff Su/2024-03-19 Top 5 ChatGPT Prompts for Job Seekers!/Top 5 ChatGPT Prompts for Job Seekers! [2uN8PTXMY5c].mp4", false, ~U[2024-03-19 13:00:05Z]] 16:58:28.451 [debug] QUERY OK source="sources" db=0.3ms idle=9.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.452 [debug] QUERY OK source="media_items" db=0.8ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-05 13:00:17Z], 1] 16:58:28.455 [debug] QUERY OK source="media_items" db=1.9ms idle=8.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📝\u00A0Download and use #grammarly for free: http://grammarly.com/jeffsu\n\nAs a part-time Youtuber, I used to think my corporate job was holding me back. \n\nTurns out, the 4 key skills that play a critical role in my success as a part-time content creator could only have been developed in my 9 to 5!\n\n1️⃣\u00A0Master storytelling with the SCQA framework\n2️⃣\u00A0Get to the point with the BLUF technique\n3️⃣\u00A0Your network is…your net worth\n4️⃣\u00A0Systems = Success\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 The Truth about Full-Time Jobs\n00:40 Unfair Advantage #1\n02:22 Unfair Advantage #2\n04:21 Unfair Advantage #3\n05:33 Unfair Advantage #4\n07:30 Real Talk from Jeff\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy SCQA Framework video: https://youtu.be/nuosoMyf0eA\nMake a copy of my Executive Summary slide: https://www.jeffsu.org/the-truth-about-full-time-jobs-when-you-have-a-side-hustle\nSign up for the Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#corporatedrone #contentcreation", "The Truth about Full-Time Jobs (when you have a side hustle)", "b6eee68c-821c-4dc6-b67b-eddd47f1d315", false, "BE-p6965TmE", 1, [], 474, false, "https://www.youtube.com/watch?v=BE-p6965TmE", 49, "/downloads/Jeff Su/2024-03-05 The Truth about Full-Time Jobs (when you have a side hustle)/The Truth about Full-Time Jobs (when you have a side hustle) [BE-p6965TmE].mp4", false, false, 98, ~U[2024-03-05 13:00:17Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "📝\u00A0Download and use #grammarly for free: http://grammarly.com/jeffsu\n\nAs a part-time Youtuber, I used to think my corporate job was holding me back. \n\nTurns out, the 4 key skills that play a critical role in my success as a part-time content creator could only have been developed in my 9 to 5!\n\n1️⃣\u00A0Master storytelling with the SCQA framework\n2️⃣\u00A0Get to the point with the BLUF technique\n3️⃣\u00A0Your network is…your net worth\n4️⃣\u00A0Systems = Success\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 The Truth about Full-Time Jobs\n00:40 Unfair Advantage #1\n02:22 Unfair Advantage #2\n04:21 Unfair Advantage #3\n05:33 Unfair Advantage #4\n07:30 Real Talk from Jeff\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy SCQA Framework video: https://youtu.be/nuosoMyf0eA\nMake a copy of my Executive Summary slide: https://www.jeffsu.org/the-truth-about-full-time-jobs-when-you-have-a-side-hustle\nSign up for the Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#corporatedrone #contentcreation", "The Truth about Full-Time Jobs (when you have a side hustle)", "BE-p6965TmE", 1, 474, false, "https://www.youtube.com/watch?v=BE-p6965TmE", "/downloads/Jeff Su/2024-03-05 The Truth about Full-Time Jobs (when you have a side hustle)/The Truth about Full-Time Jobs (when you have a side hustle) [BE-p6965TmE].mp4", false, ~U[2024-03-05 13:00:17Z]] 16:58:28.456 [debug] QUERY OK source="sources" db=0.3ms idle=9.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.457 [debug] QUERY OK source="media_items" db=0.8ms idle=6.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-20 13:00:36Z], 1] 16:58:28.460 [debug] QUERY OK source="media_items" db=1.7ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=153\n\nYou can make a copy of the template here: https://www.jeffsu.org/get-started-with-notion-without-losing-your-mind\n\nThis is *the* essential beginner’s tutorial for Notion Newbies.\n\nLearn how to build a simple yet powerful dashboard to organize your life. In just minutes, you'll master Notion databases, create customized views, and streamline your tasks and notes.\n\nWe will cover: Notion basics, Databases 101, Custom views and Templates.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Get Started with Notion in 15 min\n00:26 Create LifeOS home screen\n01:06 Create Tasks Database\n04:31 Create Notes Database\n07:03 Build Command Center dashboard\n13:12 Must-know Notion feature\n15:39 Bonus tip for Beginners\n\n*RESOURCES I MENTION IN THE VIDEO*\nPlan a Production Week in Notion - https://youtu.be/XXYfRgXTEE0\nIntro to AI video - https://youtu.be/Yq0QkCxoTHM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notionhq #notion #productivity", "How to Get Started with Notion (without losing your mind)", "81241472-641d-473e-b687-ac69d1209e38", false, "cYbcgtK0v_Q", 1, [], 1095, false, "https://www.youtube.com/watch?v=cYbcgtK0v_Q", 50, "/downloads/Jeff Su/2024-02-20 How to Get Started with Notion (without losing your mind)/How to Get Started with Notion (without losing your mind) [cYbcgtK0v_Q].mp4", false, false, 98, ~U[2024-02-20 13:00:36Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=153\n\nYou can make a copy of the template here: https://www.jeffsu.org/get-started-with-notion-without-losing-your-mind\n\nThis is *the* essential beginner’s tutorial for Notion Newbies.\n\nLearn how to build a simple yet powerful dashboard to organize your life. In just minutes, you'll master Notion databases, create customized views, and streamline your tasks and notes.\n\nWe will cover: Notion basics, Databases 101, Custom views and Templates.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Get Started with Notion in 15 min\n00:26 Create LifeOS home screen\n01:06 Create Tasks Database\n04:31 Create Notes Database\n07:03 Build Command Center dashboard\n13:12 Must-know Notion feature\n15:39 Bonus tip for Beginners\n\n*RESOURCES I MENTION IN THE VIDEO*\nPlan a Production Week in Notion - https://youtu.be/XXYfRgXTEE0\nIntro to AI video - https://youtu.be/Yq0QkCxoTHM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notionhq #notion #productivity", "How to Get Started with Notion (without losing your mind)", "cYbcgtK0v_Q", 1, 1095, false, "https://www.youtube.com/watch?v=cYbcgtK0v_Q", "/downloads/Jeff Su/2024-02-20 How to Get Started with Notion (without losing your mind)/How to Get Started with Notion (without losing your mind) [cYbcgtK0v_Q].mp4", false, ~U[2024-02-20 13:00:36Z]] 16:58:28.461 [debug] QUERY OK source="sources" db=0.3ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.462 [debug] QUERY OK source="media_items" db=0.8ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-06 13:00:34Z], 1] 16:58:28.464 [debug] QUERY OK source="media_items" db=1.7ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=152\n\nYou’re using #ChatGPT wrong but it’s not your fault.\n\nIn this video, we dive into the top 5 mistakes users make with ChatGPT and offer practical solutions to use this #generativeAI chatbot more effectively.\n\nFrom over-specific custom instructions to underutilizing ChatGPT for automation and beyond, we uncover common pitfalls and how to avoid them.\n\nWhether you're a tech enthusiast, a productivity seeker, or someone curious about leveraging AI more efficiently, this video is packed with actionable advice to revolutionize how you use ChatGPT. \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why you’re using ChatGPT wrong\n00:20 Mistake #1\n02:41 Mistake #2\n04:55 Mistake #3\n06:19 Mistake #4\n08:25 Mistake #5\n\n*RESOURCES I MENTION IN THE VIDEO*\nMaster the Perfect Prompt Formula - https://youtu.be/jC4v5AS4RIM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity", "You’re using ChatGPT wrong", "f347a4ec-6acd-44b6-9696-29d5dd008104", false, "Y35EHDRNUeo", 1, [], 570, false, "https://www.youtube.com/watch?v=Y35EHDRNUeo", 51, "/downloads/Jeff Su/2024-02-06 You’re using ChatGPT wrong/You’re using ChatGPT wrong [Y35EHDRNUeo].mp4", false, false, 98, ~U[2024-02-06 13:00:34Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=152\n\nYou’re using #ChatGPT wrong but it’s not your fault.\n\nIn this video, we dive into the top 5 mistakes users make with ChatGPT and offer practical solutions to use this #generativeAI chatbot more effectively.\n\nFrom over-specific custom instructions to underutilizing ChatGPT for automation and beyond, we uncover common pitfalls and how to avoid them.\n\nWhether you're a tech enthusiast, a productivity seeker, or someone curious about leveraging AI more efficiently, this video is packed with actionable advice to revolutionize how you use ChatGPT. \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why you’re using ChatGPT wrong\n00:20 Mistake #1\n02:41 Mistake #2\n04:55 Mistake #3\n06:19 Mistake #4\n08:25 Mistake #5\n\n*RESOURCES I MENTION IN THE VIDEO*\nMaster the Perfect Prompt Formula - https://youtu.be/jC4v5AS4RIM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n💼\u00A0Teal - http://tealhq.co/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity", "You’re using ChatGPT wrong", "Y35EHDRNUeo", 1, 570, false, "https://www.youtube.com/watch?v=Y35EHDRNUeo", "/downloads/Jeff Su/2024-02-06 You’re using ChatGPT wrong/You’re using ChatGPT wrong [Y35EHDRNUeo].mp4", false, ~U[2024-02-06 13:00:34Z]] 16:58:28.465 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:28.466 [debug] QUERY OK source="media_items" db=0.8ms idle=6.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-23 13:00:35Z], 1] 16:58:28.469 [debug] QUERY OK source="media_items" db=2.0ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=151\n\nDive into the world of #googlegemini with this full tutorial! I'm uncovering the best settings, features, and hidden gems to help you get more done in less time with this extremely powerful (and free) generative AI tool! \n\nHighlights include:\n\n📧 **Gmail Integration:** Discover how Google Gemini simplifies email searches. Say goodbye to tedious manual searches and hello to efficient email management with Gemini commands\n\n🖼️ **Image Analysis & Data Conversion:** Transform images and data with Gemini's advanced features. From distilling key takeaways from charts to converting non-editable tables into Google Spreadsheets, Gemini is your go-to tool\n\n💡 **Tips & Tricks:** Get pro tips for enhancing your Gemini experience, including using default prompt structures, customizing responses, and effectively using voice commands\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Correct settings for Google Gemini\n00:52 Access Gmail with Google Gemini\n01:42 Access Google Drive with Gemini\n02:20 Use Google Docs with Gemini\n03:14 Analyze Files and Data with Google Gemini\n05:00 Upload PDFs onto Google Gemini\n05:51 Google Gemini’s Youtube Vision feature\n07:13 Gemini’s user-friendly features\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle’s AI Course for Beginners: https://youtu.be/Yq0QkCxoTHM\nTop 8 ChatGPT Productivity Tips for Work: https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googlebard #tutorial", "The CORRECT way to use Google Gemini", "b8576328-cc1a-4b22-95c1-202806e1c00b", false, "cTYRwJSOP8U", 1, [], 597, false, "https://www.youtube.com/watch?v=cTYRwJSOP8U", 52, "/downloads/Jeff Su/2024-01-23 The CORRECT way to use Google Gemini/The CORRECT way to use Google Gemini [cTYRwJSOP8U].mp4", false, false, 98, ~U[2024-01-23 13:00:35Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=151\n\nDive into the world of #googlegemini with this full tutorial! I'm uncovering the best settings, features, and hidden gems to help you get more done in less time with this extremely powerful (and free) generative AI tool! \n\nHighlights include:\n\n📧 **Gmail Integration:** Discover how Google Gemini simplifies email searches. Say goodbye to tedious manual searches and hello to efficient email management with Gemini commands\n\n🖼️ **Image Analysis & Data Conversion:** Transform images and data with Gemini's advanced features. From distilling key takeaways from charts to converting non-editable tables into Google Spreadsheets, Gemini is your go-to tool\n\n💡 **Tips & Tricks:** Get pro tips for enhancing your Gemini experience, including using default prompt structures, customizing responses, and effectively using voice commands\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Correct settings for Google Gemini\n00:52 Access Gmail with Google Gemini\n01:42 Access Google Drive with Gemini\n02:20 Use Google Docs with Gemini\n03:14 Analyze Files and Data with Google Gemini\n05:00 Upload PDFs onto Google Gemini\n05:51 Google Gemini’s Youtube Vision feature\n07:13 Gemini’s user-friendly features\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle’s AI Course for Beginners: https://youtu.be/Yq0QkCxoTHM\nTop 8 ChatGPT Productivity Tips for Work: https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googlebard #tutorial", "The CORRECT way to use Google Gemini", "cTYRwJSOP8U", 1, 597, false, "https://www.youtube.com/watch?v=cTYRwJSOP8U", "/downloads/Jeff Su/2024-01-23 The CORRECT way to use Google Gemini/The CORRECT way to use Google Gemini [cTYRwJSOP8U].mp4", false, ~U[2024-01-23 13:00:35Z]] 16:58:28.470 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:28.471 [debug] QUERY OK source="media_items" db=0.8ms idle=6.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-09 13:00:24Z], 1] 16:58:28.475 [debug] QUERY OK source="media_items" db=2.1ms idle=6.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=150\n\n🔍\u00A0Use Teal’s free job tracker tool here: https://get.tealhq.com/jeffsu\n\nAre you gearing up for a job #interview and feeling overwhelmed by the endless list of potential questions?\n\nIn this video, I share the only two frameworks you need to ace all behavioral and situational interview questions you’ll come across!\n\n🔹 **Unlocking the CARL Framework:** Learn how to use Context, Action, Results, and Learning method to craft compelling answers to behavioral questions. \n\n🔹 **Navigating Situational Questions with RCS:** Discover the fool-proof RCS framework - Rephrase, Clarify, and Structure - to tackle hypothetical scenarios with confidence. Understand why it's not just about the answer, but how you approach the question.\n\n🔸 **ChatGPT Prompts:** Don't miss the exclusive ChatGPT prompts I share to fast-track your interview prep.\n\n🔸 **Finding Relevant Questions:** Finally, learn how to identify role-specific interview questions with ChatGPT and prepare using our frameworks.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How to Pass 99% of Interviews\n00:32 Recap: Behavioral vs. Situational\n01:13 Framework for Behavioral Interview Questions\n03:31 Framework for Situational Interview Questions\n05:12 Find Role-specific Interview Questions\n\n*RESOURCES I MENTION IN THE VIDEO*\nMake a copy of my prompts - https://www.jeffsu.org/pass-behavioral-situational-interview-questions\n\nTeal’s free job tracker tool - http://shrsl.com/4da2e\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #chatgpt", "You’re Not Unqualified: How to Pass 90% of Your Interviews", "0aa933f6-df26-41b9-b6f3-5552505a482b", false, "QrmDmQ7ZivM", 1, [], 361, false, "https://www.youtube.com/watch?v=QrmDmQ7ZivM", 53, "/downloads/Jeff Su/2024-01-09 You’re Not Unqualified: How to Pass 90% of Your Interviews/You’re Not Unqualified: How to Pass 90% of Your Interviews [QrmDmQ7ZivM].mp4", false, false, 98, ~U[2024-01-09 13:00:24Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=150\n\n🔍\u00A0Use Teal’s free job tracker tool here: https://get.tealhq.com/jeffsu\n\nAre you gearing up for a job #interview and feeling overwhelmed by the endless list of potential questions?\n\nIn this video, I share the only two frameworks you need to ace all behavioral and situational interview questions you’ll come across!\n\n🔹 **Unlocking the CARL Framework:** Learn how to use Context, Action, Results, and Learning method to craft compelling answers to behavioral questions. \n\n🔹 **Navigating Situational Questions with RCS:** Discover the fool-proof RCS framework - Rephrase, Clarify, and Structure - to tackle hypothetical scenarios with confidence. Understand why it's not just about the answer, but how you approach the question.\n\n🔸 **ChatGPT Prompts:** Don't miss the exclusive ChatGPT prompts I share to fast-track your interview prep.\n\n🔸 **Finding Relevant Questions:** Finally, learn how to identify role-specific interview questions with ChatGPT and prepare using our frameworks.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How to Pass 99% of Interviews\n00:32 Recap: Behavioral vs. Situational\n01:13 Framework for Behavioral Interview Questions\n03:31 Framework for Situational Interview Questions\n05:12 Find Role-specific Interview Questions\n\n*RESOURCES I MENTION IN THE VIDEO*\nMake a copy of my prompts - https://www.jeffsu.org/pass-behavioral-situational-interview-questions\n\nTeal’s free job tracker tool - http://shrsl.com/4da2e\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #chatgpt", "You’re Not Unqualified: How to Pass 90% of Your Interviews", "QrmDmQ7ZivM", 1, 361, false, "https://www.youtube.com/watch?v=QrmDmQ7ZivM", "/downloads/Jeff Su/2024-01-09 You’re Not Unqualified: How to Pass 90% of Your Interviews/You’re Not Unqualified: How to Pass 90% of Your Interviews [QrmDmQ7ZivM].mp4", false, ~U[2024-01-09 13:00:24Z]] 16:58:28.475 [debug] QUERY OK source="sources" db=0.3ms idle=8.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.477 [debug] QUERY OK source="media_items" db=0.8ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-26 13:00:26Z], 1] 16:58:28.480 [debug] QUERY OK source="media_items" db=1.8ms idle=7.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["As a busy working professional juggling a full-time job and a YouTube channel, I actually DO NOT follow many of the “best practices” productivity creators have been sharing.\n\nIn this video, I share 8 crucial mistakes to avoid and offer practical tips for effective time management!\n\nFor example, learn why I prefer the Highlight Method from 'Make Time' over complex time blocking; and discover shortcuts to quickly create events in Google Calendar, like using 'cal.new' in the browser and integrating with app launchers like Alfred and Powertoy Run.\n\n🌟 Pro Tips Included: Throughout the video, I sprinkle in pro tips to enhance your Google Calendar experience.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Mistake #1\n00:59 Mistake #2 \n02:45 Mistake #3\n04:01 Mistake #4\n04:49 Mistake #5\n05:02 Mistake #6\n06:16 Mistake #7\n07:02 Mistake #8\n\n*RESOURCES I MENTION IN THE VIDEO*\nMeeting Audit Spreadsheet - https://www.jeffsu.org/8-calendar-mistakes-to-avoid-for-working-professionals\nInbox Zero for Outlook - https://youtu.be/U8LKXbUxf-M\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googlecalendar #productivity #timemanagement", "8 Calendar Mistakes to Avoid (for busy people)!", "5beac910-93ac-4ec4-a732-87fad16eed34", false, "cwT7k5oBqBs", 1, [], 515, false, "https://www.youtube.com/watch?v=cwT7k5oBqBs", 54, "/downloads/Jeff Su/2023-12-26 8 Calendar Mistakes to Avoid (for busy people)!/8 Calendar Mistakes to Avoid (for busy people)! [cwT7k5oBqBs].mp4", false, false, 98, ~U[2023-12-26 13:00:26Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "As a busy working professional juggling a full-time job and a YouTube channel, I actually DO NOT follow many of the “best practices” productivity creators have been sharing.\n\nIn this video, I share 8 crucial mistakes to avoid and offer practical tips for effective time management!\n\nFor example, learn why I prefer the Highlight Method from 'Make Time' over complex time blocking; and discover shortcuts to quickly create events in Google Calendar, like using 'cal.new' in the browser and integrating with app launchers like Alfred and Powertoy Run.\n\n🌟 Pro Tips Included: Throughout the video, I sprinkle in pro tips to enhance your Google Calendar experience.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Mistake #1\n00:59 Mistake #2 \n02:45 Mistake #3\n04:01 Mistake #4\n04:49 Mistake #5\n05:02 Mistake #6\n06:16 Mistake #7\n07:02 Mistake #8\n\n*RESOURCES I MENTION IN THE VIDEO*\nMeeting Audit Spreadsheet - https://www.jeffsu.org/8-calendar-mistakes-to-avoid-for-working-professionals\nInbox Zero for Outlook - https://youtu.be/U8LKXbUxf-M\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#googlecalendar #productivity #timemanagement", "8 Calendar Mistakes to Avoid (for busy people)!", "cwT7k5oBqBs", 1, 515, false, "https://www.youtube.com/watch?v=cwT7k5oBqBs", "/downloads/Jeff Su/2023-12-26 8 Calendar Mistakes to Avoid (for busy people)!/8 Calendar Mistakes to Avoid (for busy people)! [cwT7k5oBqBs].mp4", false, ~U[2023-12-26 13:00:26Z]] 16:58:28.480 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.482 [debug] QUERY OK source="media_items" db=0.8ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-12 13:00:22Z], 1] 16:58:28.484 [debug] QUERY OK source="media_items" db=1.6ms idle=6.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["💻\u00A0We’ve received a LOT of #MacOS updates recently so here are the top 10 #productivity tips that I actually use on a daily basis!\n\nWe cover topics ranging from filtering results within Spotlight and performing Google Search directly from the desktop, to using web apps the correct way, all the way to Airdrop and Apple Notes best practices.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 10 Productivity Tips for the Mac\n00:10 Spotlight search operators\n00:49 Search the web with Spotlight\n01:02 Spotlight shortcuts\n01:22 Spotlight settings for productivity\n01:50 Webapp workflow\n02:38 Safari settings for productivity\n03:01 Add Airdrop to Finder\n03:30 Free Airdrop alternative\n04:17 How to use Apple Notes productively\n05:10 Apple Notes settings for productivity\n05:35 3 Bonus Settings for productivity\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Mac Shortcuts video - https://youtu.be/PIGraFbLEvY\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#macbookpro", "Top 10 BEST Macbook Tips for Productivity!", "1113fda2-d462-4d2f-a762-fd4dbe368b79", false, "YFHqEM4g_Hc", 1, [], 385, false, "https://www.youtube.com/watch?v=YFHqEM4g_Hc", 55, "/downloads/Jeff Su/2023-12-12 Top 10 BEST Macbook Tips for Productivity!/Top 10 BEST Macbook Tips for Productivity! [YFHqEM4g_Hc].mp4", false, false, 98, ~U[2023-12-12 13:00:22Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "💻\u00A0We’ve received a LOT of #MacOS updates recently so here are the top 10 #productivity tips that I actually use on a daily basis!\n\nWe cover topics ranging from filtering results within Spotlight and performing Google Search directly from the desktop, to using web apps the correct way, all the way to Airdrop and Apple Notes best practices.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 10 Productivity Tips for the Mac\n00:10 Spotlight search operators\n00:49 Search the web with Spotlight\n01:02 Spotlight shortcuts\n01:22 Spotlight settings for productivity\n01:50 Webapp workflow\n02:38 Safari settings for productivity\n03:01 Add Airdrop to Finder\n03:30 Free Airdrop alternative\n04:17 How to use Apple Notes productively\n05:10 Apple Notes settings for productivity\n05:35 3 Bonus Settings for productivity\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Mac Shortcuts video - https://youtu.be/PIGraFbLEvY\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#macbookpro", "Top 10 BEST Macbook Tips for Productivity!", "YFHqEM4g_Hc", 1, 385, false, "https://www.youtube.com/watch?v=YFHqEM4g_Hc", "/downloads/Jeff Su/2023-12-12 Top 10 BEST Macbook Tips for Productivity!/Top 10 BEST Macbook Tips for Productivity! [YFHqEM4g_Hc].mp4", false, ~U[2023-12-12 13:00:22Z]] 16:58:28.485 [debug] QUERY OK source="sources" db=0.3ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.486 [debug] QUERY OK source="media_items" db=0.8ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-28 13:00:12Z], 1] 16:58:28.489 [debug] QUERY OK source="media_items" db=1.9ms idle=6.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=147\n\n📝 Make a copy of the Master Notes Database: https://www.jeffsu.org/my-simple-notes-management-system-for-notion\n\nIn this video, I go over my unique approach to managing a master notes database in Notion, whereby only relevant notes are surfaced when I need them, thus ensuring I never lose track of important information. \n\nSpecifically, I go over how to create and manage a master notes database in Notion.\n\nWe then utilize different database views to surface only relevant notes for your projects.\n\nWe rely on integrating Notion’s relation properties to connect your notes to projects, areas, and resources.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How I Manage My Notes in Notion\n00:35 Overview of Notion Notes System\n01:23 My Notes Template in Notion\n03:45 My Workflow for Taking Notes\n05:42 Tip for Advanced Notion Users\n\n*RESOURCES I MENTION IN THE VIDEO*\nThomas Frank's Relations tutorial - https://youtu.be/mAJOpO73d8Y?t=1443\nSave to Notion extension - https://www.youtube.com/watch?v=diK9dZulkAs\nMy Daily Agenda Planner for Notion - https://youtu.be/XXYfRgXTEE0\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notionhq #productivity #notetaking", "This Simple Notes Management System Changed My Life!", "2e22858b-893a-4474-8f43-d7a46640cfd2", false, "HT0jiQLT98Y", 1, [], 427, false, "https://www.youtube.com/watch?v=HT0jiQLT98Y", 56, "/downloads/Jeff Su/2023-11-28 This Simple Notes Management System Changed My Life!/This Simple Notes Management System Changed My Life! [HT0jiQLT98Y].mp4", false, false, 98, ~U[2023-11-28 13:00:12Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=147\n\n📝 Make a copy of the Master Notes Database: https://www.jeffsu.org/my-simple-notes-management-system-for-notion\n\nIn this video, I go over my unique approach to managing a master notes database in Notion, whereby only relevant notes are surfaced when I need them, thus ensuring I never lose track of important information. \n\nSpecifically, I go over how to create and manage a master notes database in Notion.\n\nWe then utilize different database views to surface only relevant notes for your projects.\n\nWe rely on integrating Notion’s relation properties to connect your notes to projects, areas, and resources.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How I Manage My Notes in Notion\n00:35 Overview of Notion Notes System\n01:23 My Notes Template in Notion\n03:45 My Workflow for Taking Notes\n05:42 Tip for Advanced Notion Users\n\n*RESOURCES I MENTION IN THE VIDEO*\nThomas Frank's Relations tutorial - https://youtu.be/mAJOpO73d8Y?t=1443\nSave to Notion extension - https://www.youtube.com/watch?v=diK9dZulkAs\nMy Daily Agenda Planner for Notion - https://youtu.be/XXYfRgXTEE0\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notionhq #productivity #notetaking", "This Simple Notes Management System Changed My Life!", "HT0jiQLT98Y", 1, 427, false, "https://www.youtube.com/watch?v=HT0jiQLT98Y", "/downloads/Jeff Su/2023-11-28 This Simple Notes Management System Changed My Life!/This Simple Notes Management System Changed My Life! [HT0jiQLT98Y].mp4", false, ~U[2023-11-28 13:00:12Z]] 16:58:28.490 [debug] QUERY OK source="sources" db=0.3ms idle=7.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.491 [debug] QUERY OK source="media_items" db=0.9ms idle=6.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-14 13:00:33Z], 1] 16:58:28.494 [debug] QUERY OK source="media_items" db=2.1ms idle=6.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\n🔍 In this video, we unravel the layers of AI, Machine Learning, Deep Learning, and their applications in tools like #ChatGPT and Google #Bard\n\nWe first go through how AI is a broad field of study that encompasses #MachineLearning as a sub-field.\n\nWe then break down Machine Learning into supervised and unsupervised models, using real-world examples to illustrate their functions and differences.\n\nWe move deeper into Deep Learning: Learn about artificial neural networks and the power of semi-supervised learning in applications like fraud detection in banking.\n\nThen we delve into Generative AI, differentiating it from discriminative models and demonstrating its capabilities in creating new, innovative outputs.\n\nFinally we walk through Large Language Models (LLMs) and uncover the significance of LLMs in AI, their pre-training processes, and their customization for specific industry applications\n\n*TIMESTAMPS*\n00:00 Google’s AI Course in 10 Minutes\n00:38 What is Artificial Intelligence?\n01:27 What is Machine Learning?\n03:28 What is Deep Learning?\n05:15 What is Generative AI?\n07:05 What are Large Language Models?\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle’s full course: https://www.cloudskillsboost.google/course_templates/536\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "Google’s AI Course for Beginners (in 10 minutes)!", "077fad42-0269-4ce9-9f90-ae5b5ab82383", false, "Yq0QkCxoTHM", 1, [], 557, false, "https://www.youtube.com/watch?v=Yq0QkCxoTHM", 57, "/downloads/Jeff Su/2023-11-14 Google’s AI Course for Beginners (in 10 minutes)!/Google’s AI Course for Beginners (in 10 minutes)! [Yq0QkCxoTHM].mp4", false, false, 98, ~U[2023-11-14 13:00:33Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\n🔍 In this video, we unravel the layers of AI, Machine Learning, Deep Learning, and their applications in tools like #ChatGPT and Google #Bard\n\nWe first go through how AI is a broad field of study that encompasses #MachineLearning as a sub-field.\n\nWe then break down Machine Learning into supervised and unsupervised models, using real-world examples to illustrate their functions and differences.\n\nWe move deeper into Deep Learning: Learn about artificial neural networks and the power of semi-supervised learning in applications like fraud detection in banking.\n\nThen we delve into Generative AI, differentiating it from discriminative models and demonstrating its capabilities in creating new, innovative outputs.\n\nFinally we walk through Large Language Models (LLMs) and uncover the significance of LLMs in AI, their pre-training processes, and their customization for specific industry applications\n\n*TIMESTAMPS*\n00:00 Google’s AI Course in 10 Minutes\n00:38 What is Artificial Intelligence?\n01:27 What is Machine Learning?\n03:28 What is Deep Learning?\n05:15 What is Generative AI?\n07:05 What are Large Language Models?\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle’s full course: https://www.cloudskillsboost.google/course_templates/536\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=146\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "Google’s AI Course for Beginners (in 10 minutes)!", "Yq0QkCxoTHM", 1, 557, false, "https://www.youtube.com/watch?v=Yq0QkCxoTHM", "/downloads/Jeff Su/2023-11-14 Google’s AI Course for Beginners (in 10 minutes)!/Google’s AI Course for Beginners (in 10 minutes)! [Yq0QkCxoTHM].mp4", false, ~U[2023-11-14 13:00:33Z]] 16:58:28.495 [debug] QUERY OK source="sources" db=0.3ms idle=8.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:28.496 [debug] QUERY OK source="media_items" db=0.8ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-31 13:00:45Z], 1] 16:58:29.002 [debug] QUERY OK source="media_items" db=504.4ms idle=7.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["When I first started my Youtube channel, I struggled hard to balance my full-time job with this new side gig.\n\nIn this video, I share the 8 critical time management tips that transformed my productivity, helping me juggle my full-time tech role and my YouTube side hustle 😁\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How a Typical Morning Looks\n00:21 9 Time Management Tips\n00:43 Create a God’s Eye View\n01:58 Ticking the Box\n03:33 Anti-McDonald’s Habit\n04:32 Inbox Zero Workflow\n05:27 The Atomic 80/20 Rule\n06:44 Prompt with Intention\n08:24 The Recovery Forecast\n09:16 Capture and Organize\n\n*RESOURCES I MENTION IN THE VIDEO*\nNotion Planner video - https://youtu.be/XXYfRgXTEE0\nInbox Zero for Gmail - https://youtu.be/al1QXFQjq1s\nInbox Zero for Outlook - https://youtu.be/U8LKXbUxf-M\nMaster Prompting video - https://youtu.be/jC4v5AS4RIM\nChatGPT for Productivity - https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#timemanagement #sidehustle #career", "How I Manage My Time - 8 Tips that Changed My Life", "d5b29bb4-a338-42dc-8fd7-9c0c013ad566", false, "lriCkWIHEHs", 1, [], 602, false, "https://www.youtube.com/watch?v=lriCkWIHEHs", 58, "/downloads/Jeff Su/2023-10-31 How I Manage My Time - 8 Tips that Changed My Life/How I Manage My Time - 8 Tips that Changed My Life [lriCkWIHEHs].mp4", false, false, 98, ~U[2023-10-31 13:00:45Z], ~U[2026-04-23 14:58:28Z], ~U[2026-04-23 14:58:28Z], "When I first started my Youtube channel, I struggled hard to balance my full-time job with this new side gig.\n\nIn this video, I share the 8 critical time management tips that transformed my productivity, helping me juggle my full-time tech role and my YouTube side hustle 😁\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How a Typical Morning Looks\n00:21 9 Time Management Tips\n00:43 Create a God’s Eye View\n01:58 Ticking the Box\n03:33 Anti-McDonald’s Habit\n04:32 Inbox Zero Workflow\n05:27 The Atomic 80/20 Rule\n06:44 Prompt with Intention\n08:24 The Recovery Forecast\n09:16 Capture and Organize\n\n*RESOURCES I MENTION IN THE VIDEO*\nNotion Planner video - https://youtu.be/XXYfRgXTEE0\nInbox Zero for Gmail - https://youtu.be/al1QXFQjq1s\nInbox Zero for Outlook - https://youtu.be/U8LKXbUxf-M\nMaster Prompting video - https://youtu.be/jC4v5AS4RIM\nChatGPT for Productivity - https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#timemanagement #sidehustle #career", "How I Manage My Time - 8 Tips that Changed My Life", "lriCkWIHEHs", 1, 602, false, "https://www.youtube.com/watch?v=lriCkWIHEHs", "/downloads/Jeff Su/2023-10-31 How I Manage My Time - 8 Tips that Changed My Life/How I Manage My Time - 8 Tips that Changed My Life [lriCkWIHEHs].mp4", false, ~U[2023-10-31 13:00:45Z]] 16:58:29.003 [debug] QUERY OK source="sources" db=0.8ms queue=0.1ms idle=508.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.005 [debug] QUERY OK source="media_items" db=0.9ms idle=508.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-17 00:00:00Z], 1] 16:58:29.545 [debug] QUERY OK source="media_items" db=539.9ms idle=508.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=144\n\nAre you gearing up for a job #interview and wondering how to ace the \"Tell me about yourself\" question? \n\nDid you know that 33% of interviewers make up their minds within the first 90 seconds? \n\nOr that 46% of #applicants are leveraging AI tools like #ChatGPT for their job search? \n\nIn this video you'll learn a step-by-step method to craft the perfect answer using a real job posting and a framework based on your present, past, and future.\n\nBest of luck 😁\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why “Tell me about yourself” is important\n00:33 The perfect answer to this interview question\n00:45 Step 1 - Analyze job description\n02:16 Step 2 - Present, Past, Future\n03:07 Improve upon ChatGPT’s output\n03:24 Present\n04:20 Past\n04:32 Future\n05:16 Bonus Tip!\n\n*RESOURCES I MENTION IN THE VIDEO*\nMake a copy of the prompts: https://www.jeffsu.org/tell-me-about-yourself-using-chatgpt/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "Tell Me About Yourself (The BEST Way to Answer this Interview Question)", "bd6a7449-d611-4443-b78a-c8caa4dff0a0", false, "jZJKb-obz1E", 1, [], 349, false, "https://www.youtube.com/watch?v=jZJKb-obz1E", 59, "/downloads/Jeff Su/2023-10-17 Tell Me About Yourself (The BEST Way to Answer this Interview Question)/Tell Me About Yourself (The BEST Way to Answer this Interview Question) [jZJKb-obz1E].mp4", false, false, 98, ~U[2023-10-17 00:00:00Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=144\n\nAre you gearing up for a job #interview and wondering how to ace the \"Tell me about yourself\" question? \n\nDid you know that 33% of interviewers make up their minds within the first 90 seconds? \n\nOr that 46% of #applicants are leveraging AI tools like #ChatGPT for their job search? \n\nIn this video you'll learn a step-by-step method to craft the perfect answer using a real job posting and a framework based on your present, past, and future.\n\nBest of luck 😁\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why “Tell me about yourself” is important\n00:33 The perfect answer to this interview question\n00:45 Step 1 - Analyze job description\n02:16 Step 2 - Present, Past, Future\n03:07 Improve upon ChatGPT’s output\n03:24 Present\n04:20 Past\n04:32 Future\n05:16 Bonus Tip!\n\n*RESOURCES I MENTION IN THE VIDEO*\nMake a copy of the prompts: https://www.jeffsu.org/tell-me-about-yourself-using-chatgpt/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "Tell Me About Yourself (The BEST Way to Answer this Interview Question)", "jZJKb-obz1E", 1, 349, false, "https://www.youtube.com/watch?v=jZJKb-obz1E", "/downloads/Jeff Su/2023-10-17 Tell Me About Yourself (The BEST Way to Answer this Interview Question)/Tell Me About Yourself (The BEST Way to Answer this Interview Question) [jZJKb-obz1E].mp4", false, ~U[2023-10-17 00:00:00Z]] 16:58:29.547 [debug] QUERY OK source="sources" db=0.3ms idle=739.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.548 [debug] QUERY OK source="media_items" db=1.0ms idle=545.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-03 13:00:23Z], 1] 16:58:29.551 [debug] QUERY OK source="media_items" db=2.2ms idle=545.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=143\n\n📧\u00A0Here are 10 game-changing #email habits for productive inbox management!\n\n*1. Reverse your Workflow:* Start from the oldest emails, ensuring no vital message is overlooked. (#Gmail & #Outlook settings included)\n*2. Efficiency Shortcuts:* Save 30 minutes daily! Use \"E\" to archive, \"K\" to skip, and \"B\" to snooze emails.\n*3. Descriptive Attachments:* Always describe attachments in your emails for easy future searches.\n*4. Use Filter Chips in Gmail:* Streamline your searches instead of using manual search operators.\n*5. Label & Star:* Assign labels or stars post-composition for quicker future retrieval.\n*6. Email Templates:* Save drafts of frequently sent emails. Bonus: Store ChatGPT email prompts for easy access!\n*7. Optimized Commute Management:* Organize your inbox on-the-go with left and right swipe actions.\n*8. Meeting Scheduling:* Directly offer or set meeting times right from your email.\n*9. Notification Management:* Filter Google Docs/Sheets/Slides notifications for relevancy.\n*10. Inbox Zero Setup:* Segregate emails into 'Follow up', 'Waiting', and 'Read'. Aim for a clutter-free inbox!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Bottom-up Inbox Management\n00:59 3 Keyboard Shortcuts for Productivity\n01:56 Name Your Attachments\n02:21 Use Filter Chips\n03:07 Label after Composing an Email\n03:24 Save Drafts as Templates\n04:04 Inbox Management on-the-go\n04:31 Responding to Meeting Requests\n05:14 Manage Collaboration Notifications\n05:48 Inbox Zero Workflow\n\n*RESOURCES I MENTION IN THE VIDEO*\nInbox Zero Walkthrough (for Outlook): https://youtu.be/U8LKXbUxf-M\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "10 ONE-MINUTE Email Habits for Productivity!", "043254cf-d900-438c-8a7c-fdd02e8449aa", false, "Gmo1FV2o5L8", 1, [], 386, false, "https://www.youtube.com/watch?v=Gmo1FV2o5L8", 60, "/downloads/Jeff Su/2023-10-03 10 ONE-MINUTE Email Habits for Productivity!/10 ONE-MINUTE Email Habits for Productivity! [Gmo1FV2o5L8].mp4", false, false, 98, ~U[2023-10-03 13:00:23Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=143\n\n📧\u00A0Here are 10 game-changing #email habits for productive inbox management!\n\n*1. Reverse your Workflow:* Start from the oldest emails, ensuring no vital message is overlooked. (#Gmail & #Outlook settings included)\n*2. Efficiency Shortcuts:* Save 30 minutes daily! Use \"E\" to archive, \"K\" to skip, and \"B\" to snooze emails.\n*3. Descriptive Attachments:* Always describe attachments in your emails for easy future searches.\n*4. Use Filter Chips in Gmail:* Streamline your searches instead of using manual search operators.\n*5. Label & Star:* Assign labels or stars post-composition for quicker future retrieval.\n*6. Email Templates:* Save drafts of frequently sent emails. Bonus: Store ChatGPT email prompts for easy access!\n*7. Optimized Commute Management:* Organize your inbox on-the-go with left and right swipe actions.\n*8. Meeting Scheduling:* Directly offer or set meeting times right from your email.\n*9. Notification Management:* Filter Google Docs/Sheets/Slides notifications for relevancy.\n*10. Inbox Zero Setup:* Segregate emails into 'Follow up', 'Waiting', and 'Read'. Aim for a clutter-free inbox!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Bottom-up Inbox Management\n00:59 3 Keyboard Shortcuts for Productivity\n01:56 Name Your Attachments\n02:21 Use Filter Chips\n03:07 Label after Composing an Email\n03:24 Save Drafts as Templates\n04:04 Inbox Management on-the-go\n04:31 Responding to Meeting Requests\n05:14 Manage Collaboration Notifications\n05:48 Inbox Zero Workflow\n\n*RESOURCES I MENTION IN THE VIDEO*\nInbox Zero Walkthrough (for Outlook): https://youtu.be/U8LKXbUxf-M\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇", "10 ONE-MINUTE Email Habits for Productivity!", "Gmo1FV2o5L8", 1, 386, false, "https://www.youtube.com/watch?v=Gmo1FV2o5L8", "/downloads/Jeff Su/2023-10-03 10 ONE-MINUTE Email Habits for Productivity!/10 ONE-MINUTE Email Habits for Productivity! [Gmo1FV2o5L8].mp4", false, ~U[2023-10-03 13:00:23Z]] 16:58:29.552 [debug] QUERY OK source="sources" db=0.4ms idle=547.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.554 [debug] QUERY OK source="media_items" db=1.0ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-19 13:00:23Z], 1] 16:58:29.557 [debug] QUERY OK source="media_items" db=2.1ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=142\n\nUse Teal’s Resume Builder for free - https://get.tealhq.com/jeffsu\n\nIn this video we dive into the universally agreed upon, most common resume mistake: *not including quantifiable metrics in your bullet points.*\n\nSimply put, are you just describing your responsibilities without showcasing their impact? \n\nLet’s first debunk myths about what metrics should look like and provide real-life examples of how to transform your bullet points.\n\nThen, we’ll go through the significance of \"how many\", \"how often\", and \"how long\", and a special technique that leverages ChatGPT to help you craft the perfect resume, no matter your role!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why Most Resume Advice Suck\n00:37 The Most Common Resume Mistake\n01:13 How to Fix the Most Common Resume Mistake\n02:02 Bullet Point Example 1\n02:42 Use Teal to Create Your Resume\n03:47 Bullet Point Example 2\n04:27 Fool-Proof Technique for Anyone\n05:39 Recap: How to Fix Common Resume Mistake\n\n*RESOURCES I MENTION IN THE VIDEO*\nJoanna’s Resume in PDF format - https://drive.google.com/file/d/1rVgg7r28UrP-iEh13UzQ2RuTKBexp6xW/view?usp=drive_link\n5 Resume Mistakes You Must Avoid - https://youtu.be/pjqi_M3SPwY\nPurchase my Premium Resume Package - https://jeffsu.gumroad.com/l/premium-resume-package\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #resumetips #tealhq", "Here’s the BIGGEST Mistake Found on Resumes!", "9e9dd095-6d63-47cc-bc6e-57f361b3bcec", false, "IW472-d_8bs", 1, [], 365, false, "https://www.youtube.com/watch?v=IW472-d_8bs", 61, "/downloads/Jeff Su/2023-09-19 Here’s the BIGGEST Mistake Found on Resumes!/Here’s the BIGGEST Mistake Found on Resumes! [IW472-d_8bs].mp4", false, false, 98, ~U[2023-09-19 13:00:23Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=142\n\nUse Teal’s Resume Builder for free - https://get.tealhq.com/jeffsu\n\nIn this video we dive into the universally agreed upon, most common resume mistake: *not including quantifiable metrics in your bullet points.*\n\nSimply put, are you just describing your responsibilities without showcasing their impact? \n\nLet’s first debunk myths about what metrics should look like and provide real-life examples of how to transform your bullet points.\n\nThen, we’ll go through the significance of \"how many\", \"how often\", and \"how long\", and a special technique that leverages ChatGPT to help you craft the perfect resume, no matter your role!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why Most Resume Advice Suck\n00:37 The Most Common Resume Mistake\n01:13 How to Fix the Most Common Resume Mistake\n02:02 Bullet Point Example 1\n02:42 Use Teal to Create Your Resume\n03:47 Bullet Point Example 2\n04:27 Fool-Proof Technique for Anyone\n05:39 Recap: How to Fix Common Resume Mistake\n\n*RESOURCES I MENTION IN THE VIDEO*\nJoanna’s Resume in PDF format - https://drive.google.com/file/d/1rVgg7r28UrP-iEh13UzQ2RuTKBexp6xW/view?usp=drive_link\n5 Resume Mistakes You Must Avoid - https://youtu.be/pjqi_M3SPwY\nPurchase my Premium Resume Package - https://jeffsu.gumroad.com/l/premium-resume-package\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch #resumetips #tealhq", "Here’s the BIGGEST Mistake Found on Resumes!", "IW472-d_8bs", 1, 365, false, "https://www.youtube.com/watch?v=IW472-d_8bs", "/downloads/Jeff Su/2023-09-19 Here’s the BIGGEST Mistake Found on Resumes!/Here’s the BIGGEST Mistake Found on Resumes! [IW472-d_8bs].mp4", false, ~U[2023-09-19 13:00:23Z]] 16:58:29.558 [debug] QUERY OK source="sources" db=0.4ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.559 [debug] QUERY OK source="media_items" db=0.9ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-05 13:00:41Z], 1] 16:58:29.563 [debug] QUERY OK source="media_items" db=2.2ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video, I dissect real slides from top consulting firms like McKinsey, Bain, and BCG to reveal 5 easy techniques you can start using today to take your presentations to the next level 📈\n\n1️⃣ *Contextualize Your Data:*\nNever share a data point in isolation. This helps you control the story and keep your audience engaged.\n\n2️⃣ *Master the SCQA Framework:*\nThis framework is the backbone of every MBB presentation and it's a surefire way to structure your slides for maximum impact.\n\n3️⃣ *Embrace the Pyramid Principle:*\nStart with your conclusion and then present your supporting arguments.\n\n4️⃣ *Color with Purpose:*\nWhether it’s using contrasting colors to differentiate data points or choosing a color palette that reduces cognitive load, intentional color choice can make your slides pop.\n\n5️⃣ *Know When to Table It:* \nCharts are great for trends and comparisons, but sometimes you need a table to show precise values or a mix of different data types.\n\n🎉 *Bonus*: Get extra mileage out of free tools like flaticons, colorhunt, and slides carnival to elevate your presentation game without sweating the details.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How McKinsey, Bain, BCG create slides\n00:25 Never Share a Single Data Point in Isolation\n02:13 Use the SCQA Framework\n04:16 The Pyramid Principle\n05:51 Use Color with Intention\n07:16 Table vs. Charts\n08:59 Bonus Technique from Top Consulting Firms\n\n*RESOURCES I MENTION IN THE VIDEO*\nPresentations mentioned in this video - https://www.jeffsu.org/presentation-techniques-from-mckinsey-bain-and-bcg\nFree Tools to Use in Presentations - https://youtu.be/5c9SapE_YNU\nAnalyst Academy Video - https://youtu.be/HnlWiVs9P5o\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#presentationtips #mckinsey #mbb", "5 Small Changes to Improve Your Presentations Forever!", "6bed757f-0ad8-433c-9000-4377cea50dab", false, "nuosoMyf0eA", 1, [], 555, false, "https://www.youtube.com/watch?v=nuosoMyf0eA", 62, "/downloads/Jeff Su/2023-09-05 5 Small Changes to Improve Your Presentations Forever!/5 Small Changes to Improve Your Presentations Forever! [nuosoMyf0eA].mp4", false, false, 98, ~U[2023-09-05 13:00:41Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "In this video, I dissect real slides from top consulting firms like McKinsey, Bain, and BCG to reveal 5 easy techniques you can start using today to take your presentations to the next level 📈\n\n1️⃣ *Contextualize Your Data:*\nNever share a data point in isolation. This helps you control the story and keep your audience engaged.\n\n2️⃣ *Master the SCQA Framework:*\nThis framework is the backbone of every MBB presentation and it's a surefire way to structure your slides for maximum impact.\n\n3️⃣ *Embrace the Pyramid Principle:*\nStart with your conclusion and then present your supporting arguments.\n\n4️⃣ *Color with Purpose:*\nWhether it’s using contrasting colors to differentiate data points or choosing a color palette that reduces cognitive load, intentional color choice can make your slides pop.\n\n5️⃣ *Know When to Table It:* \nCharts are great for trends and comparisons, but sometimes you need a table to show precise values or a mix of different data types.\n\n🎉 *Bonus*: Get extra mileage out of free tools like flaticons, colorhunt, and slides carnival to elevate your presentation game without sweating the details.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How McKinsey, Bain, BCG create slides\n00:25 Never Share a Single Data Point in Isolation\n02:13 Use the SCQA Framework\n04:16 The Pyramid Principle\n05:51 Use Color with Intention\n07:16 Table vs. Charts\n08:59 Bonus Technique from Top Consulting Firms\n\n*RESOURCES I MENTION IN THE VIDEO*\nPresentations mentioned in this video - https://www.jeffsu.org/presentation-techniques-from-mckinsey-bain-and-bcg\nFree Tools to Use in Presentations - https://youtu.be/5c9SapE_YNU\nAnalyst Academy Video - https://youtu.be/HnlWiVs9P5o\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#presentationtips #mckinsey #mbb", "5 Small Changes to Improve Your Presentations Forever!", "nuosoMyf0eA", 1, 555, false, "https://www.youtube.com/watch?v=nuosoMyf0eA", "/downloads/Jeff Su/2023-09-05 5 Small Changes to Improve Your Presentations Forever!/5 Small Changes to Improve Your Presentations Forever! [nuosoMyf0eA].mp4", false, ~U[2023-09-05 13:00:41Z]] 16:58:29.565 [debug] QUERY OK source="sources" db=1.2ms idle=9.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.566 [debug] QUERY OK source="media_items" db=0.9ms idle=8.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-22 13:30:13Z], 1] 16:58:29.569 [debug] QUERY OK source="media_items" db=1.9ms idle=8.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=140\n\nAI technologies like ChatGPT and Google Bard are developing at a rapid pace so it’s easy to feel left behind.\n\nIn this video I share the 3 levels of future-proofing yourself in a world of AI tools:\n\nLevel 1️⃣\u00A0- Learn how to craft strong prompts with the 6 essential components\n\nLevel 2️⃣\u00A0- Making AI prompting a daily habit to simplify and enhance everyday tasks, from fitness plans to professional emails.\n\nLevel 3️⃣\u00A0- Embracing continuous learning to stay updated and relevant in the ever-evolving AI landscape.\n\nDiscover practical tips on prompt engineering, habits, and frameworks to ensure you're always ahead in the AI game.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 The 3 levels of using ChatGPT\n00:18 How to future-proof ourselves\n00:47 Beginner Level of using ChatGPT\n02:55 Intermediate Level of using ChatGPT\n05:43 Advanced Level of using ChatGPT\n\n*RESOURCES I MENTION IN THE VIDEO*\nMaster the Perfect Prompt Formula - https://youtu.be/jC4v5AS4RIM\nMy Favorite ChatGPT Productivity Tips - https://youtu.be/Q07rFZtc2Ao\nLearn Prompting - https://learnprompting.org/docs/intro\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#ChatGPT #GoogleBard #PromptEngineering", "Beginner to Pro with ChatGPT in One Video!", "6c41187d-54b5-4168-9d1d-e6346871f6a5", false, "bkf3XBOj2PE", 1, [], 525, false, "https://www.youtube.com/watch?v=bkf3XBOj2PE", 63, "/downloads/Jeff Su/2023-08-22 Beginner to Pro with ChatGPT in One Video!/Beginner to Pro with ChatGPT in One Video! [bkf3XBOj2PE].mp4", false, false, 98, ~U[2023-08-22 13:30:13Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=140\n\nAI technologies like ChatGPT and Google Bard are developing at a rapid pace so it’s easy to feel left behind.\n\nIn this video I share the 3 levels of future-proofing yourself in a world of AI tools:\n\nLevel 1️⃣\u00A0- Learn how to craft strong prompts with the 6 essential components\n\nLevel 2️⃣\u00A0- Making AI prompting a daily habit to simplify and enhance everyday tasks, from fitness plans to professional emails.\n\nLevel 3️⃣\u00A0- Embracing continuous learning to stay updated and relevant in the ever-evolving AI landscape.\n\nDiscover practical tips on prompt engineering, habits, and frameworks to ensure you're always ahead in the AI game.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 The 3 levels of using ChatGPT\n00:18 How to future-proof ourselves\n00:47 Beginner Level of using ChatGPT\n02:55 Intermediate Level of using ChatGPT\n05:43 Advanced Level of using ChatGPT\n\n*RESOURCES I MENTION IN THE VIDEO*\nMaster the Perfect Prompt Formula - https://youtu.be/jC4v5AS4RIM\nMy Favorite ChatGPT Productivity Tips - https://youtu.be/Q07rFZtc2Ao\nLearn Prompting - https://learnprompting.org/docs/intro\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#ChatGPT #GoogleBard #PromptEngineering", "Beginner to Pro with ChatGPT in One Video!", "bkf3XBOj2PE", 1, 525, false, "https://www.youtube.com/watch?v=bkf3XBOj2PE", "/downloads/Jeff Su/2023-08-22 Beginner to Pro with ChatGPT in One Video!/Beginner to Pro with ChatGPT in One Video! [bkf3XBOj2PE].mp4", false, ~U[2023-08-22 13:30:13Z]] 16:58:29.570 [debug] QUERY OK source="sources" db=0.5ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.571 [debug] QUERY OK source="media_items" db=1.1ms idle=8.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-01 13:00:26Z], 1] 16:58:29.580 [debug] QUERY OK source="media_items" db=7.7ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=139\n\nDownload my favorite prompts for productivity: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=139\n\nHere are the 6 key components that make up the perfect formula for ChatGPT and Google Bard: Task, Context, Exemplars, Persona, Format, and Tone.\n\nIn this video we go through real-world examples and demonstrate how each component contributes to the effectiveness of the prompt (aka the better the prompt, the better the output)! \n\nThe Task sentence needs to articulate the end goal and start with an action verb.\n\nUse three guiding questions to help structure relevant and sufficient Context.\n\nExemplars can drastically improve the quality of the output by giving specific examples for the AI to reference.\n\nFor Persona, think of who you would ideally want the AI to be in the given task situation.\n\nVisualizing your desired end result will let you know what format to use in your prompt.\n\nAnd you can actually use ChatGPT to generate a list of Tone keywords for you to use!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/newsletter/\n\n*TIMESTAMPS*\n00:00 I found the Perfect ChatGPT Formula\n00:40 The 6 Prompt Components\n01:39 Task\n02:07 Context\n03:05 Exemplars\n04:28 Persona\n05:18 Format\n06:20 Tone\n07:05 Example using the Perfect Prompt Formula\n08:01 Good vs. Bad Prompt Outputs\n\n*RESOURCES I MENTION IN THE VIDEO*\nBeginner to Pro with ChatGPT - https://youtu.be/bkf3XBOj2PE\nTop 8 ChatGPT Tips for Work - https://youtu.be/Q07rFZtc2Ao\nFree prompting course - https://learnprompting.org/docs/intro\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/newsletter/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatgpt #googlebard #promptengineering", "Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)!", "19fd1738-8779-4925-b55f-4ced73481ebb", false, "jC4v5AS4RIM", 1, [], 510, false, "https://www.youtube.com/watch?v=jC4v5AS4RIM", 64, "/downloads/Jeff Su/2023-08-01 Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)!/Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)! [jC4v5AS4RIM].mp4", false, false, 98, ~U[2023-08-01 13:00:26Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=139\n\nDownload my favorite prompts for productivity: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=139\n\nHere are the 6 key components that make up the perfect formula for ChatGPT and Google Bard: Task, Context, Exemplars, Persona, Format, and Tone.\n\nIn this video we go through real-world examples and demonstrate how each component contributes to the effectiveness of the prompt (aka the better the prompt, the better the output)! \n\nThe Task sentence needs to articulate the end goal and start with an action verb.\n\nUse three guiding questions to help structure relevant and sufficient Context.\n\nExemplars can drastically improve the quality of the output by giving specific examples for the AI to reference.\n\nFor Persona, think of who you would ideally want the AI to be in the given task situation.\n\nVisualizing your desired end result will let you know what format to use in your prompt.\n\nAnd you can actually use ChatGPT to generate a list of Tone keywords for you to use!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/newsletter/\n\n*TIMESTAMPS*\n00:00 I found the Perfect ChatGPT Formula\n00:40 The 6 Prompt Components\n01:39 Task\n02:07 Context\n03:05 Exemplars\n04:28 Persona\n05:18 Format\n06:20 Tone\n07:05 Example using the Perfect Prompt Formula\n08:01 Good vs. Bad Prompt Outputs\n\n*RESOURCES I MENTION IN THE VIDEO*\nBeginner to Pro with ChatGPT - https://youtu.be/bkf3XBOj2PE\nTop 8 ChatGPT Tips for Work - https://youtu.be/Q07rFZtc2Ao\nFree prompting course - https://learnprompting.org/docs/intro\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/newsletter/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatgpt #googlebard #promptengineering", "Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)!", "jC4v5AS4RIM", 1, 510, false, "https://www.youtube.com/watch?v=jC4v5AS4RIM", "/downloads/Jeff Su/2023-08-01 Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)!/Master the Perfect ChatGPT Prompt Formula (in just 8 minutes)! [jC4v5AS4RIM].mp4", false, ~U[2023-08-01 13:00:26Z]] 16:58:29.581 [debug] QUERY OK source="sources" db=0.4ms idle=14.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.583 [debug] QUERY OK source="media_items" db=1.0ms idle=13.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-18 13:00:45Z], 1] 16:58:29.586 [debug] QUERY OK source="media_items" db=2.2ms idle=13.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=138\n\n📑\u00A0Cover letter template and prompts can be found here ➡️\u00A0https://www.jeffsu.org/5-cover-letter-mistakes-to-avoid/\n\nIn this video, we go over what makes a successful cover letter by exploring common mistakes and providing practical solutions. \n\nUsing my own cover letter as an example, I reveal the five key mistakes I made back in the day that led to multiple rejections, and how you can avoid these pitfalls.\n\nMistake 1️⃣: A generic or impersonal address can immediately signal a lack of research\n\nMistake 2️⃣: Grammatical errors and typos can quickly tank your application\n\nMistake 3️⃣: A weak introduction can cost you the reader's attention. Discover how to write a compelling hook by addressing a relatable pain point for the company and positioning yourself as a solution\n\nMistake 4️⃣: Vague descriptions don't impress; quantify your achievements instead\n\nMistake 5️⃣: Proper cover letter hygiene matters. Avoid oversharing personal information, using industry-specific jargon, and writing excessively long letters\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How NOT to Write a Cover Letter\n00:19 Not Addressing to an Actual Person\n01:29 Grammar Mistakes and Typos\n02:36 Not Spending Enough Time on the Hook\n04:25 Not Including Tangible Results\n05:47 Being Unaware of Cover Letter Hygiene\n06:28 Bonus Mistake\n06:45 Why Networking is Important for Cover Letters\n\n*RESOURCES I MENTION IN THE VIDEO*\nUse LinkedIn to network effectively - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nAustin’s Cover Letter article - https://cultivatedculture.com/cover-letter/\nAli Abdaal’s resume video - https://www.youtube.com/watch?v=MqXjqOy-TA8&t=1398s\nCover Letter deal-break article - https://www.topresume.com/career-advice/officehours-worst-resume-deal-breaker-mistakes\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#coverletter #jobsearch #resume", "Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID)", "1a0acc9e-3ffb-44ef-9df4-f3ba2614cd31", false, "xudcyY06PiI", 1, [], 416, false, "https://www.youtube.com/watch?v=xudcyY06PiI", 65, "/downloads/Jeff Su/2023-07-18 Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID)/Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID) [xudcyY06PiI].mp4", false, false, 98, ~U[2023-07-18 13:00:45Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=138\n\n📑\u00A0Cover letter template and prompts can be found here ➡️\u00A0https://www.jeffsu.org/5-cover-letter-mistakes-to-avoid/\n\nIn this video, we go over what makes a successful cover letter by exploring common mistakes and providing practical solutions. \n\nUsing my own cover letter as an example, I reveal the five key mistakes I made back in the day that led to multiple rejections, and how you can avoid these pitfalls.\n\nMistake 1️⃣: A generic or impersonal address can immediately signal a lack of research\n\nMistake 2️⃣: Grammatical errors and typos can quickly tank your application\n\nMistake 3️⃣: A weak introduction can cost you the reader's attention. Discover how to write a compelling hook by addressing a relatable pain point for the company and positioning yourself as a solution\n\nMistake 4️⃣: Vague descriptions don't impress; quantify your achievements instead\n\nMistake 5️⃣: Proper cover letter hygiene matters. Avoid oversharing personal information, using industry-specific jargon, and writing excessively long letters\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 How NOT to Write a Cover Letter\n00:19 Not Addressing to an Actual Person\n01:29 Grammar Mistakes and Typos\n02:36 Not Spending Enough Time on the Hook\n04:25 Not Including Tangible Results\n05:47 Being Unaware of Cover Letter Hygiene\n06:28 Bonus Mistake\n06:45 Why Networking is Important for Cover Letters\n\n*RESOURCES I MENTION IN THE VIDEO*\nUse LinkedIn to network effectively - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nAustin’s Cover Letter article - https://cultivatedculture.com/cover-letter/\nAli Abdaal’s resume video - https://www.youtube.com/watch?v=MqXjqOy-TA8&t=1398s\nCover Letter deal-break article - https://www.topresume.com/career-advice/officehours-worst-resume-deal-breaker-mistakes\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#coverletter #jobsearch #resume", "Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID)", "xudcyY06PiI", 1, 416, false, "https://www.youtube.com/watch?v=xudcyY06PiI", "/downloads/Jeff Su/2023-07-18 Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID)/Why Your Cover Letter Gets Rejected (5 MISTAKES TO AVOID) [xudcyY06PiI].mp4", false, ~U[2023-07-18 13:00:45Z]] 16:58:29.587 [debug] QUERY OK source="sources" db=0.3ms idle=15.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.588 [debug] QUERY OK source="media_items" db=0.9ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-04 13:00:14Z], 1] 16:58:29.592 [debug] QUERY OK source="media_items" db=2.2ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🧑🏻\u200D💻\u00A0Make a copy of the worksheet: https://www.jeffsu.org/how-to-onboard-successfully/\n\n📘\u00A0Buy the book: https://amzn.to/3XzdZPA\n\nIn this video, I share 4 critical lessons from \"The First 90 Days\" by Dr. Michael Watkins, a former Harvard Business School professor. \n\nWe examine how new hires can swiftly reach the breakeven point—the point where you have produced as much value as you have received from your organization.\n\nFirstly, we need to understand our own blindspots.\n\nSecondly, we need a systematic plan to accelerate our learning. This involves the use of a 'Learning Agenda,' a structured set of questions to focus your learning during the onboarding process, enabling you to manage information overload effectively.\n\nThirdly, we discuss how to negotiate success with your manager, emphasizing the importance of setting the right expectations and regularly reviewing performance metrics.\n\nFinally, we explore how to secure early wins with colleagues, underlining that positive first impressions formed within the first 30 days can set you up for long-term success.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 What does “success” look like for new hires?\n00:40 Common onboarding mistakes for new hires\n01:02 How to create a virtuous cycle ASAP\n01:26 Understand your blindspots\n03:42 Accelerate your learning systematically\n05:11 Negotiate success with your boss\n06:19 Secure early wins with colleagues\n07:41 Summary of the First 90 Days\n\n*RESOURCES I MENTION IN THE VIDEO*\nWhat makes a Great Manager - https://youtu.be/84kPR_NDjI8\nCreate a 30-60-90 Onboarding Plan - https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#thefirst90days #onboarding #careertips", "Starting a New Job? Here's a 90-Day Plan from Harvard", "904d23a5-8cdf-45f3-838a-0ad54146dec7", false, "KcTI98JWLwE", 1, [], 482, false, "https://www.youtube.com/watch?v=KcTI98JWLwE", 66, "/downloads/Jeff Su/2023-07-04 Starting a New Job? Here's a 90-Day Plan from Harvard/Starting a New Job? Here's a 90-Day Plan from Harvard [KcTI98JWLwE].mp4", false, false, 98, ~U[2023-07-04 13:00:14Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🧑🏻\u200D💻\u00A0Make a copy of the worksheet: https://www.jeffsu.org/how-to-onboard-successfully/\n\n📘\u00A0Buy the book: https://amzn.to/3XzdZPA\n\nIn this video, I share 4 critical lessons from \"The First 90 Days\" by Dr. Michael Watkins, a former Harvard Business School professor. \n\nWe examine how new hires can swiftly reach the breakeven point—the point where you have produced as much value as you have received from your organization.\n\nFirstly, we need to understand our own blindspots.\n\nSecondly, we need a systematic plan to accelerate our learning. This involves the use of a 'Learning Agenda,' a structured set of questions to focus your learning during the onboarding process, enabling you to manage information overload effectively.\n\nThirdly, we discuss how to negotiate success with your manager, emphasizing the importance of setting the right expectations and regularly reviewing performance metrics.\n\nFinally, we explore how to secure early wins with colleagues, underlining that positive first impressions formed within the first 30 days can set you up for long-term success.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 What does “success” look like for new hires?\n00:40 Common onboarding mistakes for new hires\n01:02 How to create a virtuous cycle ASAP\n01:26 Understand your blindspots\n03:42 Accelerate your learning systematically\n05:11 Negotiate success with your boss\n06:19 Secure early wins with colleagues\n07:41 Summary of the First 90 Days\n\n*RESOURCES I MENTION IN THE VIDEO*\nWhat makes a Great Manager - https://youtu.be/84kPR_NDjI8\nCreate a 30-60-90 Onboarding Plan - https://youtu.be/Q07rFZtc2Ao\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#thefirst90days #onboarding #careertips", "Starting a New Job? Here's a 90-Day Plan from Harvard", "KcTI98JWLwE", 1, 482, false, "https://www.youtube.com/watch?v=KcTI98JWLwE", "/downloads/Jeff Su/2023-07-04 Starting a New Job? Here's a 90-Day Plan from Harvard/Starting a New Job? Here's a 90-Day Plan from Harvard [KcTI98JWLwE].mp4", false, ~U[2023-07-04 13:00:14Z]] 16:58:29.593 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:29.594 [debug] QUERY OK source="media_items" db=1.3ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-20 13:00:21Z], 1] 16:58:29.598 [debug] QUERY OK source="media_items" db=2.3ms idle=8.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=136\n\n🖥️\u00A0You can make a copy of the 8 ChatGPT prompts here: https://www.jeffsu.org/top-8-chatgpt-productivity-tips-for-work/\n\nThis video reveals how to leverage OpenAI's ChatGPT to boost your efficiency, featuring 8 practical prompts every professional needs to know for productivity in the workplace!\n\nDiscover how ChatGPT can help with tasks like:\n\n1. Writing a concise, yet compelling self-evaluation that aligns with your company's key attributes.\n2. Creating a robust 30-60-90 day onboarding plan for new hires using the SMART framework.\n3. Crafting a high-quality project brief for your next cross-functional event.\n4. Analyzing feedback from various sources to derive actionable insights for future projects.\n5. Preparing captivating presentations by bridging the gap between your content and the audience's interests.\n6. Converting lengthy articles into concise LinkedIn posts for greater engagement.\n7. Developing a 30-60-90 day personal development plan for interns aspiring to become full-time employees.\n8. Brainstorming inclusive team-building activities suitable for diverse interests and backgrounds.\n\nExperience the true power of AI in enhancing productivity, be it in writing self-evaluations, onboarding new hires, or even creating team-building activities.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Real Footage of ChatGPT at Work\n00:34 ChatGPT to write Self-Evaluation\n01:36 Create an Onboarding Plan for New Hires\n02:31 Generate High Quality Project Briefs\n03:39 ChatGPT to Analyze Feedback\n05:07 Prepare Amazing Presentations\n06:36 ChatGPT to Prepare Social Media Posts\n07:29 Convert to Full-Time Employee\n08:17 Brainstorm Team Building Activities\n\n*RESOURCES I MENTION IN THE VIDEO*\nChatGPT for Job Search Part 1 - https://youtu.be/pmnY5V16GSE\nChatGPT for Job Search Part 2 - https://youtu.be/ZXmbb5fPfgk\nTop 10 Productivity Tips for Work - https://youtu.be/QHrWMMlVYRA\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatgpt #productivity #career", "Top 8 ChatGPT Productivity Tips for Work!", "1b123b56-e4f2-4798-941e-2853eb502ad3", false, "Q07rFZtc2Ao", 1, [], 565, false, "https://www.youtube.com/watch?v=Q07rFZtc2Ao", 67, "/downloads/Jeff Su/2023-06-20 Top 8 ChatGPT Productivity Tips for Work!/Top 8 ChatGPT Productivity Tips for Work! [Q07rFZtc2Ao].mp4", false, false, 98, ~U[2023-06-20 13:00:21Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "Grab my AI Toolkit for free: https://academy.jeffsu.org/ai-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=136\n\n🖥️\u00A0You can make a copy of the 8 ChatGPT prompts here: https://www.jeffsu.org/top-8-chatgpt-productivity-tips-for-work/\n\nThis video reveals how to leverage OpenAI's ChatGPT to boost your efficiency, featuring 8 practical prompts every professional needs to know for productivity in the workplace!\n\nDiscover how ChatGPT can help with tasks like:\n\n1. Writing a concise, yet compelling self-evaluation that aligns with your company's key attributes.\n2. Creating a robust 30-60-90 day onboarding plan for new hires using the SMART framework.\n3. Crafting a high-quality project brief for your next cross-functional event.\n4. Analyzing feedback from various sources to derive actionable insights for future projects.\n5. Preparing captivating presentations by bridging the gap between your content and the audience's interests.\n6. Converting lengthy articles into concise LinkedIn posts for greater engagement.\n7. Developing a 30-60-90 day personal development plan for interns aspiring to become full-time employees.\n8. Brainstorming inclusive team-building activities suitable for diverse interests and backgrounds.\n\nExperience the true power of AI in enhancing productivity, be it in writing self-evaluations, onboarding new hires, or even creating team-building activities.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Real Footage of ChatGPT at Work\n00:34 ChatGPT to write Self-Evaluation\n01:36 Create an Onboarding Plan for New Hires\n02:31 Generate High Quality Project Briefs\n03:39 ChatGPT to Analyze Feedback\n05:07 Prepare Amazing Presentations\n06:36 ChatGPT to Prepare Social Media Posts\n07:29 Convert to Full-Time Employee\n08:17 Brainstorm Team Building Activities\n\n*RESOURCES I MENTION IN THE VIDEO*\nChatGPT for Job Search Part 1 - https://youtu.be/pmnY5V16GSE\nChatGPT for Job Search Part 2 - https://youtu.be/ZXmbb5fPfgk\nTop 10 Productivity Tips for Work - https://youtu.be/QHrWMMlVYRA\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatgpt #productivity #career", "Top 8 ChatGPT Productivity Tips for Work!", "Q07rFZtc2Ao", 1, 565, false, "https://www.youtube.com/watch?v=Q07rFZtc2Ao", "/downloads/Jeff Su/2023-06-20 Top 8 ChatGPT Productivity Tips for Work!/Top 8 ChatGPT Productivity Tips for Work! [Q07rFZtc2Ao].mp4", false, ~U[2023-06-20 13:00:21Z]] 16:58:29.599 [debug] QUERY OK source="sources" db=0.3ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.600 [debug] QUERY OK source="media_items" db=0.9ms idle=8.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-06-06 13:00:06Z], 1] 16:58:29.604 [debug] QUERY OK source="media_items" db=2.5ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=135\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nHere are 8 powerful, but often overlooked, LinkedIn features that can significantly enhance your job search: \n\n1. *Message Anyone for Free:* If you're part of the same LinkedIn group, you can directly message anyone, including third-degree connections, at no cost. The trick here is to join LinkedIn groups related to your field, school, or company.\n\n2. *People Tab on LinkedIn Pages:* Explore the 'People' tab on your university or prospective employer's LinkedIn page to find potential connections. A pro tip is to copy their names and search within relevant groups to message them directly.\n\n3. *'I'm Interested' Feature:* Simply visiting the 'About' tab of a company's page and clicking 'I'm Interested' could make recruiters take note of your profile. Remember, this feature may not be available on every page, and its effectiveness may vary.\n\n4. *Career Explorer:* This tool helps you understand the career transitions of others in your industry. Use the data provided to shape your own career path, upgrade your skills, and optimize your LinkedIn profile with the most searched titles in your industry.\n\n5. *Skill Assessments:* Demonstrating your skills through LinkedIn's assessments can increase your visibility to recruiters. Professionals at all stages of their career can benefit from this feature.\n\n6. *Career Break Feature:* If you've had an employment gap, you can explain it using the Career Break feature. However, instead of giving a weak impression, creatively use your profile to showcase what you're looking for next.\n\n7. *Featured Section for Job Seekers:* The 'Featured' section isn't just for content creators. As a job seeker, this section can be utilized to display your resume, portfolio, or other significant work.\n\n8. *Personalize Connection Requests:* When using LinkedIn's mobile app, remember to 'Personalize request' rather than simply clicking 'Connect'. This approach can increase your chances of your connection request being accepted.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Actually useful LinkedIn tips for Job Seekers\n00:16 #1 Message anyone on LinkedIn for free\n01:07 #2 Leverage the People tab on LinkedIn Pages\n02:07 #3 Let Recruiters on LinkedIn know you’re interested\n02:38 #4 LinkedIn Career Explorer tool\n04:11 LinkedIn Companion App (Dex)\n05:22 #5 Skill Assessments\n06:30 #6 Career Break\n07:31 #7 Featured Section for Job Search\n08:17 #8 Tip for LinkedIn Mobile App\n\n*RESOURCES I MENTION IN THE VIDEO*\nEffective networking tips for LinkedIn - https://youtu.be/CwjwnHJE5sU\nCareer Explorer tool - https://linkedin.github.io/career-explorer/\nFree Featured Section thumbnail - https://www.jeffsu.org/8-genius-linkedin-features-for-job-seekers/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#linkedin #jobsearch", "Job Seekers on LinkedIn Need to Know These 8 Things", "2a00e334-0715-43e2-bb41-e7614bedac7c", false, "D7DIHNK2DYw", 1, [], 527, false, "https://www.youtube.com/watch?v=D7DIHNK2DYw", 68, "/downloads/Jeff Su/2023-06-06 Job Seekers on LinkedIn Need to Know These 8 Things/Job Seekers on LinkedIn Need to Know These 8 Things [D7DIHNK2DYw].mp4", false, false, 98, ~U[2023-06-06 13:00:06Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=135\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nHere are 8 powerful, but often overlooked, LinkedIn features that can significantly enhance your job search: \n\n1. *Message Anyone for Free:* If you're part of the same LinkedIn group, you can directly message anyone, including third-degree connections, at no cost. The trick here is to join LinkedIn groups related to your field, school, or company.\n\n2. *People Tab on LinkedIn Pages:* Explore the 'People' tab on your university or prospective employer's LinkedIn page to find potential connections. A pro tip is to copy their names and search within relevant groups to message them directly.\n\n3. *'I'm Interested' Feature:* Simply visiting the 'About' tab of a company's page and clicking 'I'm Interested' could make recruiters take note of your profile. Remember, this feature may not be available on every page, and its effectiveness may vary.\n\n4. *Career Explorer:* This tool helps you understand the career transitions of others in your industry. Use the data provided to shape your own career path, upgrade your skills, and optimize your LinkedIn profile with the most searched titles in your industry.\n\n5. *Skill Assessments:* Demonstrating your skills through LinkedIn's assessments can increase your visibility to recruiters. Professionals at all stages of their career can benefit from this feature.\n\n6. *Career Break Feature:* If you've had an employment gap, you can explain it using the Career Break feature. However, instead of giving a weak impression, creatively use your profile to showcase what you're looking for next.\n\n7. *Featured Section for Job Seekers:* The 'Featured' section isn't just for content creators. As a job seeker, this section can be utilized to display your resume, portfolio, or other significant work.\n\n8. *Personalize Connection Requests:* When using LinkedIn's mobile app, remember to 'Personalize request' rather than simply clicking 'Connect'. This approach can increase your chances of your connection request being accepted.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Actually useful LinkedIn tips for Job Seekers\n00:16 #1 Message anyone on LinkedIn for free\n01:07 #2 Leverage the People tab on LinkedIn Pages\n02:07 #3 Let Recruiters on LinkedIn know you’re interested\n02:38 #4 LinkedIn Career Explorer tool\n04:11 LinkedIn Companion App (Dex)\n05:22 #5 Skill Assessments\n06:30 #6 Career Break\n07:31 #7 Featured Section for Job Search\n08:17 #8 Tip for LinkedIn Mobile App\n\n*RESOURCES I MENTION IN THE VIDEO*\nEffective networking tips for LinkedIn - https://youtu.be/CwjwnHJE5sU\nCareer Explorer tool - https://linkedin.github.io/career-explorer/\nFree Featured Section thumbnail - https://www.jeffsu.org/8-genius-linkedin-features-for-job-seekers/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n (truncated) 16:58:29.605 [debug] QUERY OK source="sources" db=0.3ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.607 [debug] QUERY OK source="media_items" db=0.9ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-05-23 13:15:01Z], 1] 16:58:29.610 [debug] QUERY OK source="media_items" db=2.2ms idle=8.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🌟 Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=134\n\nStruggling with file management? In this video, I reveal my simple file management system and share my top 5 file management tips that can help streamline your digital life!\n\nI discuss the importance of balancing form (organization) and function (searchability) when it comes to managing your files. \n\nI then provide an overview of my easy-to-use framework for file hierarchy, limiting folder levels to a maximum of five, with each level accommodating up to 99 folders.\n\nI explain how I use Google Drive, and I also reveal the logic behind my file naming conventions, including two effective ways: date-based and alphabetical sorting.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Different File Management Systems\n00:40 How I Organize My Files\n02:47 How I Name My Files\n04:36 Digital + Physical De-cluttering\n05:19 Tip 1 - Organize Files by Where You Use it\n05:50 Tip 2 - Leverage Native Features\n06:36 Tip 3 - Attach Keyword to File\n07:31 Tip 4 - Selectively Star or Flag files\n07:59 Tip 5 - Know when to Create a Shortcut\n09:03 Two File Management Rules to Live By\n\n*RESOURCES I MENTION IN THE VIDEO*\nThe Oakywood iPhone Magsafe Shelf Mount: http://shrsl.com/42oov\nMy Alfred Tutorial: https://youtu.be/FXV-zwkRMxo\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=134\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#filemanagement #productivity #organization", "This Simple File Management System Changed My Life!", "adfbadc2-e5ba-4a91-b6ed-abbea29b7ad1", false, "MM-MPS57qKA", 1, [], 566, false, "https://www.youtube.com/watch?v=MM-MPS57qKA", 69, "/downloads/Jeff Su/2023-05-23 This Simple File Management System Changed My Life!/This Simple File Management System Changed My Life! [MM-MPS57qKA].mp4", false, false, 98, ~U[2023-05-23 13:15:01Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🌟 Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=134\n\nStruggling with file management? In this video, I reveal my simple file management system and share my top 5 file management tips that can help streamline your digital life!\n\nI discuss the importance of balancing form (organization) and function (searchability) when it comes to managing your files. \n\nI then provide an overview of my easy-to-use framework for file hierarchy, limiting folder levels to a maximum of five, with each level accommodating up to 99 folders.\n\nI explain how I use Google Drive, and I also reveal the logic behind my file naming conventions, including two effective ways: date-based and alphabetical sorting.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Different File Management Systems\n00:40 How I Organize My Files\n02:47 How I Name My Files\n04:36 Digital + Physical De-cluttering\n05:19 Tip 1 - Organize Files by Where You Use it\n05:50 Tip 2 - Leverage Native Features\n06:36 Tip 3 - Attach Keyword to File\n07:31 Tip 4 - Selectively Star or Flag files\n07:59 Tip 5 - Know when to Create a Shortcut\n09:03 Two File Management Rules to Live By\n\n*RESOURCES I MENTION IN THE VIDEO*\nThe Oakywood iPhone Magsafe Shelf Mount: http://shrsl.com/42oov\nMy Alfred Tutorial: https://youtu.be/FXV-zwkRMxo\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=134\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#filemanagement #productivity #organization", "This Simple File Management System Changed My Life!", "MM-MPS57qKA", 1, 566, false, "https://www.youtube.com/watch?v=MM-MPS57qKA", "/downloads/Jeff Su/2023-05-23 This Simple File Management System Changed My Life!/This Simple File Management System Changed My Life! [MM-MPS57qKA].mp4", false, ~U[2023-05-23 13:15:01Z]] 16:58:29.611 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:29.612 [debug] QUERY OK source="media_items" db=0.9ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-05-08 13:00:29Z], 1] 16:58:29.616 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n😖\u00A0The job search process can be filled with uncertainty and conflicting advice. But we do know from Forbes and Resumebuilder that 46% of job seekers utilize #ChatGPT to assist them, and 69% of those individuals receive more interviews. To make the most of AI assistance, it's essential to provide high-quality prompts at each stage of the job search process.\n\nOne effective way to utilize ChatGPT is by enhancing your networking skills. For instance, to connect with a professional on #LinkedIn, you can use ChatGPT to analyze their profile and generate a personalized connection request. Moreover, ChatGPT can help you come up with tailored questions to ask during coffee chats, showing the professional that you've done your homework and are serious about learning from them.\n\nChatGPT can also help you compose follow-up emails after an interview, emphasizing your transferable skills and mentioning specific details from the conversation to show you were paying attention. Additionally, ChatGPT can guide you through salary negotiations by simulating a realistic conversation between a job seeker and a recruiter. By practicing with AI-generated responses, you can enter the negotiation process with more confidence and poise.\n\nPart 1 ➡️ https://youtu.be/pmnY5V16GSE\n\n\n*TIMESTAMPS*\n00:00 Why Job Seekers are using ChatGPT\n01:06 Land Coffee Chats using ChatGPT\n03:40 Smart Questions to ask during Coffee Chats\n04:59 Use ChatGPT to find Questions for the Interviewer\n06:04 Write a Thank You Email using ChatGPT\n06:54 How ChatGPT can help with Salary Negotiation\n08:24 ChatGPT for Job Search: Part 1\n\n*RESOURCES I MENTION IN THE VIDEO*\nPrompts mentioned in this video - https://www.jeffsu.org/chatgpt-for-job-search-part-2\nChatGPT for Job Search (Part 1) - https://youtu.be/pmnY5V16GSE\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch", "I wish every Job Seeker would watch this", "d211f1ab-2178-4d55-806c-e0ae7a8b0a52", false, "ZXmbb5fPfgk", 1, [], 522, false, "https://www.youtube.com/watch?v=ZXmbb5fPfgk", 70, "/downloads/Jeff Su/2023-05-08 I wish every Job Seeker would watch this/I wish every Job Seeker would watch this [ZXmbb5fPfgk].mp4", false, false, 98, ~U[2023-05-08 13:00:29Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n😖\u00A0The job search process can be filled with uncertainty and conflicting advice. But we do know from Forbes and Resumebuilder that 46% of job seekers utilize #ChatGPT to assist them, and 69% of those individuals receive more interviews. To make the most of AI assistance, it's essential to provide high-quality prompts at each stage of the job search process.\n\nOne effective way to utilize ChatGPT is by enhancing your networking skills. For instance, to connect with a professional on #LinkedIn, you can use ChatGPT to analyze their profile and generate a personalized connection request. Moreover, ChatGPT can help you come up with tailored questions to ask during coffee chats, showing the professional that you've done your homework and are serious about learning from them.\n\nChatGPT can also help you compose follow-up emails after an interview, emphasizing your transferable skills and mentioning specific details from the conversation to show you were paying attention. Additionally, ChatGPT can guide you through salary negotiations by simulating a realistic conversation between a job seeker and a recruiter. By practicing with AI-generated responses, you can enter the negotiation process with more confidence and poise.\n\nPart 1 ➡️ https://youtu.be/pmnY5V16GSE\n\n\n*TIMESTAMPS*\n00:00 Why Job Seekers are using ChatGPT\n01:06 Land Coffee Chats using ChatGPT\n03:40 Smart Questions to ask during Coffee Chats\n04:59 Use ChatGPT to find Questions for the Interviewer\n06:04 Write a Thank You Email using ChatGPT\n06:54 How ChatGPT can help with Salary Negotiation\n08:24 ChatGPT for Job Search: Part 1\n\n*RESOURCES I MENTION IN THE VIDEO*\nPrompts mentioned in this video - https://www.jeffsu.org/chatgpt-for-job-search-part-2\nChatGPT for Job Search (Part 1) - https://youtu.be/pmnY5V16GSE\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#jobsearch", "I wish every Job Seeker would watch this", "ZXmbb5fPfgk", 1, 522, false, "https://www.youtube.com/watch?v=ZXmbb5fPfgk", "/downloads/Jeff Su/2023-05-08 I wish every Job Seeker would watch this/I wish every Job Seeker would watch this [ZXmbb5fPfgk].mp4", false, ~U[2023-05-08 13:00:29Z]] 16:58:29.616 [debug] QUERY OK source="sources" db=0.3ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.618 [debug] QUERY OK source="media_items" db=0.9ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-25 12:30:26Z], 1] 16:58:29.622 [debug] QUERY OK source="media_items" db=2.5ms idle=7.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=132\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nChatGPT is only as good as the prompts you use, so it’s important to use Prompt Engineering techniques when we use ChatGPT for job search! \n\nIn this video, learn how to effectively use ChatGPT for your job search, covering critical aspects such as crafting a compelling cover letter, tailoring your resume, and structuring interview answers.\n\nDiscover the power of a multi-prompt approach and various prompt engineering techniques to get better results from ChatGPT. \n\nI guide you through the process of identifying pain points, generating tailored responses, and creating quantifiable impact in your resume. \n\nMaster the art of interview preparation with our step-by-step instructions, utilizing frameworks like Present, Past, and Future and CARL. \n\nHere's Part 2 ➡️ https://youtu.be/ZXmbb5fPfgk\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why most ChatGPT Prompts Suck\n00:45 Use ChatGPT for your Cover Letter\n03:12 Use ChatGPT for your Resume\n04:46 Improve Bullet Points with ChatGPT\n06:42 Use ChatGPT for Tell Me About Yourself\n08:07 Prepare for Interviews with ChatGPT\n09:38 The Definitive Guide (Part 2)\n09:59 Huge Bonus Tip! \n\n*RESOURCES I MENTION IN THE VIDEO*\nPrompts mentioned in this video - https://www.jeffsu.org/chatgpt-for-job-search-part-1/\nChatGPT for Job Search (Part 2) - https://youtu.be/ZXmbb5fPfgk\nWrite an amazing Cover Letter - https://youtu.be/NUhDP30IRKk\nCraft an Incredible Resume - https://youtu.be/Tt08KmFfIYQ\nStructure “Tell me about yourself” - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\nAwesome Prompts GitHub page - https://github.com/f/awesome-chatgpt-prompts/blob/main/README.md#act-as-a-cover-letter\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatGPT #jobsearch #resume", "Land a Job using ChatGPT: The Definitive Guide!", "b9ddccfb-ebb5-4778-b0c8-8f032eb5b843", false, "pmnY5V16GSE", 1, [], 619, false, "https://www.youtube.com/watch?v=pmnY5V16GSE", 71, "/downloads/Jeff Su/2023-04-25 Land a Job using ChatGPT: The Definitive Guide!/Land a Job using ChatGPT: The Definitive Guide! [pmnY5V16GSE].mp4", false, false, 98, ~U[2023-04-25 12:30:26Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=132\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nChatGPT is only as good as the prompts you use, so it’s important to use Prompt Engineering techniques when we use ChatGPT for job search! \n\nIn this video, learn how to effectively use ChatGPT for your job search, covering critical aspects such as crafting a compelling cover letter, tailoring your resume, and structuring interview answers.\n\nDiscover the power of a multi-prompt approach and various prompt engineering techniques to get better results from ChatGPT. \n\nI guide you through the process of identifying pain points, generating tailored responses, and creating quantifiable impact in your resume. \n\nMaster the art of interview preparation with our step-by-step instructions, utilizing frameworks like Present, Past, and Future and CARL. \n\nHere's Part 2 ➡️ https://youtu.be/ZXmbb5fPfgk\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Why most ChatGPT Prompts Suck\n00:45 Use ChatGPT for your Cover Letter\n03:12 Use ChatGPT for your Resume\n04:46 Improve Bullet Points with ChatGPT\n06:42 Use ChatGPT for Tell Me About Yourself\n08:07 Prepare for Interviews with ChatGPT\n09:38 The Definitive Guide (Part 2)\n09:59 Huge Bonus Tip! \n\n*RESOURCES I MENTION IN THE VIDEO*\nPrompts mentioned in this video - https://www.jeffsu.org/chatgpt-for-job-search-part-1/\nChatGPT for Job Search (Part 2) - https://youtu.be/ZXmbb5fPfgk\nWrite an amazing Cover Letter - https://youtu.be/NUhDP30IRKk\nCraft an Incredible Resume - https://youtu.be/Tt08KmFfIYQ\nStructure “Tell me about yourself” - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\nAwesome Prompts GitHub page - https://github.com/f/awesome-chatgpt-prompts/blob/main/README.md#act-as-a-cover-letter\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#chatGPT #jobsearch #resume", "Land a Job using ChatGPT: The Definitive Guide!", "pmnY5V16GSE", 1, 619, false, "https://www.youtube.com/watch?v=pmnY5V16GSE", "/downloads/Jeff Su/2023-04-25 Land a Job using ChatGPT: The Definitive Guide!/Land a Job using ChatGPT: The Definitive Guide! [pmnY5V16GSE].mp4", false, ~U[2023-04-25 12:30:26Z]] 16:58:29.624 [debug] QUERY OK source="sources" db=1.2ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.625 [debug] QUERY OK source="media_items" db=0.9ms idle=8.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-11 13:00:04Z], 1] 16:58:29.628 [debug] QUERY OK source="media_items" db=2.1ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=131\n\nDownload my event management Notion template here 👉🏻\u00A0https://www.jeffsu.org/plan-an-entire-event-in-notion/\n\nAs a Product Marketing Manager, I’ve run hundreds of large-scale events at work but those usually involve spreadsheets with over 20 tabs! \n\nIn this video I share how to plan and organize smaller scale events (such as birthday parties) with ease using a simple Notion template 🎉\n\nThe template includes an overview page, action items table, timeline, invitees page, and comms page. The overview callout block allows brainstorming and sets the tone for the event. The action items table lists key milestones and progress, while the timeline page displays milestones in a visual format. \n\nThe invitees page keeps track of friends' status and +1s, and the comms page provides templates for invitation, confirmation, and reminder messages. \n\n💡\u00A0Pro tips include sorting views by due date, including a Notion button for default action items, and assuming a 20% drop-off rate.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Plan and Organize Events in Notion\n00:35 Notion Template Structure\n00:56 Event Overview\n01:30 Action Items for Event Management\n02:58 Event Timeline\n04:11 Invitee List\n05:07 Communication Plan\n06:53 Cost Management\n07:02 Advanced Event Planning Tips\n07:31 Bonus Tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy paid productivity newsletter - https://www.jeffsu.org/productivity-ping/\nThomas Frank’s Ultimate Tasks tutorial - https://youtu.be/tjAWsuz5MdM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #template #productivity", "Plan an ENTIRE Event on Notion (in 9 minutes)!", "b10599c9-5434-4a9c-84b4-dac623d666ad", false, "7lIfD9IYHGg", 1, [], 508, false, "https://www.youtube.com/watch?v=7lIfD9IYHGg", 72, "/downloads/Jeff Su/2023-04-11 Plan an ENTIRE Event on Notion (in 9 minutes)!/Plan an ENTIRE Event on Notion (in 9 minutes)! [7lIfD9IYHGg].mp4", false, false, 98, ~U[2023-04-11 13:00:04Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=131\n\nDownload my event management Notion template here 👉🏻\u00A0https://www.jeffsu.org/plan-an-entire-event-in-notion/\n\nAs a Product Marketing Manager, I’ve run hundreds of large-scale events at work but those usually involve spreadsheets with over 20 tabs! \n\nIn this video I share how to plan and organize smaller scale events (such as birthday parties) with ease using a simple Notion template 🎉\n\nThe template includes an overview page, action items table, timeline, invitees page, and comms page. The overview callout block allows brainstorming and sets the tone for the event. The action items table lists key milestones and progress, while the timeline page displays milestones in a visual format. \n\nThe invitees page keeps track of friends' status and +1s, and the comms page provides templates for invitation, confirmation, and reminder messages. \n\n💡\u00A0Pro tips include sorting views by due date, including a Notion button for default action items, and assuming a 20% drop-off rate.\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Plan and Organize Events in Notion\n00:35 Notion Template Structure\n00:56 Event Overview\n01:30 Action Items for Event Management\n02:58 Event Timeline\n04:11 Invitee List\n05:07 Communication Plan\n06:53 Cost Management\n07:02 Advanced Event Planning Tips\n07:31 Bonus Tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy paid productivity newsletter - https://www.jeffsu.org/productivity-ping/\nThomas Frank’s Ultimate Tasks tutorial - https://youtu.be/tjAWsuz5MdM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #template #productivity", "Plan an ENTIRE Event on Notion (in 9 minutes)!", "7lIfD9IYHGg", 1, 508, false, "https://www.youtube.com/watch?v=7lIfD9IYHGg", "/downloads/Jeff Su/2023-04-11 Plan an ENTIRE Event on Notion (in 9 minutes)!/Plan an ENTIRE Event on Notion (in 9 minutes)! [7lIfD9IYHGg].mp4", false, ~U[2023-04-11 13:00:04Z]] 16:58:29.629 [debug] QUERY OK source="sources" db=0.3ms decode=0.2ms idle=11.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.631 [debug] QUERY OK source="media_items" db=0.9ms idle=8.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-03-28 13:00:08Z], 1] 16:58:29.634 [debug] QUERY OK source="media_items" db=2.1ms idle=7.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=130\n\nNotion is a relatively intuitive tool for the most part, but I bet you’ll find at least 1 Notion tip for productivity you didn’t know before in this video on 15 UNCONVENTIONAL Notion Tips for Productivity!\n\nIn addition to the recent additions like Notion AI and the latest Notion Buttons update, I go over organization best practices for Notion databases and pages! \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Productive way to add icons in Notion\n00:35 Tab management in Notion\n01:27 Notion Database navigation tips\n01:58 Wrap individual columns\n02:11 Use custom icons for columns\n02:28 Edit properties directly in Gallery view\n02:42 Repeating templates with recurring actions\n03:12 Filter view: Date is relative to today\n03:26 Change start week to Monday\n03:41 Automatically update Day of the Week\n04:12 Add navigation toggle to page (for mobile)\n04:47 Database organization tips\n05:51 Notion page organization tips\n06:08 The one practical Notion AI tip (so far)\n06:58 Use Save to Notion with Notion AI\n07:12 Updated Notion Buttons feature\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Productive Weekly Planner video - https://youtu.be/XXYfRgXTEE0\nFormat Date Formula - formatDate(prop(\"Date\"), \"dddd\")\nThomas Frank’s Buttons video (real) - https://youtu.be/XX-SHfDagPM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #productivity #tips", "15 MUST-KNOW Notion tips for Productivity!", "df802310-db1e-4e7f-831a-169045602f0e", false, "CPYwVRtlxms", 1, [], 535, false, "https://www.youtube.com/watch?v=CPYwVRtlxms", 73, "/downloads/Jeff Su/2023-03-28 15 MUST-KNOW Notion tips for Productivity!/15 MUST-KNOW Notion tips for Productivity! [CPYwVRtlxms].mp4", false, false, 98, ~U[2023-03-28 13:00:08Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=130\n\nNotion is a relatively intuitive tool for the most part, but I bet you’ll find at least 1 Notion tip for productivity you didn’t know before in this video on 15 UNCONVENTIONAL Notion Tips for Productivity!\n\nIn addition to the recent additions like Notion AI and the latest Notion Buttons update, I go over organization best practices for Notion databases and pages! \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Productive way to add icons in Notion\n00:35 Tab management in Notion\n01:27 Notion Database navigation tips\n01:58 Wrap individual columns\n02:11 Use custom icons for columns\n02:28 Edit properties directly in Gallery view\n02:42 Repeating templates with recurring actions\n03:12 Filter view: Date is relative to today\n03:26 Change start week to Monday\n03:41 Automatically update Day of the Week\n04:12 Add navigation toggle to page (for mobile)\n04:47 Database organization tips\n05:51 Notion page organization tips\n06:08 The one practical Notion AI tip (so far)\n06:58 Use Save to Notion with Notion AI\n07:12 Updated Notion Buttons feature\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Productive Weekly Planner video - https://youtu.be/XXYfRgXTEE0\nFormat Date Formula - formatDate(prop(\"Date\"), \"dddd\")\nThomas Frank’s Buttons video (real) - https://youtu.be/XX-SHfDagPM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #productivity #tips", "15 MUST-KNOW Notion tips for Productivity!", "CPYwVRtlxms", 1, 535, false, "https://www.youtube.com/watch?v=CPYwVRtlxms", "/downloads/Jeff Su/2023-03-28 15 MUST-KNOW Notion tips for Productivity!/15 MUST-KNOW Notion tips for Productivity! [CPYwVRtlxms].mp4", false, ~U[2023-03-28 13:00:08Z]] 16:58:29.635 [debug] QUERY OK source="sources" db=0.3ms idle=9.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.636 [debug] QUERY OK source="media_items" db=1.0ms queue=0.2ms idle=7.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-03-14 13:00:21Z], 1] 16:58:29.639 [debug] QUERY OK source="media_items" db=2.2ms idle=7.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🌟\u00A0Here are literally the first 18 things I always do on a new Macbook Pro\n\nRight out of the box there are actually a lot of settings I recommend you DISABLE (e.g. true tone and slight dimming)\n\nApple thinks they know best sometimes, but they don’t 😏\n\nWe then move on to 1-time Finder setting changes that will help you become more productive in the long run\n\nFinally, I end with the 8 Mac apps I always install on new Macbooks that make the Mac experience just that much better!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Setup a New Macbook Pro\n00:12 Add 2 Fingerprints for Touch ID\n00:21 Display Settings\n01:00 Desktop and Dock\n01:33 Language and Region\n02:07 Lock Screen\n02:25 Ethernet Set Service Order\n02:44 Show Path Bar and Status Bar\n02:56 Customize Finder Toolbar\n03:23 Airdrop Pro Tip\n03:50 Finder Settings for Productivity\n04:34 Access Library Folder\n04:51 Migrate Fonts Folder to New MacBook\n05:07 Dock Settings for Productivity\n05:20 Tinkertool App\n06:02 Alfred App\n07:01 AppCleaner App\n07:35 VLC and IINA Media Players\n07:55 CleanshotX and Shottr Screenshot Apps\n08:15 Moom and Rectangle\n\n*RESOURCES I MENTION IN THE VIDEO*\nFull Alfred Tutorial - https://www.youtube.com/watch?v=FXV-zwkRMxo\nTinkertool - http://www.bresink.com/osx/0TinkerTool/download.php\nAlfred - https://www.alfredapp.com/\nAppCleaner - https://freemacsoft.net/appcleaner/\nVLC - https://www.videolan.org/vlc/\nIINA - https://iina.io/\nCleanshot - https://gumroad.com/a/529753203/dkaTQ\nShottr - https://shottr.cc/\nMoom - https://apps.apple.com/us/app/moom/id419330170?mt=12\nRectangle - https://rectangleapp.com/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#MacbookPro #productivity #Apple", "First 18 Things to Do for Productivity // New Macbook Pro!", "aa5de85c-3115-4e15-b22e-73a2a31e0ac3", false, "dVxMrVJ58as", 1, [], 522, false, "https://www.youtube.com/watch?v=dVxMrVJ58as", 74, "/downloads/Jeff Su/2023-03-14 First 18 Things to Do for Productivity ⧸⧸ New Macbook Pro!/First 18 Things to Do for Productivity ⧸⧸ New Macbook Pro! [dVxMrVJ58as].mp4", false, false, 98, ~U[2023-03-14 13:00:21Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🌟\u00A0Here are literally the first 18 things I always do on a new Macbook Pro\n\nRight out of the box there are actually a lot of settings I recommend you DISABLE (e.g. true tone and slight dimming)\n\nApple thinks they know best sometimes, but they don’t 😏\n\nWe then move on to 1-time Finder setting changes that will help you become more productive in the long run\n\nFinally, I end with the 8 Mac apps I always install on new Macbooks that make the Mac experience just that much better!\n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Setup a New Macbook Pro\n00:12 Add 2 Fingerprints for Touch ID\n00:21 Display Settings\n01:00 Desktop and Dock\n01:33 Language and Region\n02:07 Lock Screen\n02:25 Ethernet Set Service Order\n02:44 Show Path Bar and Status Bar\n02:56 Customize Finder Toolbar\n03:23 Airdrop Pro Tip\n03:50 Finder Settings for Productivity\n04:34 Access Library Folder\n04:51 Migrate Fonts Folder to New MacBook\n05:07 Dock Settings for Productivity\n05:20 Tinkertool App\n06:02 Alfred App\n07:01 AppCleaner App\n07:35 VLC and IINA Media Players\n07:55 CleanshotX and Shottr Screenshot Apps\n08:15 Moom and Rectangle\n\n*RESOURCES I MENTION IN THE VIDEO*\nFull Alfred Tutorial - https://www.youtube.com/watch?v=FXV-zwkRMxo\nTinkertool - http://www.bresink.com/osx/0TinkerTool/download.php\nAlfred - https://www.alfredapp.com/\nAppCleaner - https://freemacsoft.net/appcleaner/\nVLC - https://www.videolan.org/vlc/\nIINA - https://iina.io/\nCleanshot - https://gumroad.com/a/529753203/dkaTQ\nShottr - https://shottr.cc/\nMoom - https://apps.apple.com/us/app/moom/id419330170?mt=12\nRectangle - https://rectangleapp.com/\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#MacbookPro #productivity #Apple", "First 18 Things to Do for Productivity // New Macbook Pro!", "dVxMrVJ58as", 1, 522, false, "https://www.youtube.com/watch?v=dVxMrVJ58as", "/downloads/Jeff Su/2023-03-14 First 18 Things to Do for Productivity ⧸⧸ New Macbook Pro!/First 18 Things to Do for Productivity ⧸⧸ New Macbook Pro! [dVxMrVJ58as].mp4", false, ~U[2023-03-14 13:00:21Z]] 16:58:29.641 [debug] QUERY OK source="sources" db=0.7ms idle=9.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.642 [debug] QUERY OK source="media_items" db=0.8ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-28 13:00:40Z], 1] 16:58:29.645 [debug] QUERY OK source="media_items" db=2.0ms idle=7.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=128\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📑\u00A0Google Docs template: https://www.jeffsu.org/why-did-you-leave-your-last-job-explain-a-layoff/\n\nWhether you left your previous position on your own terms or you were laid off (aka fired), there’s a fool-proof framework you can use when faced with the “Why did you leave your last job” interview question!\n\n🌟\u00A0And that framework is: Facts-to-Future\n\nBasically you want to address the question directly with just the facts (so your emotions and opinions don’t get in the way), then pivot to what you REALLY want to talk about: how you are a good fit for this NEW role you’re interviewing for. \n\nIn this video I share 1 pro tip for each part of the framework AND I go through a sample answer to the “why did you leave your last role” interview question so you can see how everything ties together 😁\n\n*TIMESTAMPS*\n00:00 Why did you leave your last job?\n00:08 Framework for this interview question\n00:33 Facts\n01:29 Pivot\n02:00 Future\n02:44 Sample Answer\n04:01 Write your own answer\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle Docs template - https://www.jeffsu.org/why-did-you-leave-your-last-job-explain-a-layoff/\nWhy Do You Want to Work Here? https://youtu.be/x-4MewJpaso\nCommon Interview Questions & Answers Playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#interviewtips #explainalayoff #jobsearch", "Why Did You Leave Your Last Job? (explain a layoff)", "f3d370e5-2f19-4d2d-b2a1-56ba70d0b087", false, "tPlJjtQkpM0", 1, [], 259, false, "https://www.youtube.com/watch?v=tPlJjtQkpM0", 75, "/downloads/Jeff Su/2023-02-28 Why Did You Leave Your Last Job? (explain a layoff)/Why Did You Leave Your Last Job? (explain a layoff) [tPlJjtQkpM0].mp4", false, false, 98, ~U[2023-02-28 13:00:40Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=128\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📑\u00A0Google Docs template: https://www.jeffsu.org/why-did-you-leave-your-last-job-explain-a-layoff/\n\nWhether you left your previous position on your own terms or you were laid off (aka fired), there’s a fool-proof framework you can use when faced with the “Why did you leave your last job” interview question!\n\n🌟\u00A0And that framework is: Facts-to-Future\n\nBasically you want to address the question directly with just the facts (so your emotions and opinions don’t get in the way), then pivot to what you REALLY want to talk about: how you are a good fit for this NEW role you’re interviewing for. \n\nIn this video I share 1 pro tip for each part of the framework AND I go through a sample answer to the “why did you leave your last role” interview question so you can see how everything ties together 😁\n\n*TIMESTAMPS*\n00:00 Why did you leave your last job?\n00:08 Framework for this interview question\n00:33 Facts\n01:29 Pivot\n02:00 Future\n02:44 Sample Answer\n04:01 Write your own answer\n\n*RESOURCES I MENTION IN THE VIDEO*\nGoogle Docs template - https://www.jeffsu.org/why-did-you-leave-your-last-job-explain-a-layoff/\nWhy Do You Want to Work Here? https://youtu.be/x-4MewJpaso\nCommon Interview Questions & Answers Playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#interviewtips #explainalayoff #jobsearch", "Why Did You Leave Your Last Job? (explain a layoff)", "tPlJjtQkpM0", 1, 259, false, "https://www.youtube.com/watch?v=tPlJjtQkpM0", "/downloads/Jeff Su/2023-02-28 Why Did You Leave Your Last Job? (explain a layoff)/Why Did You Leave Your Last Job? (explain a layoff) [tPlJjtQkpM0].mp4", false, ~U[2023-02-28 13:00:40Z]] 16:58:29.646 [debug] QUERY OK source="sources" db=0.3ms idle=9.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.647 [debug] QUERY OK source="media_items" db=0.9ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-21 13:00:31Z], 1] 16:58:29.650 [debug] QUERY OK source="media_items" db=1.6ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Two HUGE benefits to adopting the Inbox Zero workflow:\n\n1️⃣\u00A0You will never get distracted by emails you have already dealt\n\n2️⃣\u00A0You will never again miss important emails \n\nThe Inbox Zero workflow was originally designed with Gmail in mind but that’s not going to stop us from applying the same concepts in Microsoft Outlook! \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Inbox Zero for Outlook\n00:18 Benefits of Inbox Zero\n00:45 Microsoft Outlook Settings\n03:03 Categories for Inbox Zero\n04:51 Daily Workflow Example\n08:21 How to Apply to Your Own Inbox\n08:33 Microsoft Outlook Drawbacks\n\n*RESOURCES I MENTION IN THE VIDEO*\n(note: Inbox Zero for Gmail is outdated, new video in the works)\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#inboxzero #microsoftoutlook #productivity", "Achieve INBOX ZERO on Outlook (in 10 minutes)!", "85933f64-59bf-448f-8d3d-87a77b34681b", false, "U8LKXbUxf-M", 1, [], 669, false, "https://www.youtube.com/watch?v=U8LKXbUxf-M", 76, "/downloads/Jeff Su/2023-02-21 Achieve INBOX ZERO on Outlook (in 10 minutes)!/Achieve INBOX ZERO on Outlook (in 10 minutes)! [U8LKXbUxf-M].mp4", false, false, 98, ~U[2023-02-21 13:00:31Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "Two HUGE benefits to adopting the Inbox Zero workflow:\n\n1️⃣\u00A0You will never get distracted by emails you have already dealt\n\n2️⃣\u00A0You will never again miss important emails \n\nThe Inbox Zero workflow was originally designed with Gmail in mind but that’s not going to stop us from applying the same concepts in Microsoft Outlook! \n\n*THE NO BS PRODUCTIVITY NEWSLETTER* 📧\nhttps://www.jeffsu.org/productivity-ping/\n\n*TIMESTAMPS*\n00:00 Inbox Zero for Outlook\n00:18 Benefits of Inbox Zero\n00:45 Microsoft Outlook Settings\n03:03 Categories for Inbox Zero\n04:51 Daily Workflow Example\n08:21 How to Apply to Your Own Inbox\n08:33 Microsoft Outlook Drawbacks\n\n*RESOURCES I MENTION IN THE VIDEO*\n(note: Inbox Zero for Gmail is outdated, new video in the works)\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#inboxzero #microsoftoutlook #productivity", "Achieve INBOX ZERO on Outlook (in 10 minutes)!", "U8LKXbUxf-M", 1, 669, false, "https://www.youtube.com/watch?v=U8LKXbUxf-M", "/downloads/Jeff Su/2023-02-21 Achieve INBOX ZERO on Outlook (in 10 minutes)!/Achieve INBOX ZERO on Outlook (in 10 minutes)! [U8LKXbUxf-M].mp4", false, ~U[2023-02-21 13:00:31Z]] 16:58:29.651 [debug] QUERY OK source="sources" db=0.3ms idle=8.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.652 [debug] QUERY OK source="media_items" db=0.8ms idle=6.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-07 13:00:04Z], 1] 16:58:29.655 [debug] QUERY OK source="media_items" db=1.7ms idle=6.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📘\u00A0Order a copy of The Making of a Manager: https://amzn.to/3Yp72jA\n\nWe’ve all had good managers who bring out the best in us, and bad managers who we avoid as much as possible. \n\nBut if we think about it, what really sets these two types of managers apart?\n\nIn The Making of a Manager, Julie Zhuo shares 8 universal qualities all great managers have and in this video, I go through the top 3 that I think make the biggest difference.\n\nEnjoy 😁\n\n*TIMESTAMPS*\n00:00 What Qualities do Great Managers Have?\n01:05 Great Managers Build Trust\n03:03 Great Managers Give Great Feedback\n04:54 Great Managers Run Amazing Meetings\n06:05 Remaining 5 Qualities Great Managers Have\n\n*RESOURCES I MENTION IN THE VIDEO*\nProductive 1:1’s with Your Manager: https://youtu.be/LWz57CpcSnE\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#makingofamanager #peoplemanagers #juliezhuo", "What Makes a GREAT Manager? (it’s not what you think)", "7da9d04b-b614-4336-8976-da092457370f", false, "84kPR_NDjI8", 1, [], 440, false, "https://www.youtube.com/watch?v=84kPR_NDjI8", 77, "/downloads/Jeff Su/2023-02-07 What Makes a GREAT Manager? (it’s not what you think)/What Makes a GREAT Manager? (it’s not what you think) [84kPR_NDjI8].mp4", false, false, 98, ~U[2023-02-07 13:00:04Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "📘\u00A0Order a copy of The Making of a Manager: https://amzn.to/3Yp72jA\n\nWe’ve all had good managers who bring out the best in us, and bad managers who we avoid as much as possible. \n\nBut if we think about it, what really sets these two types of managers apart?\n\nIn The Making of a Manager, Julie Zhuo shares 8 universal qualities all great managers have and in this video, I go through the top 3 that I think make the biggest difference.\n\nEnjoy 😁\n\n*TIMESTAMPS*\n00:00 What Qualities do Great Managers Have?\n01:05 Great Managers Build Trust\n03:03 Great Managers Give Great Feedback\n04:54 Great Managers Run Amazing Meetings\n06:05 Remaining 5 Qualities Great Managers Have\n\n*RESOURCES I MENTION IN THE VIDEO*\nProductive 1:1’s with Your Manager: https://youtu.be/LWz57CpcSnE\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#makingofamanager #peoplemanagers #juliezhuo", "What Makes a GREAT Manager? (it’s not what you think)", "84kPR_NDjI8", 1, 440, false, "https://www.youtube.com/watch?v=84kPR_NDjI8", "/downloads/Jeff Su/2023-02-07 What Makes a GREAT Manager? (it’s not what you think)/What Makes a GREAT Manager? (it’s not what you think) [84kPR_NDjI8].mp4", false, ~U[2023-02-07 13:00:04Z]] 16:58:29.656 [debug] QUERY OK source="sources" db=0.3ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.657 [debug] QUERY OK source="media_items" db=0.9ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-01-24 13:00:25Z], 1] 16:58:29.660 [debug] QUERY OK source="media_items" db=1.8ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=125\n\nTired of performing necessary yet repetitive tasks at work? \n\nLet’s go over my 8 favorite set-and-forget productivity tips for work that are huge time-savers in the long run 🏃🏻\n\nThese tips include: updating default settings in Google Docs, Sheets, Slides, and even the Microsoft Suite of tools; using group aliases for Google Calendar and Drive; setting up Appointment Slots for automated scheduling; creating filters in Gmail, and much more! \n\n*TIMESTAMPS*\n00:00 Stop Performing Repetitive Tasks\n00:18 Challenge the Status Quo\n01:24 Grouping for Efficiency\n02:13 Automate Back-and-Forths\n03:44 Filter out the Trash\n04:59 Make an Offer They Can’t Refuse\n05:41 The Self-Serve Checkout\n06:28 Consistent File Management\n07:22 Two Minute Rule for Your Inbox\n\n*RESOURCES I MENTION IN THE VIDEO*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\nMy Alfred Tutorial - https://www.youtube.com/watch?v=FXV-zwkRMxo\nImportant Spreadsheet Formulas to know - https://www.youtube.com/watch?v=98dnBA5WYLY\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity #timesavers #workspace", "8 Productivity Tips for Work (that pay off forever)!", "bb2f4be2-d7f8-49d6-92d9-e5dbef907989", false, "QHrWMMlVYRA", 1, [], 493, false, "https://www.youtube.com/watch?v=QHrWMMlVYRA", 78, "/downloads/Jeff Su/2023-01-24 8 Productivity Tips for Work (that pay off forever)!/8 Productivity Tips for Work (that pay off forever)! [QHrWMMlVYRA].mp4", false, false, 98, ~U[2023-01-24 13:00:25Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=125\n\nTired of performing necessary yet repetitive tasks at work? \n\nLet’s go over my 8 favorite set-and-forget productivity tips for work that are huge time-savers in the long run 🏃🏻\n\nThese tips include: updating default settings in Google Docs, Sheets, Slides, and even the Microsoft Suite of tools; using group aliases for Google Calendar and Drive; setting up Appointment Slots for automated scheduling; creating filters in Gmail, and much more! \n\n*TIMESTAMPS*\n00:00 Stop Performing Repetitive Tasks\n00:18 Challenge the Status Quo\n01:24 Grouping for Efficiency\n02:13 Automate Back-and-Forths\n03:44 Filter out the Trash\n04:59 Make an Offer They Can’t Refuse\n05:41 The Self-Serve Checkout\n06:28 Consistent File Management\n07:22 Two Minute Rule for Your Inbox\n\n*RESOURCES I MENTION IN THE VIDEO*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\nMy Alfred Tutorial - https://www.youtube.com/watch?v=FXV-zwkRMxo\nImportant Spreadsheet Formulas to know - https://www.youtube.com/watch?v=98dnBA5WYLY\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#productivity #timesavers #workspace", "8 Productivity Tips for Work (that pay off forever)!", "QHrWMMlVYRA", 1, 493, false, "https://www.youtube.com/watch?v=QHrWMMlVYRA", "/downloads/Jeff Su/2023-01-24 8 Productivity Tips for Work (that pay off forever)!/8 Productivity Tips for Work (that pay off forever)! [QHrWMMlVYRA].mp4", false, ~U[2023-01-24 13:00:25Z]] 16:58:29.661 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:29.662 [debug] QUERY OK source="media_items" db=1.0ms idle=6.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-01-10 13:00:27Z], 1] 16:58:29.665 [debug] QUERY OK source="media_items" db=1.8ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=124\n\n*Make a copy of my template here* 👉🏻\u00A0https://www.jeffsu.org/a-productive-notion-daily-planner-for-2023\n\n*Sign up for my Productivity Newsletter* 📬 https://www.jeffsu.org/productivity-ping/\n\nSince my first video on how to plan a productive day on Notion (https://youtu.be/sZB8OZoSIyU), I’ve been obsessed with creating the most efficient Daily Planner on Notion (minimal effort, maximum returns)\n\nAfter 3 years of tweaking, I think we’re 90% of the way there! This Productive Daily Planner for Notion keeps the core elements from previous templates (e.g. Make Time workflow) while improving upon the usability (i.e. no need to create a new page for each week)\n\nEnjoy 😁\n\n*TIMESTAMPS*\n00:00 A Productive Notion Daily Planner\n00:40 Structure of Daily Planner Agenda\n01:41 Daily Tasks\n04:16 Make Time Database\n05:32 Projects and Upcoming Tasks\n06:40 Pro Tips when using this Planner\n07:54 Feedback for this Notion Daily Planner\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Simple Productivity System - https://youtu.be/7M6bIeVbCqA\nThomas Frank’s video - https://youtu.be/tjAWsuz5MdM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #dailyplanner #productivity", "A Productive Notion Daily Planner!", "dd7b016a-587e-4f45-a14b-a49591fcb076", false, "XXYfRgXTEE0", 1, [], 486, false, "https://www.youtube.com/watch?v=XXYfRgXTEE0", 79, "/downloads/Jeff Su/2023-01-10 A Productive Notion Daily Planner!/A Productive Notion Daily Planner! [XXYfRgXTEE0].mp4", false, false, 98, ~U[2023-01-10 13:00:27Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=124\n\n*Make a copy of my template here* 👉🏻\u00A0https://www.jeffsu.org/a-productive-notion-daily-planner-for-2023\n\n*Sign up for my Productivity Newsletter* 📬 https://www.jeffsu.org/productivity-ping/\n\nSince my first video on how to plan a productive day on Notion (https://youtu.be/sZB8OZoSIyU), I’ve been obsessed with creating the most efficient Daily Planner on Notion (minimal effort, maximum returns)\n\nAfter 3 years of tweaking, I think we’re 90% of the way there! This Productive Daily Planner for Notion keeps the core elements from previous templates (e.g. Make Time workflow) while improving upon the usability (i.e. no need to create a new page for each week)\n\nEnjoy 😁\n\n*TIMESTAMPS*\n00:00 A Productive Notion Daily Planner\n00:40 Structure of Daily Planner Agenda\n01:41 Daily Tasks\n04:16 Make Time Database\n05:32 Projects and Upcoming Tasks\n06:40 Pro Tips when using this Planner\n07:54 Feedback for this Notion Daily Planner\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Simple Productivity System - https://youtu.be/7M6bIeVbCqA\nThomas Frank’s video - https://youtu.be/tjAWsuz5MdM\n\n*MY FAVORITE GEAR*\n🎬 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n🎒\u00A0Everyday Carry - https://www.jeffsu.org/my-edc/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#notion #dailyplanner #productivity", "A Productive Notion Daily Planner!", "XXYfRgXTEE0", 1, 486, false, "https://www.youtube.com/watch?v=XXYfRgXTEE0", "/downloads/Jeff Su/2023-01-10 A Productive Notion Daily Planner!/A Productive Notion Daily Planner! [XXYfRgXTEE0].mp4", false, ~U[2023-01-10 13:00:27Z]] 16:58:29.666 [debug] QUERY OK source="sources" db=0.4ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.667 [debug] QUERY OK source="media_items" db=0.9ms idle=7.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-27 13:00:07Z], 1] 16:58:29.677 [debug] QUERY OK source="media_items" db=8.0ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Turned 30 this year so I spent a bit of time thinking about habits I wish I had started sooner\n\nHere are the 5 “unexpected” (aka unconventional) habits I ignored in my 20’s but hey, better late than never right? ✌🏻\n\n*TIMESTAMPS*\n00:00 5 Habits I Did NOT Ignore\n00:43 Wish People Happy Birthday\n02:15 Moisturize and Apply Sunscreen\n03:56 Close the Loop\n05:10 Read Less, Review More\n06:31 Be a Guide, Not a Guru\n07:59 Bonus Habit\n\n*RESOURCES I MENTION IN THE VIDEO*\n🥺 La Roche-Posay Moisturizer: https://amzn.to/3CrUwHu\n☀️ La Roche-Posay Sunscreen: https://amzn.to/3vMKjRW\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n🎂\u00A0Birthday Exporter - https://chrome.google.com/webstore/detail/birthday-calendar-exporte/imielmggcccenhgncmpjlehemlinhjjo?hl=en\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#unconventionalhabits #dailyhabits #selfimprovement", "5 Habits I Ignored in My 20s", "6d063ca8-d3a0-4137-9581-f3a7bda41351", false, "99-bTIKU8OE", 1, [], 507, false, "https://www.youtube.com/watch?v=99-bTIKU8OE", 80, "/downloads/Jeff Su/2022-12-27 5 Habits I Ignored in My 20s/5 Habits I Ignored in My 20s [99-bTIKU8OE].mp4", false, false, 98, ~U[2022-12-27 13:00:07Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "Turned 30 this year so I spent a bit of time thinking about habits I wish I had started sooner\n\nHere are the 5 “unexpected” (aka unconventional) habits I ignored in my 20’s but hey, better late than never right? ✌🏻\n\n*TIMESTAMPS*\n00:00 5 Habits I Did NOT Ignore\n00:43 Wish People Happy Birthday\n02:15 Moisturize and Apply Sunscreen\n03:56 Close the Loop\n05:10 Read Less, Review More\n06:31 Be a Guide, Not a Guru\n07:59 Bonus Habit\n\n*RESOURCES I MENTION IN THE VIDEO*\n🥺 La Roche-Posay Moisturizer: https://amzn.to/3CrUwHu\n☀️ La Roche-Posay Sunscreen: https://amzn.to/3vMKjRW\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n🎂\u00A0Birthday Exporter - https://chrome.google.com/webstore/detail/birthday-calendar-exporte/imielmggcccenhgncmpjlehemlinhjjo?hl=en\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#unconventionalhabits #dailyhabits #selfimprovement", "5 Habits I Ignored in My 20s", "99-bTIKU8OE", 1, 507, false, "https://www.youtube.com/watch?v=99-bTIKU8OE", "/downloads/Jeff Su/2022-12-27 5 Habits I Ignored in My 20s/5 Habits I Ignored in My 20s [99-bTIKU8OE].mp4", false, ~U[2022-12-27 13:00:07Z]] 16:58:29.677 [debug] QUERY OK source="sources" db=0.3ms idle=14.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.679 [debug] QUERY OK source="media_items" db=1.0ms idle=13.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-06 13:00:25Z], 1] 16:58:29.682 [debug] QUERY OK source="media_items" db=1.7ms idle=13.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Macro-Micro Roadmap: https://www.jeffsu.org/the-definitive-guide-to-getting-promoted-at-work\n\nSubscribe to my Career newsletter: https://www.jeffsu.org/the-debrief/\n\nThe bad news? Your next promotion is 80% determined by your manager 😞\n\nThe good news? There is a 100% chance you’ll be able to influence that 80% 😏\n\nHaving been promoted 4 times in the last 8 years of my career in management consulting and tech, here are my top 5 learnings!\n\n*TIMESTAMPS*\n00:00 How to Get Promoted Every 2 Years\n00:36 Create a Macro-Micro Roadmap\n01:43 Manage Up, and Across\n03:07 Don’t Beat Around the Bush\n03:57 Play the Game, and Keep Score\n05:25 Be the Master of One\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Top 5 Productivity Tips for Work - https://youtu.be/1LOlJay5Sbw\nDickie Bush question list (same doc as Macro-Micro Roadmap) - https://www.jeffsu.org/the-definitive-guide-to-getting-promoted-at-work\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#promotion #careertips #productivityatwork", "5 Steps to Get Your Next Promotion at Work!", "0cfc62d5-b196-4459-b7b7-6d0b150c9eec", false, "bQV58TZW6hQ", 1, [], 386, false, "https://www.youtube.com/watch?v=bQV58TZW6hQ", 81, "/downloads/Jeff Su/2022-12-06 5 Steps to Get Your Next Promotion at Work!/5 Steps to Get Your Next Promotion at Work! [bQV58TZW6hQ].mp4", false, false, 98, ~U[2022-12-06 13:00:25Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "My Macro-Micro Roadmap: https://www.jeffsu.org/the-definitive-guide-to-getting-promoted-at-work\n\nSubscribe to my Career newsletter: https://www.jeffsu.org/the-debrief/\n\nThe bad news? Your next promotion is 80% determined by your manager 😞\n\nThe good news? There is a 100% chance you’ll be able to influence that 80% 😏\n\nHaving been promoted 4 times in the last 8 years of my career in management consulting and tech, here are my top 5 learnings!\n\n*TIMESTAMPS*\n00:00 How to Get Promoted Every 2 Years\n00:36 Create a Macro-Micro Roadmap\n01:43 Manage Up, and Across\n03:07 Don’t Beat Around the Bush\n03:57 Play the Game, and Keep Score\n05:25 Be the Master of One\n\n*RESOURCES I MENTION IN THE VIDEO*\nMy Top 5 Productivity Tips for Work - https://youtu.be/1LOlJay5Sbw\nDickie Bush question list (same doc as Macro-Micro Roadmap) - https://www.jeffsu.org/the-definitive-guide-to-getting-promoted-at-work\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer_ 😇\n\n#promotion #careertips #productivityatwork", "5 Steps to Get Your Next Promotion at Work!", "bQV58TZW6hQ", 1, 386, false, "https://www.youtube.com/watch?v=bQV58TZW6hQ", "/downloads/Jeff Su/2022-12-06 5 Steps to Get Your Next Promotion at Work!/5 Steps to Get Your Next Promotion at Work! [bQV58TZW6hQ].mp4", false, ~U[2022-12-06 13:00:25Z]] 16:58:29.683 [debug] QUERY OK source="sources" db=0.3ms idle=14.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.684 [debug] QUERY OK source="media_items" db=0.9ms idle=6.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-22 13:00:35Z], 1] 16:58:29.713 [debug] QUERY OK source="media_items" db=27.5ms idle=7.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=121\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📧\u00A0Pressing “Send” is easy, but writing a memorable thank you email is not. Here are my top 3 tips for an amazing post-interview email!\n\nMy Interview Questions & Answers Playlist 👉🏻\u00A0https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nFirst, the trick is to actually start DURING the interview itself and write down 1 specific detail the interviewer seems to care most about, and bring that detail up in the post-interview follow up email to show you were paying attention\n\nNext, while it seems obvious to know the interviewer’s email (duh!) you sometimes actually forget to ask for it before leaving the interview. In that case you can ask the recruiter for help or try to find the email on your own\n\nFinally, don’t be afraid to be shameless! You worked SO HARD on the job application, you prepared SO MUCH for the interview. If you don’t get a respond to your thank note, wait a week and follow up!\n\n*TIMESTAMPS*\n00:00 How to write a post interview email\n00:28 Why a thank you email is important\n00:51 Point to something specific\n03:09 Find interviewers’ email address\n03:56 Pleasant persistence\n04:37 Bonus tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload the Thank You Email Template - https://www.jeffsu.org/how-to-write-a-memorable-thank-you-email\nThe CARL Answer Structure - https://www.youtube.com/watch?v=gZ2354BH0a0\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇_\n\n#interviewtips #jobsearch #thankyouemail", "Write a PERFECT Interview Thank You Email!", "d81de1a2-581c-4ece-9340-1931d2b540fc", false, "gSbV3q_MMbg", 1, [], 340, false, "https://www.youtube.com/watch?v=gSbV3q_MMbg", 82, "/downloads/Jeff Su/2022-11-22 Write a PERFECT Interview Thank You Email!/Write a PERFECT Interview Thank You Email! [gSbV3q_MMbg].mp4", false, false, 98, ~U[2022-11-22 13:00:35Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=121\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📧\u00A0Pressing “Send” is easy, but writing a memorable thank you email is not. Here are my top 3 tips for an amazing post-interview email!\n\nMy Interview Questions & Answers Playlist 👉🏻\u00A0https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nFirst, the trick is to actually start DURING the interview itself and write down 1 specific detail the interviewer seems to care most about, and bring that detail up in the post-interview follow up email to show you were paying attention\n\nNext, while it seems obvious to know the interviewer’s email (duh!) you sometimes actually forget to ask for it before leaving the interview. In that case you can ask the recruiter for help or try to find the email on your own\n\nFinally, don’t be afraid to be shameless! You worked SO HARD on the job application, you prepared SO MUCH for the interview. If you don’t get a respond to your thank note, wait a week and follow up!\n\n*TIMESTAMPS*\n00:00 How to write a post interview email\n00:28 Why a thank you email is important\n00:51 Point to something specific\n03:09 Find interviewers’ email address\n03:56 Pleasant persistence\n04:37 Bonus tip\n\n*RESOURCES I MENTION IN THE VIDEO*\nDownload the Thank You Email Template - https://www.jeffsu.org/how-to-write-a-memorable-thank-you-email\nThe CARL Answer Structure - https://www.youtube.com/watch?v=gZ2354BH0a0\n\n*MY FAVORITE GEAR*\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\n*BE MY FRIEND:*\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n*👨🏻\u200D💻 WHO AM I:*\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\n_PS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇_\n\n#interviewtips #jobsearch #thankyouemail", "Write a PERFECT Interview Thank You Email!", "gSbV3q_MMbg", 1, 340, false, "https://www.youtube.com/watch?v=gSbV3q_MMbg", "/downloads/Jeff Su/2022-11-22 Write a PERFECT Interview Thank You Email!/Write a PERFECT Interview Thank You Email! [gSbV3q_MMbg].mp4", false, ~U[2022-11-22 13:00:35Z]] 16:58:29.714 [debug] QUERY OK source="sources" db=0.4ms idle=34.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.715 [debug] QUERY OK source="media_items" db=0.9ms idle=32.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-15 13:15:04Z], 1] 16:58:29.719 [debug] QUERY OK source="media_items" db=1.9ms idle=33.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I’ve actually been asked whether I thought I wasted 2 years in management consulting by quite a few people (including my mom, who thought I wasted my time lol), so I gave it some serious thought 🤔\n\nBut I always came to the same conclusion: had I not joined consulting, I really don’t think I would have adopted a framework mentality towards problem solving since I wouldn’t have gone through the case interview process \n\nAnd this skills is going to benefit me for the rest of my life, so 100% worth it ✌🏻\n\nTIMESTAMPS\n00:00 Why I might have wasted 2 years\n00:43 What I got out of Management Consulting\n01:29 How to Problem Solve using Frameworks\n02:45 Example: Business planning\n03:55 Example: Starting a new job\n04:27 How you can use frameworks \n\nRESOURCES I MENTION IN THE VIDEO\nVictor Cheng’s Business Situation Framework - https://www.caseinterview.com/case_interview_frameworks.pdf\nCommunicate effectively at work - https://youtu.be/8bZGi3yz4qg\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#careertips #consulting #tech", "Did I Waste 2 Years in Management Consulting?", "4b29750d-09c8-4b1e-b0f9-92c26997c82a", false, "lcRILuvAWgU", 1, [], 320, false, "https://www.youtube.com/watch?v=lcRILuvAWgU", 83, "/downloads/Jeff Su/2022-11-15 Did I Waste 2 Years in Management Consulting?/Did I Waste 2 Years in Management Consulting? [lcRILuvAWgU].mp4", false, false, 98, ~U[2022-11-15 13:15:04Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "I’ve actually been asked whether I thought I wasted 2 years in management consulting by quite a few people (including my mom, who thought I wasted my time lol), so I gave it some serious thought 🤔\n\nBut I always came to the same conclusion: had I not joined consulting, I really don’t think I would have adopted a framework mentality towards problem solving since I wouldn’t have gone through the case interview process \n\nAnd this skills is going to benefit me for the rest of my life, so 100% worth it ✌🏻\n\nTIMESTAMPS\n00:00 Why I might have wasted 2 years\n00:43 What I got out of Management Consulting\n01:29 How to Problem Solve using Frameworks\n02:45 Example: Business planning\n03:55 Example: Starting a new job\n04:27 How you can use frameworks \n\nRESOURCES I MENTION IN THE VIDEO\nVictor Cheng’s Business Situation Framework - https://www.caseinterview.com/case_interview_frameworks.pdf\nCommunicate effectively at work - https://youtu.be/8bZGi3yz4qg\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#careertips #consulting #tech", "Did I Waste 2 Years in Management Consulting?", "lcRILuvAWgU", 1, 320, false, "https://www.youtube.com/watch?v=lcRILuvAWgU", "/downloads/Jeff Su/2022-11-15 Did I Waste 2 Years in Management Consulting?/Did I Waste 2 Years in Management Consulting? [lcRILuvAWgU].mp4", false, ~U[2022-11-15 13:15:04Z]] 16:58:29.719 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=34.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.721 [debug] QUERY OK source="media_items" db=1.2ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-01 12:45:01Z], 1] 16:58:29.724 [debug] QUERY OK source="media_items" db=1.7ms idle=7.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Here are the 6 Underrated Macbook Apps for Productivity:\n\nshottr - https://shottr.cc/\nCleanShot X - https://geni.us/cleanshotx\nMac Mouse Fix - https://mousefix.org/\nTempBox - https://tempbox.waseem.works/\nLatest - https://github.com/mangerlahn/Latest\nHovrly - https://hovrly.com/\nStickies - You already have it! 😉\n\n*The original Top 10 Macbook Productivity Apps* 👉🏻\u00A0https://youtu.be/-xXc7qeiC8I\n\nMost of these above apps are open source, and they’re ALL free to use. While a few of them are relatively simple (e.g. you can add Timezones in Google Calendar instead of using Hovrly), they’re just so lightweight and user-friendly! \n\nTIMESTAMPS\n00:00 Are Free Mac Apps Just Better?\n00:24 shottr\n02:44 Why I still use CleanShot X\n02:57 Mac Mouse Fix\n04:11 TempBox\n05:30 Latest\n06:08 Hovrly\n06:50 Stickies\n\nRESOURCES MENTIONED\nMust-Have File Management Apps - https://youtu.be/gcJDDSv7Gq8\nTop 10 Productivity Apps for the Mac - https://youtu.be/-xXc7qeiC8I\nProductive Macbook Tips - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zMWvqbdy1uoJ0IrJ2xyVQG\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#macbook #macapps #productivity", "6 Underrated Macbook Apps for Productivity!", "ed5b79dd-bacc-421c-8bb2-15ac08a8e206", false, "gkYNdy-Hig4", 1, [], 489, false, "https://www.youtube.com/watch?v=gkYNdy-Hig4", 84, "/downloads/Jeff Su/2022-11-01 6 Underrated Macbook Apps for Productivity!/6 Underrated Macbook Apps for Productivity! [gkYNdy-Hig4].mp4", false, false, 98, ~U[2022-11-01 12:45:01Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "Here are the 6 Underrated Macbook Apps for Productivity:\n\nshottr - https://shottr.cc/\nCleanShot X - https://geni.us/cleanshotx\nMac Mouse Fix - https://mousefix.org/\nTempBox - https://tempbox.waseem.works/\nLatest - https://github.com/mangerlahn/Latest\nHovrly - https://hovrly.com/\nStickies - You already have it! 😉\n\n*The original Top 10 Macbook Productivity Apps* 👉🏻\u00A0https://youtu.be/-xXc7qeiC8I\n\nMost of these above apps are open source, and they’re ALL free to use. While a few of them are relatively simple (e.g. you can add Timezones in Google Calendar instead of using Hovrly), they’re just so lightweight and user-friendly! \n\nTIMESTAMPS\n00:00 Are Free Mac Apps Just Better?\n00:24 shottr\n02:44 Why I still use CleanShot X\n02:57 Mac Mouse Fix\n04:11 TempBox\n05:30 Latest\n06:08 Hovrly\n06:50 Stickies\n\nRESOURCES MENTIONED\nMust-Have File Management Apps - https://youtu.be/gcJDDSv7Gq8\nTop 10 Productivity Apps for the Mac - https://youtu.be/-xXc7qeiC8I\nProductive Macbook Tips - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zMWvqbdy1uoJ0IrJ2xyVQG\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#macbook #macapps #productivity", "6 Underrated Macbook Apps for Productivity!", "gkYNdy-Hig4", 1, 489, false, "https://www.youtube.com/watch?v=gkYNdy-Hig4", "/downloads/Jeff Su/2022-11-01 6 Underrated Macbook Apps for Productivity!/6 Underrated Macbook Apps for Productivity! [gkYNdy-Hig4].mp4", false, ~U[2022-11-01 12:45:01Z]] 16:58:29.725 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=9.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.727 [debug] QUERY OK source="media_items" db=1.9ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-10-25 13:00:11Z], 1] 16:58:29.730 [debug] QUERY OK source="media_items" db=2.1ms idle=8.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🧑🏻\u200D💻\u00A0LinkedIn profiles are dynamic, so here are the 5 changes we working professionals can make to set ourselves for future success!\n\nMy full LinkedIn playlist 👉🏻\u00A0https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\n\nThe 3 types of people who use LinkedIn all have different LinkedIn profiles because they all have different goals.\n\nJob seekers want to land a job, entrepreneurs want to land clients, and working professionals…well we want to capture the attention of potential employers, hiring managers, and headhunters! \n\nIf you have a portfolio or website you want to show off, add it to your intro section! Or if you have more than 1 link, add them all to your Featured Section (just remember only 3 will be visible at a time on LinkedIn)\n\nWorking professionals can also piggyback on existing performance review processes since what makes for a good self-evaluation also makes for a good LinkedIn experiences section\n\nGood LinkedIn profile hygiene include asking for recommendations regularly, updating your title to reflect the most recent/senior position, and having 1 primary job title even if you wear multiple hats!\n\nFinally, while this isn’t a “must-do” for everyone, I highly recommend actively engaging on LinkedIn since everyone (yes even you 😉) has something unique to share!\n\nTIMESTAMPS\n00:00 Different Types of LinkedIn Profiles\n00:50 Add Website to Your Intro Section\n01:47 Don’t Sell Yourself Short\n03:04 Two Birds, One Stone\n03:45 Re-Purpose Your Colleagues\n05:11 Die a Hero or Become the Villain\n\nRESOURCES I MENTION IN THE VIDEO\nMy full LinkedIn Playlist - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nTop 5 Productivity Tips for Work - https://youtu.be/1LOlJay5Sbw\nAustin Belcak’s 15+ Tips for LinkedIn - https://cultivatedculture.com/linkedin-profile-tips/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#linkedin #workingprofessional #career", "5 MUST-DO LinkedIn Profile Tips (that pay off forever)!", "1616e256-9f16-43b7-87a4-18cfbd0aba85", false, "OHTRZKg2LS0", 1, [], 397, false, "https://www.youtube.com/watch?v=OHTRZKg2LS0", 85, "/downloads/Jeff Su/2022-10-25 5 MUST-DO LinkedIn Profile Tips (that pay off forever)!/5 MUST-DO LinkedIn Profile Tips (that pay off forever)! [OHTRZKg2LS0].mp4", false, false, 98, ~U[2022-10-25 13:00:11Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🧑🏻\u200D💻\u00A0LinkedIn profiles are dynamic, so here are the 5 changes we working professionals can make to set ourselves for future success!\n\nMy full LinkedIn playlist 👉🏻\u00A0https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\n\nThe 3 types of people who use LinkedIn all have different LinkedIn profiles because they all have different goals.\n\nJob seekers want to land a job, entrepreneurs want to land clients, and working professionals…well we want to capture the attention of potential employers, hiring managers, and headhunters! \n\nIf you have a portfolio or website you want to show off, add it to your intro section! Or if you have more than 1 link, add them all to your Featured Section (just remember only 3 will be visible at a time on LinkedIn)\n\nWorking professionals can also piggyback on existing performance review processes since what makes for a good self-evaluation also makes for a good LinkedIn experiences section\n\nGood LinkedIn profile hygiene include asking for recommendations regularly, updating your title to reflect the most recent/senior position, and having 1 primary job title even if you wear multiple hats!\n\nFinally, while this isn’t a “must-do” for everyone, I highly recommend actively engaging on LinkedIn since everyone (yes even you 😉) has something unique to share!\n\nTIMESTAMPS\n00:00 Different Types of LinkedIn Profiles\n00:50 Add Website to Your Intro Section\n01:47 Don’t Sell Yourself Short\n03:04 Two Birds, One Stone\n03:45 Re-Purpose Your Colleagues\n05:11 Die a Hero or Become the Villain\n\nRESOURCES I MENTION IN THE VIDEO\nMy full LinkedIn Playlist - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nTop 5 Productivity Tips for Work - https://youtu.be/1LOlJay5Sbw\nAustin Belcak’s 15+ Tips for LinkedIn - https://cultivatedculture.com/linkedin-profile-tips/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#linkedin #workingprofessional #career", "5 MUST-DO LinkedIn Profile Tips (that pay off forever)!", "OHTRZKg2LS0", 1, 397, false, "https://www.youtube.com/watch?v=OHTRZKg2LS0", "/downloads/Jeff Su/2022-10-25 5 MUST-DO LinkedIn Profile Tips (that pay off forever)!/5 MUST-DO LinkedIn Profile Tips (that pay off forever)! [OHTRZKg2LS0].mp4", false, ~U[2022-10-25 13:00:11Z]] 16:58:29.731 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [1] 16:58:29.733 [debug] QUERY OK source="media_items" db=0.9ms idle=8.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-10-18 13:00:02Z], 1] 16:58:29.736 [debug] QUERY OK source="media_items" db=2.0ms idle=8.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=117\n\n🤫\u00A0I’m not saying we should all quiet quit, all I’m saying is if there are shortcuts to get our work done faster, then why not?\n\nHow I stay productive in life 👉🏻\u00A0https://youtu.be/7M6bIeVbCqA\n\nFor me, productivity in the workplace means efficiency + accuracy (i.e. there’s no point being more productive if your deliverables…kind of suck)\n\nSo one of the first things I learned at work was to Steal with Pride. My colleagues have created amazing stuff in the past so there’s really no need to reinvent the wheel! This is by far the most underrated productivity tip for work!\n\nWhether you use the Microsoft suite of tools (Word, Powerpoint, Excel) or Google Workspace (Google Docs, Sheets, Slides), there are a LOT of practical things you can do to be more productive (e.g. use data validation to ensure no mistakes are made)\n\nTIMESTAMPS\n00:00 Quiet Quitting for Productivity\n00:37 Steal with Pride\n01:35 Template All the Things\n02:38 Automation For the Win\n04:18 Don’t Be the Weak Link\n05:56 Make Pre-Reads Great Again\n07:15 Ending Skit\n\nRESOURCES I MENTION IN THE VIDEO\nThe Budget Spreadsheet - https://www.jeffsu.org/workplace-productivity-my-top-5-tips\nRun Effective Meetings - https://youtu.be/LCiQFwAwJvI\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#productivity #careertips #productivityatwork", "Top 5 Productivity Tips for Work!", "5e56dbac-a48d-4073-a6d7-5478f35c3474", false, "1LOlJay5Sbw", 1, [], 442, false, "https://www.youtube.com/watch?v=1LOlJay5Sbw", 86, "/downloads/Jeff Su/2022-10-18 Top 5 Productivity Tips for Work!/Top 5 Productivity Tips for Work! [1LOlJay5Sbw].mp4", false, false, 98, ~U[2022-10-18 13:00:02Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=117\n\n🤫\u00A0I’m not saying we should all quiet quit, all I’m saying is if there are shortcuts to get our work done faster, then why not?\n\nHow I stay productive in life 👉🏻\u00A0https://youtu.be/7M6bIeVbCqA\n\nFor me, productivity in the workplace means efficiency + accuracy (i.e. there’s no point being more productive if your deliverables…kind of suck)\n\nSo one of the first things I learned at work was to Steal with Pride. My colleagues have created amazing stuff in the past so there’s really no need to reinvent the wheel! This is by far the most underrated productivity tip for work!\n\nWhether you use the Microsoft suite of tools (Word, Powerpoint, Excel) or Google Workspace (Google Docs, Sheets, Slides), there are a LOT of practical things you can do to be more productive (e.g. use data validation to ensure no mistakes are made)\n\nTIMESTAMPS\n00:00 Quiet Quitting for Productivity\n00:37 Steal with Pride\n01:35 Template All the Things\n02:38 Automation For the Win\n04:18 Don’t Be the Weak Link\n05:56 Make Pre-Reads Great Again\n07:15 Ending Skit\n\nRESOURCES I MENTION IN THE VIDEO\nThe Budget Spreadsheet - https://www.jeffsu.org/workplace-productivity-my-top-5-tips\nRun Effective Meetings - https://youtu.be/LCiQFwAwJvI\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#productivity #careertips #productivityatwork", "Top 5 Productivity Tips for Work!", "1LOlJay5Sbw", 1, 442, false, "https://www.youtube.com/watch?v=1LOlJay5Sbw", "/downloads/Jeff Su/2022-10-18 Top 5 Productivity Tips for Work!/Top 5 Productivity Tips for Work! [1LOlJay5Sbw].mp4", false, ~U[2022-10-18 13:00:02Z]] 16:58:29.737 [debug] QUERY OK source="sources" db=0.3ms idle=9.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:29.739 [debug] QUERY OK source="media_items" db=1.1ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-10-04 13:00:12Z], 1] 16:58:29.742 [debug] QUERY OK source="media_items" db=2.1ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🩳\u00A0Download my Shortcuts here: https://www.jeffsu.org/macbook-shortcuts-app\n\nAlthough the Shortcuts app is already pretty popular on the iPhone, very few people use it on their Macbooks as well. So in this video I’ve put together the ultimate guide for the Shortcuts app on the Mac! \n\nFirst, I go over all the ways you can activate and run Shortcut workflows on the Mac (since it’s actually not that obvious) and cover the settings changes you need to make\n\nThen, I share 7 Shortcuts I use every single day that makes my life just so much easier (like hitting just 1 button to hide my entire desktop 😉)\n\nMy examples are great but what’s even better is for you to create Shortcuts specific to you, so I end the video by showing you how you can tweak existing workflows to fit your needs and how to share them with others!\n\nHave fun 😁!\n\nTIMESTAMPS\n00:00 The Power of the Shortcuts app\n00:21 What are Shortcuts?\n00:36 How to run Shortcuts on the Mac\n01:49 Update Shortcut Settings\n02:28 Hide Desktop Clutter\n03:04 Enable Focus Mode via Shortcuts\n03:54 Run Network Tool Shortcut\n04:24 Count Character Shortcut\n04:39 Search On Shortcut\n05:14 Empty Downloads Folder Shortcut\n05:25 Customize Your Own Shortcut\n06:50 Share Shortcuts with Others\n\nRESOURCES I MENTION IN THE VIDEO\nTop 10 Mac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\nThe Ultimate Alfred Tutorial - https://youtu.be/FXV-zwkRMxo\nXDA Guide for Shortcuts - https://www.xda-developers.com/guide-shortcuts-macos/\nHow-to-Geek Article - https://www.howtogeek.com/764636/mac-shortcuts-actions-youll-actually-use/\nHowtoiSolve Article - https://www.howtoisolve.com/best-shortcuts-for-mac-shortcuts/\nUsing Shortcuts with Alfred - https://www.alfredapp.com/blog/guides-and-tutorials/macos-shortcuts-with-alfred-workflow/\nCalm Notifications (Alfred) - https://www.alfredforum.com/topic/10916-calmnotifications-—-toggle-do-not-disturb/#comment-56259\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#macbooktips #shortcutsapp #macshortcuts", "Ultimate Guide to the Shortcuts App (for the Mac)!", "cef6eeaa-90df-4704-9b25-d5cf581a9093", false, "PIGraFbLEvY", 1, [], 481, false, "https://www.youtube.com/watch?v=PIGraFbLEvY", 87, "/downloads/Jeff Su/2022-10-04 Ultimate Guide to the Shortcuts App (for the Mac)!/Ultimate Guide to the Shortcuts App (for the Mac)! [PIGraFbLEvY].mp4", false, false, 98, ~U[2022-10-04 13:00:12Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "🩳\u00A0Download my Shortcuts here: https://www.jeffsu.org/macbook-shortcuts-app\n\nAlthough the Shortcuts app is already pretty popular on the iPhone, very few people use it on their Macbooks as well. So in this video I’ve put together the ultimate guide for the Shortcuts app on the Mac! \n\nFirst, I go over all the ways you can activate and run Shortcut workflows on the Mac (since it’s actually not that obvious) and cover the settings changes you need to make\n\nThen, I share 7 Shortcuts I use every single day that makes my life just so much easier (like hitting just 1 button to hide my entire desktop 😉)\n\nMy examples are great but what’s even better is for you to create Shortcuts specific to you, so I end the video by showing you how you can tweak existing workflows to fit your needs and how to share them with others!\n\nHave fun 😁!\n\nTIMESTAMPS\n00:00 The Power of the Shortcuts app\n00:21 What are Shortcuts?\n00:36 How to run Shortcuts on the Mac\n01:49 Update Shortcut Settings\n02:28 Hide Desktop Clutter\n03:04 Enable Focus Mode via Shortcuts\n03:54 Run Network Tool Shortcut\n04:24 Count Character Shortcut\n04:39 Search On Shortcut\n05:14 Empty Downloads Folder Shortcut\n05:25 Customize Your Own Shortcut\n06:50 Share Shortcuts with Others\n\nRESOURCES I MENTION IN THE VIDEO\nTop 10 Mac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\nThe Ultimate Alfred Tutorial - https://youtu.be/FXV-zwkRMxo\nXDA Guide for Shortcuts - https://www.xda-developers.com/guide-shortcuts-macos/\nHow-to-Geek Article - https://www.howtogeek.com/764636/mac-shortcuts-actions-youll-actually-use/\nHowtoiSolve Article - https://www.howtoisolve.com/best-shortcuts-for-mac-shortcuts/\nUsing Shortcuts with Alfred - https://www.alfredapp.com/blog/guides-and-tutorials/macos-shortcuts-with-alfred-workflow/\nCalm Notifications (Alfred) - https://www.alfredforum.com/topic/10916-calmnotifications-—-toggle-do-not-disturb/#comment-56259\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#macbooktips #shortcutsapp #macshortcuts", "Ultimate Guide to the Shortcuts App (for the Mac)!", "PIGraFbLEvY", 1, 481, false, "https://www.youtube.com/watch?v=PIGraFbLEvY", "/downloads/Jeff Su/2022-10-04 Ultimate Guide to the Shortcuts App (for the Mac)!/Ultimate Guide to the Shortcuts App (for the Mac)! [PIGraFbLEvY].mp4", false, ~U[2022-10-04 13:00:12Z]] 16:58:29.743 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:29.744 [debug] QUERY OK source="media_items" db=0.9ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-20 13:00:30Z], 1] 16:58:31.157 [debug] QUERY OK source="media_items" db=1411.5ms idle=8.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Download the Mortgage Calculator template here: https://www.jeffsu.org/mortgage-calculator-a-simple-tutorial/\n\n💸\u00A0Who knew a 1.5% change in interest rates can result in an additional US$ 100,000 of interest payments?\n\nIn this video I go through a step-by-step tutorial on how to calculate your monthly mortgage payments given 3 things: the initial amount you borrowed, the interest rate you agreed to, and the loan repayment period\n\nBy playing around with the numbers, you will be able to clearly see how each factor affects the total interest you pay back the bank (or to whoever loaned you the principal)\n\nTIMESTAMPS\n00:00 How to Calculate Monthly Payments\n00:33 Intro to Mortgage Calculator Template\n00:58 Monthly Payment for Fixed-Rate Loan\n02:33 Calculate Monthly Interest Payments\n04:55 Double Check Your Calculations\n05:49 How Interest Rate affects Total Interest\n06:17 How Extra Payments affect Total Interest\n07:05 Pro Tips for this Mortgage Calculator\n\nRESOURCES I MENTION IN THE VIDEO\nAli Abdaal’s video on buying a house - https://youtu.be/ngWZaSbw130\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#mortgage #adulting #amortization", "Mortgage Calculator: A Simple Tutorial (template included)!", "d189d21e-18e3-4afa-bbc5-d92e0d818bb2", false, "Z4vz8aa_vxs", 1, [], 467, false, "https://www.youtube.com/watch?v=Z4vz8aa_vxs", 88, "/downloads/Jeff Su/2022-09-20 Mortgage Calculator: A Simple Tutorial (template included)!/Mortgage Calculator: A Simple Tutorial (template included)! [Z4vz8aa_vxs].mp4", false, false, 98, ~U[2022-09-20 13:00:30Z], ~U[2026-04-23 14:58:29Z], ~U[2026-04-23 14:58:29Z], "Download the Mortgage Calculator template here: https://www.jeffsu.org/mortgage-calculator-a-simple-tutorial/\n\n💸\u00A0Who knew a 1.5% change in interest rates can result in an additional US$ 100,000 of interest payments?\n\nIn this video I go through a step-by-step tutorial on how to calculate your monthly mortgage payments given 3 things: the initial amount you borrowed, the interest rate you agreed to, and the loan repayment period\n\nBy playing around with the numbers, you will be able to clearly see how each factor affects the total interest you pay back the bank (or to whoever loaned you the principal)\n\nTIMESTAMPS\n00:00 How to Calculate Monthly Payments\n00:33 Intro to Mortgage Calculator Template\n00:58 Monthly Payment for Fixed-Rate Loan\n02:33 Calculate Monthly Interest Payments\n04:55 Double Check Your Calculations\n05:49 How Interest Rate affects Total Interest\n06:17 How Extra Payments affect Total Interest\n07:05 Pro Tips for this Mortgage Calculator\n\nRESOURCES I MENTION IN THE VIDEO\nAli Abdaal’s video on buying a house - https://youtu.be/ngWZaSbw130\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#mortgage #adulting #amortization", "Mortgage Calculator: A Simple Tutorial (template included)!", "Z4vz8aa_vxs", 1, 467, false, "https://www.youtube.com/watch?v=Z4vz8aa_vxs", "/downloads/Jeff Su/2022-09-20 Mortgage Calculator: A Simple Tutorial (template included)!/Mortgage Calculator: A Simple Tutorial (template included)! [Z4vz8aa_vxs].mp4", false, ~U[2022-09-20 13:00:30Z]] 16:58:31.158 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1414.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.159 [debug] QUERY OK source="media_items" db=1.0ms idle=1414.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-06 13:00:10Z], 1] 16:58:31.314 [debug] QUERY OK source="media_items" db=152.8ms idle=1351.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎇\u00A0Download the free icon pack here - https://www.jeffsu.org/10-mac-tips-that-feel-illegal-to-know\n❎\u00A0Get CleanShot X - https://geni.us/cleanshotx\n\nIf you’re looking for Macbook tips that seem… a bit too good to be true you’ve come to the right place! In this video I share mac tips you probably haven’t seen anywhere else and more importantly, they’re all super actionable\n\nYou can easily change the default folder icons to image you want, you can disable the caps lock button so you never enable it by mistake again, you can customize the view of the System Preferences window, and much, much more!\n\nIt’s some super fun and productive stuff 😁\n\nTIMESTAMPS\n00:00 Change Macbook Folder Icons\n00:53 Disable Caps Lock Button on Mac\n01:08 Customize View for System Preferences\n01:34 Quickly Access Sound Preferences\n02:10 Move Windows in Background\n02:46 Show Menu Bar in Full Screen\n03:08 Move Files to Location\n03:51 Finder Window Management\n04:20 Preview Files the RIGHT Way\n05:07 Convert Images on Mac\n05:31 Take Full Page Screenshots\n\nRESOURCES I MENTION IN THE VIDEO\nMy Alfred Workflow - https://youtu.be/FXV-zwkRMxo\nTop 10 Mac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#mac #tips #productivity", "10 MUST-KNOW Macbook Tips for Productivity!", "e54854fc-34d6-4def-b64b-ef89efc35176", false, "5XfR6xBBXhw", 1, [], 390, false, "https://www.youtube.com/watch?v=5XfR6xBBXhw", 89, "/downloads/Jeff Su/2022-09-06 10 MUST-KNOW Macbook Tips for Productivity!/10 MUST-KNOW Macbook Tips for Productivity! [5XfR6xBBXhw].mp4", false, false, 98, ~U[2022-09-06 13:00:10Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🎇\u00A0Download the free icon pack here - https://www.jeffsu.org/10-mac-tips-that-feel-illegal-to-know\n❎\u00A0Get CleanShot X - https://geni.us/cleanshotx\n\nIf you’re looking for Macbook tips that seem… a bit too good to be true you’ve come to the right place! In this video I share mac tips you probably haven’t seen anywhere else and more importantly, they’re all super actionable\n\nYou can easily change the default folder icons to image you want, you can disable the caps lock button so you never enable it by mistake again, you can customize the view of the System Preferences window, and much, much more!\n\nIt’s some super fun and productive stuff 😁\n\nTIMESTAMPS\n00:00 Change Macbook Folder Icons\n00:53 Disable Caps Lock Button on Mac\n01:08 Customize View for System Preferences\n01:34 Quickly Access Sound Preferences\n02:10 Move Windows in Background\n02:46 Show Menu Bar in Full Screen\n03:08 Move Files to Location\n03:51 Finder Window Management\n04:20 Preview Files the RIGHT Way\n05:07 Convert Images on Mac\n05:31 Take Full Page Screenshots\n\nRESOURCES I MENTION IN THE VIDEO\nMy Alfred Workflow - https://youtu.be/FXV-zwkRMxo\nTop 10 Mac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#mac #tips #productivity", "10 MUST-KNOW Macbook Tips for Productivity!", "5XfR6xBBXhw", 1, 390, false, "https://www.youtube.com/watch?v=5XfR6xBBXhw", "/downloads/Jeff Su/2022-09-06 10 MUST-KNOW Macbook Tips for Productivity!/10 MUST-KNOW Macbook Tips for Productivity! [5XfR6xBBXhw].mp4", false, ~U[2022-09-06 13:00:10Z]] 16:58:31.315 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=503.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.316 [debug] QUERY OK source="media_items" db=0.9ms idle=158.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-08-23 12:45:02Z], 1] 16:58:31.319 [debug] QUERY OK source="media_items" db=1.9ms idle=158.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=113\n\nFree PDF Version: https://www.jeffsu.org/5-resume-mistakes-you-must-avoid\n\nSave time and buy the Google Docs (editable) version: https://jeffsu.gumroad.com/l/premium-resume-package\n\n😵\u200D💫\u00A0Resumes are easy to create, sure, but with so many rules and nuances, it’s hard to get exactly right\n\nAnd that’s why in this video - 5 Resume Mistakes You Must Avoid - I show you all the changes I made to my original “bad” resume, and more importantly, explain WHY recruiters and hiring managers look for the things they do when deciding who to give interviews to\n\nIt’s sometimes just not enough to discuss resume best practices in theory; I’ve always found it more helpful to look at real resume examples to see what changes I should be making to my own CV during the job search process\n\nNow, let’s get you that first round interview 😁\n\nTIMESTAMPS\n00:00 5 Resume Mistakes to Avoid\n00:42 Putting Education above Experience\n01:52 Not Showing Impact\n02:53 Failing to Include Meaningful Metrics\n04:32 Not Tailoring Resume for Each Application\n05:34 Overlooking the Small Things\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Incredible Resume - https://youtu.be/Tt08KmFfIYQ\nWrite an Amazing Cover Letter - https://youtu.be/NUhDP30IRKk\nAli Abdaal’s Resume Video - https://youtu.be/MqXjqOy-TA8\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#resumetips #jobsearch", "5 Resume Mistakes You MUST Avoid (with real examples)!", "0164483a-7f11-425e-bac8-02fce828ff45", false, "pjqi_M3SPwY", 1, [], 401, false, "https://www.youtube.com/watch?v=pjqi_M3SPwY", 90, "/downloads/Jeff Su/2022-08-23 5 Resume Mistakes You MUST Avoid (with real examples)!/5 Resume Mistakes You MUST Avoid (with real examples)! [pjqi_M3SPwY].mp4", false, false, 98, ~U[2022-08-23 12:45:02Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=113\n\nFree PDF Version: https://www.jeffsu.org/5-resume-mistakes-you-must-avoid\n\nSave time and buy the Google Docs (editable) version: https://jeffsu.gumroad.com/l/premium-resume-package\n\n😵\u200D💫\u00A0Resumes are easy to create, sure, but with so many rules and nuances, it’s hard to get exactly right\n\nAnd that’s why in this video - 5 Resume Mistakes You Must Avoid - I show you all the changes I made to my original “bad” resume, and more importantly, explain WHY recruiters and hiring managers look for the things they do when deciding who to give interviews to\n\nIt’s sometimes just not enough to discuss resume best practices in theory; I’ve always found it more helpful to look at real resume examples to see what changes I should be making to my own CV during the job search process\n\nNow, let’s get you that first round interview 😁\n\nTIMESTAMPS\n00:00 5 Resume Mistakes to Avoid\n00:42 Putting Education above Experience\n01:52 Not Showing Impact\n02:53 Failing to Include Meaningful Metrics\n04:32 Not Tailoring Resume for Each Application\n05:34 Overlooking the Small Things\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Incredible Resume - https://youtu.be/Tt08KmFfIYQ\nWrite an Amazing Cover Letter - https://youtu.be/NUhDP30IRKk\nAli Abdaal’s Resume Video - https://youtu.be/MqXjqOy-TA8\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#resumetips #jobsearch", "5 Resume Mistakes You MUST Avoid (with real examples)!", "pjqi_M3SPwY", 1, 401, false, "https://www.youtube.com/watch?v=pjqi_M3SPwY", "/downloads/Jeff Su/2022-08-23 5 Resume Mistakes You MUST Avoid (with real examples)!/5 Resume Mistakes You MUST Avoid (with real examples)! [pjqi_M3SPwY].mp4", false, ~U[2022-08-23 12:45:02Z]] 16:58:31.320 [debug] QUERY OK source="sources" db=0.3ms idle=159.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.321 [debug] QUERY OK source="media_items" db=0.9ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-08-09 13:00:23Z], 1] 16:58:31.324 [debug] QUERY OK source="media_items" db=1.9ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=112\n\nDownload the free templates here ➡️ https://www.jeffsu.org/how-to-manage-projects-in-notion/\n\n🗂\u00A0Project management can be hard…if you don’t have a reliable system that organizes all your tasks\n\nIn this video I show you how to Easily Manage Complex Projects in Notion by sharing my project management templates and walking you through an example where I plan a complicated international trip\n\nThe key to managing complex projects in Notion is to assign tasks to different milestones that make up your overall project. And as long as you review your Notion project page on a regular basis, you’ll always have an organized project management system!\n\nMy Simple Productivity System video 👉🏻\u00A0https://youtu.be/7M6bIeVbCqA\n\nTIMESTAMPS\n00:00 How NOT to Manage Projects in Notion\n00:34 Project Example: Planning a Complex Trip\n00:52 Notion Project Management Template Overview\n01:36 Level 1 - List of Projects\n01:57 Level 2 - List of Milestones and Tasks\n02:24 Milestone Definition\n03:09 Link Databases using Relations Property\n04:05 Show Remaining Tasks using Rollup Property\n04:39 Add Formula to Show Remaining Tasks\n05:20 Add a Self-Referential Filter\n07:27 Real Life Example\n08:12 Other Project Management Examples\n\nRESOURCES I MENTION IN THE VIDEO\nMy Simple Productivity System - https://youtu.be/7M6bIeVbCqA\nThomas Frank’s Notion Database video - https://youtu.be/mAJOpO73d8Y\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#projectmanagement #notionhq #productivity", "Easily Manage Complex Projects in Notion!", "b6086621-8e1c-47b8-825b-fb59a1e58f47", false, "OOYmBRr3zVs", 1, [], 567, false, "https://www.youtube.com/watch?v=OOYmBRr3zVs", 91, "/downloads/Jeff Su/2022-08-09 Easily Manage Complex Projects in Notion!/Easily Manage Complex Projects in Notion! [OOYmBRr3zVs].mp4", false, false, 98, ~U[2022-08-09 13:00:23Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=112\n\nDownload the free templates here ➡️ https://www.jeffsu.org/how-to-manage-projects-in-notion/\n\n🗂\u00A0Project management can be hard…if you don’t have a reliable system that organizes all your tasks\n\nIn this video I show you how to Easily Manage Complex Projects in Notion by sharing my project management templates and walking you through an example where I plan a complicated international trip\n\nThe key to managing complex projects in Notion is to assign tasks to different milestones that make up your overall project. And as long as you review your Notion project page on a regular basis, you’ll always have an organized project management system!\n\nMy Simple Productivity System video 👉🏻\u00A0https://youtu.be/7M6bIeVbCqA\n\nTIMESTAMPS\n00:00 How NOT to Manage Projects in Notion\n00:34 Project Example: Planning a Complex Trip\n00:52 Notion Project Management Template Overview\n01:36 Level 1 - List of Projects\n01:57 Level 2 - List of Milestones and Tasks\n02:24 Milestone Definition\n03:09 Link Databases using Relations Property\n04:05 Show Remaining Tasks using Rollup Property\n04:39 Add Formula to Show Remaining Tasks\n05:20 Add a Self-Referential Filter\n07:27 Real Life Example\n08:12 Other Project Management Examples\n\nRESOURCES I MENTION IN THE VIDEO\nMy Simple Productivity System - https://youtu.be/7M6bIeVbCqA\nThomas Frank’s Notion Database video - https://youtu.be/mAJOpO73d8Y\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#projectmanagement #notionhq #productivity", "Easily Manage Complex Projects in Notion!", "OOYmBRr3zVs", 1, 567, false, "https://www.youtube.com/watch?v=OOYmBRr3zVs", "/downloads/Jeff Su/2022-08-09 Easily Manage Complex Projects in Notion!/Easily Manage Complex Projects in Notion! [OOYmBRr3zVs].mp4", false, ~U[2022-08-09 13:00:23Z]] 16:58:31.325 [debug] QUERY OK source="sources" db=0.3ms idle=8.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.327 [debug] QUERY OK source="media_items" db=0.9ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-08-02 13:00:08Z], 1] 16:58:31.329 [debug] QUERY OK source="media_items" db=1.8ms idle=7.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=111\n\n🎯 Download Todoist for free - https://geni.us/jefftodoist\n\n🧑🏻\u200D💻\u00A0I love watching productivity videos and implementing tips from Tiago Forte, Ali Abdaal, and Thomas Frank but I’ll be the first to admit it’s too hard to adhere to their productivity systems 100% 🥲\n\nSo, I came up with my own simple productivity system that provides 80% of the benefit with just 20% of the effort:\n\n1️⃣\u00A0Step 1 - Capture\n\n2️⃣\u00A0Step 2 - Organize\n\nThe biggest pro tip comes from Tiago Forte: The wrong way is to organize by where you found the information, the right way is to organize by where that information will be used!\n\nTIMESTAMPS\n00:00 The “Best” Productivity Systems\n00:47 My Simple Two-Step Productivity System\n01:03 Capture and Organize\n01:23 Step 1 - Capture\n03:12 Step 2 - Organize\n05:27 When to Capture and Organize\n06:01 Productivity System - Inbox Management\n06:37 Summary and Next Steps\n\nRESOURCES I MENTION IN THE VIDEO\nAli Abdaal’s Second Brain - https://www.youtube.com/watch?v=K-ssUVyfn5g\nTiago Forte’s Second Brain - https://www.youtube.com/watch?v=vZr18_aOY6I\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎯 Todoist - https://geni.us/jefftodoist\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#productivitysystem #secondbrain #effortless", "My Simple Productivity System (for normal people)!", "9f2775a1-6683-4882-b614-0e11e9f722c9", false, "7M6bIeVbCqA", 1, [], 424, false, "https://www.youtube.com/watch?v=7M6bIeVbCqA", 92, "/downloads/Jeff Su/2022-08-02 My Simple Productivity System (for normal people)!/My Simple Productivity System (for normal people)! [7M6bIeVbCqA].mp4", false, false, 98, ~U[2022-08-02 13:00:08Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=111\n\n🎯 Download Todoist for free - https://geni.us/jefftodoist\n\n🧑🏻\u200D💻\u00A0I love watching productivity videos and implementing tips from Tiago Forte, Ali Abdaal, and Thomas Frank but I’ll be the first to admit it’s too hard to adhere to their productivity systems 100% 🥲\n\nSo, I came up with my own simple productivity system that provides 80% of the benefit with just 20% of the effort:\n\n1️⃣\u00A0Step 1 - Capture\n\n2️⃣\u00A0Step 2 - Organize\n\nThe biggest pro tip comes from Tiago Forte: The wrong way is to organize by where you found the information, the right way is to organize by where that information will be used!\n\nTIMESTAMPS\n00:00 The “Best” Productivity Systems\n00:47 My Simple Two-Step Productivity System\n01:03 Capture and Organize\n01:23 Step 1 - Capture\n03:12 Step 2 - Organize\n05:27 When to Capture and Organize\n06:01 Productivity System - Inbox Management\n06:37 Summary and Next Steps\n\nRESOURCES I MENTION IN THE VIDEO\nAli Abdaal’s Second Brain - https://www.youtube.com/watch?v=K-ssUVyfn5g\nTiago Forte’s Second Brain - https://www.youtube.com/watch?v=vZr18_aOY6I\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://www.jeffsu.org/yt-gear/\n💻 What's On My Desk - https://www.jeffsu.org/gear/\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎯 Todoist - https://geni.us/jefftodoist\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#productivitysystem #secondbrain #effortless", "My Simple Productivity System (for normal people)!", "7M6bIeVbCqA", 1, 424, false, "https://www.youtube.com/watch?v=7M6bIeVbCqA", "/downloads/Jeff Su/2022-08-02 My Simple Productivity System (for normal people)!/My Simple Productivity System (for normal people)! [7M6bIeVbCqA].mp4", false, ~U[2022-08-02 13:00:08Z]] 16:58:31.330 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.332 [debug] QUERY OK source="media_items" db=0.9ms idle=6.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-07-19 13:00:28Z], 1] 16:58:31.336 [debug] QUERY OK source="media_items" db=2.7ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🖥\u00A0The overall theme for this desk setup is: minimal meets practical\n\nI like working with dual displays and I like big open spaces on my desk for creative work. After lots of trial and error, I wanted to share this clean and modern dual monitor setup with you all!\n\nGet my wallpaper 👉🏻\u00A0https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nThank you to @MatthewEncina for the inspiration!\n\nTIMESTAMPS\n00:00 Modern Dual-Monitor Desk Setup\n00:18 The Desk\n01:10 The Gap\n01:37 The Monitors\n01:58 How I Use a Dual-Monitor Setup\n02:53 The Mouse\n03:08 The Keyboard\n03:22 Logi Options+ App\n03:38 The Trackpad\n03:54 The Desk Pad\n04:00 The Laptop Dock\n04:15 The Docking Station\n04:38 The Audio Interface\n04:48 The Microphone\n05:06 The Microphone Arm\n05:18 The Camera Stand\n05:36 The Filming Setup\n05:47 The Light and Softbox\n05:56 The Chair\n06:22 The Cable Management\n06:49 The End\n\nRESOURCES I MENTION IN THE VIDEO\nErgotron Monitor Arm - https://amzn.to/3WeQ59M\nIkea UPPSPEL Desk - https://www.ikea.com/us/en/p/uppspel-gaming-desk-black-s79430163/\nPro Display XDR - https://amzn.to/3aHxPo7\nAudioengine A2+ Speakers - https://amzn.to/3cqpJ3n\nLogitech MX Master 3S - https://amzn.to/3z9LCNy\nLogitech MX Keys Mini for Mac - https://amzn.to/3aRmYaW\nLogitech Brio Webcam - https://amzn.to/3ongK5R\nLogi Options+ - https://www.logitech.com/en-us/software/logi-options-plus.html\nMagic Trackpad 2 - https://amzn.to/3yOpBm4\nGrovemade Wool Felt Desk Pad - https://grovemade.com/product/wool-felt-desk-pad/?rfsn=6731618.b15b01&initial=475\nGrovemade Laptop Docking Station - https://grovemade.com/product/wood-macbook-dock/?rfsn=6731618.b15b01&initial=636\nKensington Docking Station - https://amzn.to/3zcssXi\nFocusrite Scarlett 2i2 3rd Gen - https://amzn.to/3B0emJR\nShure SM7B Microphone - https://amzn.to/3oew44A\nShure SM7B Adapter - https://amzn.to/3BbkJdm\nBlue Compass Boom Arm - https://amzn.to/3PDkP1z\nFalcam Geartree Desk Studio Set - https://www.bhphotovideo.com/c/product/1699461-REG/falcam_2816_geartree_desk_studio_set.html\nSony A7SIII Camera - https://amzn.to/3o5Fcsu\nSony FE 24mm F1.4 GM Lens - https://amzn.to/3uR93sw\nAmaran 100x - https://amzn.to/3Ph22JF\nSelens 65cm Softbox - https://amzn.to/3zcuVkD\nHerman Miller Embody Chair - https://www.hermanmiller.com/en_lac/products/seating/office-chairs/embody-chairs/\nCable Clips - https://amzn.to/3RAHP37\nLaMetric Clock - https://amzn.to/3yRkkdl\nCable Management video from @sambeckman - https://www.youtube.com/watch?v=DHPuvLcSYu8\nCable Management from @edwardleefilms - https://youtu.be/Tpk0GIpq5JM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#desksetup #dualmonitors #minimal", "Clean Modern Desk Tour | Dual Monitor Setup", "b1346504-8c73-4f5c-bff6-8b2fd278f683", false, "vIJAdMoxCc4", 1, [], 420, false, "https://www.youtube.com/watch?v=vIJAdMoxCc4", 93, "/downloads/Jeff Su/2022-07-19 Clean Modern Desk Tour | Dual Monitor Setup/Clean Modern Desk Tour | Dual Monitor Setup [vIJAdMoxCc4].mp4", false, false, 98, ~U[2022-07-19 13:00:28Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🖥\u00A0The overall theme for this desk setup is: minimal meets practical\n\nI like working with dual displays and I like big open spaces on my desk for creative work. After lots of trial and error, I wanted to share this clean and modern dual monitor setup with you all!\n\nGet my wallpaper 👉🏻\u00A0https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nThank you to @MatthewEncina for the inspiration!\n\nTIMESTAMPS\n00:00 Modern Dual-Monitor Desk Setup\n00:18 The Desk\n01:10 The Gap\n01:37 The Monitors\n01:58 How I Use a Dual-Monitor Setup\n02:53 The Mouse\n03:08 The Keyboard\n03:22 Logi Options+ App\n03:38 The Trackpad\n03:54 The Desk Pad\n04:00 The Laptop Dock\n04:15 The Docking Station\n04:38 The Audio Interface\n04:48 The Microphone\n05:06 The Microphone Arm\n05:18 The Camera Stand\n05:36 The Filming Setup\n05:47 The Light and Softbox\n05:56 The Chair\n06:22 The Cable Management\n06:49 The End\n\nRESOURCES I MENTION IN THE VIDEO\nErgotron Monitor Arm - https://amzn.to/3WeQ59M\nIkea UPPSPEL Desk - https://www.ikea.com/us/en/p/uppspel-gaming-desk-black-s79430163/\nPro Display XDR - https://amzn.to/3aHxPo7\nAudioengine A2+ Speakers - https://amzn.to/3cqpJ3n\nLogitech MX Master 3S - https://amzn.to/3z9LCNy\nLogitech MX Keys Mini for Mac - https://amzn.to/3aRmYaW\nLogitech Brio Webcam - https://amzn.to/3ongK5R\nLogi Options+ - https://www.logitech.com/en-us/software/logi-options-plus.html\nMagic Trackpad 2 - https://amzn.to/3yOpBm4\nGrovemade Wool Felt Desk Pad - https://grovemade.com/product/wool-felt-desk-pad/?rfsn=6731618.b15b01&initial=475\nGrovemade Laptop Docking Station - https://grovemade.com/product/wood-macbook-dock/?rfsn=6731618.b15b01&initial=636\nKensington Docking Station - https://amzn.to/3zcssXi\nFocusrite Scarlett 2i2 3rd Gen - https://amzn.to/3B0emJR\nShure SM7B Microphone - https://amzn.to/3oew44A\nShure SM7B Adapter - https://amzn.to/3BbkJdm\nBlue Compass Boom Arm - https://amzn.to/3PDkP1z\nFalcam Geartree Desk Studio Set - https://www.bhphotovideo.com/c/product/1699461-REG/falcam_2816_geartree_desk_studio_set.html\nSony A7SIII Camera - https://amzn.to/3o5Fcsu\nSony FE 24mm F1.4 GM Lens - https://amzn.to/3uR93sw\nAmaran 100x - https://amzn.to/3Ph22JF\nSelens 65cm Softbox - https://amzn.to/3zcuVkD\nHerman Miller Embody Chair - https://www.hermanmiller.com/en_lac/products/seating/office-chairs/embody-chairs/\nCable Clips - https://amzn.to/3RAHP37\nLaMetric Clock - https://amzn.to/3yRkkdl\nCable Management video from @sambeckman - https://www.youtube.com/watch?v=DHPuvLcSYu8\nCable Management from @edwardleefilms - https://youtu.be/Tpk0GIpq5JM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#desksetup #dualmonitors #minimal", "Clean Mo (truncated) 16:58:31.336 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:31.338 [debug] QUERY OK source="media_items" db=1.0ms idle=8.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-07-12 13:00:02Z], 1] 16:58:31.342 [debug] QUERY OK source="media_items" db=2.3ms idle=8.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=109\n\nCreate your own Gmail signature (Briskine templates included): https://www.jeffsu.org/10-mind-blowing-tips-all-gmail-users-should-know\n\nGmail rolled out a bunch of cool new things recently and also optimized some of their existing features, so let’s go over some mind blowing tips every Gmail user should know! \n\nFirst of all, I wish someone taught me that you could create your very own custom Gmail signature in Google Docs (and just paste it over). Speaking of Google Docs, thanks to the Smart Chip feature you can start a email draft in Docs, share with others to review, then port into Gmail directly. \n\nYou can now also set an expiration date for emails by toggling on Confidential Mode, and for emails you can’t seem to unsubscribe from, you just need to create a filter with some of the key words from that series of spam!\n\nTIMESTAMPS\n00:00 Create a Custom Gmail Signature\n01:24 Compose Gmail Draft from Google Docs\n02:07 Briskine Gmail Extension\n03:40 Block All Spam Emails\n04:35 Edit Gmail Title before Forwarding\n05:11 Enable Confidential Mode in Gmail\n05:49 Enable New Gmail View\n06:16 Clear Text Formatting in Gmail\n07:01 Change Default Snooze Times\n07:44 Know When to Use Snooze in Gmail\n\nRESOURCES I MENTION IN THE VIDEO\nHow to use Smart Chips in Google Docs - https://youtu.be/auYFCjU7pBA\nBriskine tutorial - https://app.briskine.com/getting-started\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#gmail #productivity #career", "10 Gmail Productivity Tips that Changed My Life!", "46b9c6b2-50e3-44c2-8d35-41544768d8c2", false, "3_6eRpTkBD8", 1, [], 519, false, "https://www.youtube.com/watch?v=3_6eRpTkBD8", 94, "/downloads/Jeff Su/2022-07-12 10 Gmail Productivity Tips that Changed My Life!/10 Gmail Productivity Tips that Changed My Life! [3_6eRpTkBD8].mp4", false, false, 98, ~U[2022-07-12 13:00:02Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=109\n\nCreate your own Gmail signature (Briskine templates included): https://www.jeffsu.org/10-mind-blowing-tips-all-gmail-users-should-know\n\nGmail rolled out a bunch of cool new things recently and also optimized some of their existing features, so let’s go over some mind blowing tips every Gmail user should know! \n\nFirst of all, I wish someone taught me that you could create your very own custom Gmail signature in Google Docs (and just paste it over). Speaking of Google Docs, thanks to the Smart Chip feature you can start a email draft in Docs, share with others to review, then port into Gmail directly. \n\nYou can now also set an expiration date for emails by toggling on Confidential Mode, and for emails you can’t seem to unsubscribe from, you just need to create a filter with some of the key words from that series of spam!\n\nTIMESTAMPS\n00:00 Create a Custom Gmail Signature\n01:24 Compose Gmail Draft from Google Docs\n02:07 Briskine Gmail Extension\n03:40 Block All Spam Emails\n04:35 Edit Gmail Title before Forwarding\n05:11 Enable Confidential Mode in Gmail\n05:49 Enable New Gmail View\n06:16 Clear Text Formatting in Gmail\n07:01 Change Default Snooze Times\n07:44 Know When to Use Snooze in Gmail\n\nRESOURCES I MENTION IN THE VIDEO\nHow to use Smart Chips in Google Docs - https://youtu.be/auYFCjU7pBA\nBriskine tutorial - https://app.briskine.com/getting-started\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n\n#gmail #productivity #career", "10 Gmail Productivity Tips that Changed My Life!", "3_6eRpTkBD8", 1, 519, false, "https://www.youtube.com/watch?v=3_6eRpTkBD8", "/downloads/Jeff Su/2022-07-12 10 Gmail Productivity Tips that Changed My Life!/10 Gmail Productivity Tips that Changed My Life! [3_6eRpTkBD8].mp4", false, ~U[2022-07-12 13:00:02Z]] 16:58:31.343 [debug] QUERY OK source="sources" db=0.3ms idle=10.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.344 [debug] QUERY OK source="media_items" db=0.9ms idle=8.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-06-28 13:00:15Z], 1] 16:58:31.348 [debug] QUERY OK source="media_items" db=2.4ms idle=8.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🌌\u00A0Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nYou know that feeling when you come across this perfect app or tool and you think to yourself: “how the heck did I not know about this before?!” \n\nWell in this video, I share 11 MUST HAVE Chrome Extensions for Productivity so you can find that perfect extension that will save you a BUNCH of time and make browsing online an (even) better experience 😉\n\nMy personal favorite is the ability to give any and all chrome extensions shortcuts so you can keep your extension bar super clean 🤯\n\nI also have a video on the best productivity tips for Chrome 👉🏻\u00A0https://youtu.be/KXY-2fIAksY\n\nTIMESTAMPS\n00:00 Link to Text Fragment\n01:02 Set Extension Shortcuts\n01:40 Nimbus Screenshot and Screen Recorder\n03:02 uBlock Origin\n04:22 ColorZilla\n05:06 Picture-in-Picture\n05:26 Papier\n06:20 FlashTabs\n07:15 Button for Google Calendar\n07:35 Clean Master\n08:13 Save to Notion\n08:35 Hidden Bonus Tip\n\nCHROME EXTENSIONS\nLink to Text Fragment - https://chrome.google.com/webstore/detail/link-to-text-fragment/pbcodcjpfjdpcineamnnmbkkmkdpajjg?hl=en\nGive Extensions a Shortcut - chrome://extensions/shortcuts\nNimbus - https://chrome.google.com/webstore/detail/nimbus-screenshot-screen/bpconcjcammlapcogcnnelfmaeghhagj?hl=en\nuBlock Origin - https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm?hl=en\nColorZilla - https://chrome.google.com/webstore/detail/colorzilla/bhlhnicpbhignbdhedgjhgdocnmhomnp?hl=en\nPicture-in-Picture - https://chrome.google.com/webstore/detail/picture-in-picture-extens/hkgfoiooedgoejojocmhlaklaeopbecg?hl=en\nPapier - https://chrome.google.com/webstore/detail/papier/hhjeaokafplhjoogdemakihhdhffacia\nFlashTabs - https://chrome.google.com/webstore/detail/flashtabs/gcgdbnfebnhdbffnohjibaomkiepmfnb?hl=en-GB\nClean Master - https://chrome.google.com/webstore/detail/clean-master-the-best-chr/eagiakjmjnblliacokhcalebgnhellfi?hl=en\nButton for Google Calendar - https://chrome.google.com/webstore/detail/button-for-google-calenda/lfjnmopldodmmdhddmeacgjnjeakjpki?hl=en\nSave to Notion - https://chrome.google.com/webstore/detail/save-to-notion/ldmmifpegigmeammaeckplhnjbbpccmm?hl=en\n\nRESOURCES I MENTION IN THE VIDEO\nCleanShot X - https://geni.us/cleanshotx\nMac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\nGoogle Calendar video - https://youtu.be/QQKHhri48Ps\nSave to Notion video - https://youtu.be/diK9dZulkAs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#chrome #productivity #extensions", "11 MUST HAVE Extensions for Productivity!", "33c128bf-b123-4a22-a692-0fb78a883f82", false, "IBLoq8faKks", 1, [], 535, false, "https://www.youtube.com/watch?v=IBLoq8faKks", 95, "/downloads/Jeff Su/2022-06-28 11 MUST HAVE Extensions for Productivity!/11 MUST HAVE Extensions for Productivity! [IBLoq8faKks].mp4", false, false, 98, ~U[2022-06-28 13:00:15Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🌌\u00A0Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nYou know that feeling when you come across this perfect app or tool and you think to yourself: “how the heck did I not know about this before?!” \n\nWell in this video, I share 11 MUST HAVE Chrome Extensions for Productivity so you can find that perfect extension that will save you a BUNCH of time and make browsing online an (even) better experience 😉\n\nMy personal favorite is the ability to give any and all chrome extensions shortcuts so you can keep your extension bar super clean 🤯\n\nI also have a video on the best productivity tips for Chrome 👉🏻\u00A0https://youtu.be/KXY-2fIAksY\n\nTIMESTAMPS\n00:00 Link to Text Fragment\n01:02 Set Extension Shortcuts\n01:40 Nimbus Screenshot and Screen Recorder\n03:02 uBlock Origin\n04:22 ColorZilla\n05:06 Picture-in-Picture\n05:26 Papier\n06:20 FlashTabs\n07:15 Button for Google Calendar\n07:35 Clean Master\n08:13 Save to Notion\n08:35 Hidden Bonus Tip\n\nCHROME EXTENSIONS\nLink to Text Fragment - https://chrome.google.com/webstore/detail/link-to-text-fragment/pbcodcjpfjdpcineamnnmbkkmkdpajjg?hl=en\nGive Extensions a Shortcut - chrome://extensions/shortcuts\nNimbus - https://chrome.google.com/webstore/detail/nimbus-screenshot-screen/bpconcjcammlapcogcnnelfmaeghhagj?hl=en\nuBlock Origin - https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm?hl=en\nColorZilla - https://chrome.google.com/webstore/detail/colorzilla/bhlhnicpbhignbdhedgjhgdocnmhomnp?hl=en\nPicture-in-Picture - https://chrome.google.com/webstore/detail/picture-in-picture-extens/hkgfoiooedgoejojocmhlaklaeopbecg?hl=en\nPapier - https://chrome.google.com/webstore/detail/papier/hhjeaokafplhjoogdemakihhdhffacia\nFlashTabs - https://chrome.google.com/webstore/detail/flashtabs/gcgdbnfebnhdbffnohjibaomkiepmfnb?hl=en-GB\nClean Master - https://chrome.google.com/webstore/detail/clean-master-the-best-chr/eagiakjmjnblliacokhcalebgnhellfi?hl=en\nButton for Google Calendar - https://chrome.google.com/webstore/detail/button-for-google-calenda/lfjnmopldodmmdhddmeacgjnjeakjpki?hl=en\nSave to Notion - https://chrome.google.com/webstore/detail/save-to-notion/ldmmifpegigmeammaeckplhnjbbpccmm?hl=en\n\nRESOURCES I MENTION IN THE VIDEO\nCleanShot X - https://geni.us/cleanshotx\nMac Apps for Productivity - https://youtu.be/-xXc7qeiC8I\nGoogle Calendar video - https://youtu.be/QQKHhri48Ps\nSave to Notion video - https://youtu.be/diK9dZulkAs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n🎆\u00A0My Wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#chrome #productivity #extensions", "11 MUST HAVE Extensions for Productivity!", "IBLoq8faKks", 1, 535, false, "https://www.youtube.com/watch?v=IBLoq8faKks", "/downloads/Jeff Su/2022-06-28 11 MUST HAVE Extensions for Productivity!/11 MUST HAVE Extensions for Productivity! [IBLoq8faKks (truncated) 16:58:31.349 [debug] QUERY OK source="sources" db=0.3ms idle=10.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.350 [debug] QUERY OK source="media_items" db=0.9ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-06-21 13:00:17Z], 1] 16:58:31.359 [debug] QUERY OK source="media_items" db=7.6ms idle=8.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✍🏻\u00A0Product Marketing (not to be confused with Product Management) is a relatively new field so in this video I break down what Product Marketers ACTUALLY Do in Tech Companies! \n\nMy Event Management 101 video 👉🏻\u00A0https://youtu.be/b3B24wl3gCQ\n\nTIMESTAMPS\n00:00 What Product Marketing Managers Actually Do\n00:36 Different Product Types PMMs Work On\n01:27 How Product Marketers Spend Their Time\n03:24 Important Qualities for Product Marketing Managers\n05:30 Should YOU be a PMM?\n07:15 My Experiences as a Product Marketing Manager\n\nRESOURCES I MENTION IN THE VIDEO\nEvent Management 101 - https://youtu.be/b3B24wl3gCQ\nHenry Wang’s Interview with Michael Schipper - https://youtu.be/C7dNExgqd5A\nRocketblocks PMM Video - https://youtu.be/KkZP2EMa3k8\nElif Hiz’s PMM video - https://youtu.be/laS_vGPWNIM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#productmarketing #pmm #productmarketingmanager", "What Product Marketers ACTUALLY Do in Tech Companies!", "2cceccf4-21f8-4d7d-8d67-e213e340abfa", false, "NL-pmvydNe8", 1, [], 460, false, "https://www.youtube.com/watch?v=NL-pmvydNe8", 96, "/downloads/Jeff Su/2022-06-21 What Product Marketers ACTUALLY Do in Tech Companies!/What Product Marketers ACTUALLY Do in Tech Companies! [NL-pmvydNe8].mp4", false, false, 98, ~U[2022-06-21 13:00:17Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "✍🏻\u00A0Product Marketing (not to be confused with Product Management) is a relatively new field so in this video I break down what Product Marketers ACTUALLY Do in Tech Companies! \n\nMy Event Management 101 video 👉🏻\u00A0https://youtu.be/b3B24wl3gCQ\n\nTIMESTAMPS\n00:00 What Product Marketing Managers Actually Do\n00:36 Different Product Types PMMs Work On\n01:27 How Product Marketers Spend Their Time\n03:24 Important Qualities for Product Marketing Managers\n05:30 Should YOU be a PMM?\n07:15 My Experiences as a Product Marketing Manager\n\nRESOURCES I MENTION IN THE VIDEO\nEvent Management 101 - https://youtu.be/b3B24wl3gCQ\nHenry Wang’s Interview with Michael Schipper - https://youtu.be/C7dNExgqd5A\nRocketblocks PMM Video - https://youtu.be/KkZP2EMa3k8\nElif Hiz’s PMM video - https://youtu.be/laS_vGPWNIM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#productmarketing #pmm #productmarketingmanager", "What Product Marketers ACTUALLY Do in Tech Companies!", "NL-pmvydNe8", 1, 460, false, "https://www.youtube.com/watch?v=NL-pmvydNe8", "/downloads/Jeff Su/2022-06-21 What Product Marketers ACTUALLY Do in Tech Companies!/What Product Marketers ACTUALLY Do in Tech Companies! [NL-pmvydNe8].mp4", false, ~U[2022-06-21 13:00:17Z]] 16:58:31.360 [debug] QUERY OK source="sources" db=0.3ms idle=15.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.361 [debug] QUERY OK source="media_items" db=0.8ms idle=13.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-06-07 13:00:12Z], 1] 16:58:31.364 [debug] QUERY OK source="media_items" db=1.9ms idle=13.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎇\u00A0Get Scribe for free: http://scribe.how/jeffsu\n\nCheck out the Scribe I made in this video 👉🏻\u00A0https://scribehow.com/shared/New_Dropdown_Feature_for_Google_Docs__GtWlKBX1RhGOt5xw6qbAvw\n\nAlthough Google Workspace and Office 365 do a good job keeping us connected and productive at work, they do have their respective limitations\n\nIn this video, I share 7 FREE Productivity Tools for Hybrid & Remote Teams each designed to solve a specific pain point we face in the workplace! \n\nTIMESTAMPS\n00:00 witeboard.com\n00:59 Productivity Tools for Remote Teams\n01:18 Flippity.net\n02:29 There\n03:11 Scribe\n04:36 HandMirror\n04:57 Shepherd\n06:17 Sli.do\n\nTHE TOOLS\nWiteboard - https://witeboard.com/\nFlippity - https://www.flippity.net/ \nThere - https://there.pm/\nScribe - http://scribe.how/jeffsu\nHandMirror - https://handmirror.app/\nShepherd - https://bit.ly/Shepherd-TryForFree\nSli.do - https://www.sli.do/\n\nRESOURCES I MENTION IN THE VIDEO\nMac Productivity video - https://youtu.be/5B2kPVvyjbU\nAdd Timezones to Google Calendar - https://youtu.be/4GqqptRI4Do\nAurelius Tjin’s video on useful websites - https://youtu.be/N8g4eO2gp0s\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#thinkoutsidethebox #productivitytools #hybridteams", "7 FREE Productivity Tools You Didn't Know Existed!", "aff9a336-a7d8-4a86-87a2-b5d82009f4d7", false, "UJM83-zb3c4", 1, [], 463, false, "https://www.youtube.com/watch?v=UJM83-zb3c4", 97, "/downloads/Jeff Su/2022-06-07 7 FREE Productivity Tools You Didn't Know Existed!/7 FREE Productivity Tools You Didn't Know Existed! [UJM83-zb3c4].mp4", false, false, 98, ~U[2022-06-07 13:00:12Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🎇\u00A0Get Scribe for free: http://scribe.how/jeffsu\n\nCheck out the Scribe I made in this video 👉🏻\u00A0https://scribehow.com/shared/New_Dropdown_Feature_for_Google_Docs__GtWlKBX1RhGOt5xw6qbAvw\n\nAlthough Google Workspace and Office 365 do a good job keeping us connected and productive at work, they do have their respective limitations\n\nIn this video, I share 7 FREE Productivity Tools for Hybrid & Remote Teams each designed to solve a specific pain point we face in the workplace! \n\nTIMESTAMPS\n00:00 witeboard.com\n00:59 Productivity Tools for Remote Teams\n01:18 Flippity.net\n02:29 There\n03:11 Scribe\n04:36 HandMirror\n04:57 Shepherd\n06:17 Sli.do\n\nTHE TOOLS\nWiteboard - https://witeboard.com/\nFlippity - https://www.flippity.net/ \nThere - https://there.pm/\nScribe - http://scribe.how/jeffsu\nHandMirror - https://handmirror.app/\nShepherd - https://bit.ly/Shepherd-TryForFree\nSli.do - https://www.sli.do/\n\nRESOURCES I MENTION IN THE VIDEO\nMac Productivity video - https://youtu.be/5B2kPVvyjbU\nAdd Timezones to Google Calendar - https://youtu.be/4GqqptRI4Do\nAurelius Tjin’s video on useful websites - https://youtu.be/N8g4eO2gp0s\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a tech professional trying to figure life out. What I do end up figuring out, I share!\n\nPS: Some of the links in this description are affiliate links I get a kickback from and my opinions are my own and may not reflect that of my employer 😇\n#thinkoutsidethebox #productivitytools #hybridteams", "7 FREE Productivity Tools You Didn't Know Existed!", "UJM83-zb3c4", 1, 463, false, "https://www.youtube.com/watch?v=UJM83-zb3c4", "/downloads/Jeff Su/2022-06-07 7 FREE Productivity Tools You Didn't Know Existed!/7 FREE Productivity Tools You Didn't Know Existed! [UJM83-zb3c4].mp4", false, ~U[2022-06-07 13:00:12Z]] 16:58:31.365 [debug] QUERY OK source="sources" db=0.4ms idle=14.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.367 [debug] QUERY OK source="media_items" db=1.0ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-05-31 13:00:06Z], 1] 16:58:31.370 [debug] QUERY OK source="media_items" db=2.1ms idle=7.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nMessage recruiters on LinkedIn the right way 👉🏻\u00A0https://youtu.be/jnzh5QTKbsw\n\n🌟\u00A0All-Star LinkedIn profiles are 40x more likely to be contacted by recruiters and 18x more likely to show up in hiring managers’ search results. To get to All-Star, there are 9 things you need to get right and in this video we go over 5 most people think take a lot of effort but are surprisingly simple to get right\n\nWithout further ado, here are my Top 5 LinkedIn Profile Tips for Job Seekers - \n\nTIMESTAMPS\n00:00 Benefits of a LinkedIn All-Star Profile\n00:35 Hide Your Updates on LinkedIn\n01:06 High Quality LinkedIn Profile Picture\n03:20 High Quality LinkedIn Banner, Cover Photo\n04:02 Add a Meaningful LinkedIn Headline\n05:13 Include Keywords in LinkedIn About Section\n06:42 Add 5 Skills Correctly\n07:20 Use a Custom LinkedIn URL\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Effective LinkedIn About Section - https://youtu.be/5hNsdH6Y2Mg\nWrite an Amazing Resume - https://youtu.be/Tt08KmFfIYQ\nRemove Background - https://www.remove.bg/upload\nCanva - partner.canva.com/jeffsu\nFree Wordcloud Generator - https://monkeylearn.com/word-cloud\nBenefits of All-Star Profiles - https://www.cleverism.com/all-star-linkedin-users-are-40-times-more-likely-to-get-contacted-heres-how-to-score-that-rating/\nAustin Belcak’s LinkedIn Profile article - https://cultivatedculture.com/linkedin-profile-tips/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#linkedin #jobsearch", "5 MUST-KNOW LinkedIn Profile Tips for Job Seekers!", "c321b07e-6698-44f0-aab3-95e0bf49a00d", false, "B4OhuzwLc9o", 1, [], 490, false, "https://www.youtube.com/watch?v=B4OhuzwLc9o", 98, "/downloads/Jeff Su/2022-05-31 5 MUST-KNOW LinkedIn Profile Tips for Job Seekers!/5 MUST-KNOW LinkedIn Profile Tips for Job Seekers! [B4OhuzwLc9o].mp4", false, false, 98, ~U[2022-05-31 13:00:06Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nMessage recruiters on LinkedIn the right way 👉🏻\u00A0https://youtu.be/jnzh5QTKbsw\n\n🌟\u00A0All-Star LinkedIn profiles are 40x more likely to be contacted by recruiters and 18x more likely to show up in hiring managers’ search results. To get to All-Star, there are 9 things you need to get right and in this video we go over 5 most people think take a lot of effort but are surprisingly simple to get right\n\nWithout further ado, here are my Top 5 LinkedIn Profile Tips for Job Seekers - \n\nTIMESTAMPS\n00:00 Benefits of a LinkedIn All-Star Profile\n00:35 Hide Your Updates on LinkedIn\n01:06 High Quality LinkedIn Profile Picture\n03:20 High Quality LinkedIn Banner, Cover Photo\n04:02 Add a Meaningful LinkedIn Headline\n05:13 Include Keywords in LinkedIn About Section\n06:42 Add 5 Skills Correctly\n07:20 Use a Custom LinkedIn URL\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Effective LinkedIn About Section - https://youtu.be/5hNsdH6Y2Mg\nWrite an Amazing Resume - https://youtu.be/Tt08KmFfIYQ\nRemove Background - https://www.remove.bg/upload\nCanva - partner.canva.com/jeffsu\nFree Wordcloud Generator - https://monkeylearn.com/word-cloud\nBenefits of All-Star Profiles - https://www.cleverism.com/all-star-linkedin-users-are-40-times-more-likely-to-get-contacted-heres-how-to-score-that-rating/\nAustin Belcak’s LinkedIn Profile article - https://cultivatedculture.com/linkedin-profile-tips/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#linkedin #jobsearch", "5 MUST-KNOW LinkedIn Profile Tips for Job Seekers!", "B4OhuzwLc9o", 1, 490, false, "https://www.youtube.com/watch?v=B4OhuzwLc9o", "/downloads/Jeff Su/2022-05-31 5 MUST-KNOW LinkedIn Profile Tips for Job Seekers!/5 MUST-KNOW LinkedIn Profile Tips for Job Seekers! [B4OhuzwLc9o].mp4", false, ~U[2022-05-31 13:00:06Z]] 16:58:31.371 [debug] QUERY OK source="sources" db=0.6ms idle=9.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.372 [debug] QUERY OK source="media_items" db=0.9ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-05-24 13:00:09Z], 1] 16:58:31.390 [debug] QUERY OK source="media_items" db=16.7ms idle=7.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["We’ve all sat through meetings that were a waste of time, what can we do to help our colleagues avoid a similar fate? \n\nDownload the meeting recap email template 👉🏻\u00A0https://www.jeffsu.org/10-tips-for-running-crazy-effective-meetings/\n\nHow to have productive 1:1’s with your manager 👉🏻\u00A0https://youtu.be/LWz57CpcSnE\n\nAlthough very (very) few of us have proper meeting management training, we can all apply tips to run highly effective meetings that our colleagues actually look forward to joining!\n\nThe 40-20-40 rule first mentioned in the book “How to Fix Meetings” was a game-changer for me because only then did I realize most of our time should be spent in preparation and follow through, instead of the meeting itself. So here are 10 tips that will help you run crazy effective meetings - \n\nTIMESTAMPS\n00:00 How to Run Effective Meetings\n00:20 The 40-20-40 Rule\n00:57 When NOT to Have a Meeting\n01:28 Don’t Over-Invite\n01:53 Objective-Context Combo\n03:05 Pre-Align Before the Meeting\n04:19 Facilitate Inclusively\n05:21 Call People By Their Names\n05:52 Send a Concise Meeting Summary\n06:19 After Action Communication\n06:48 Bribe Your Colleagues!\n\nRESOURCES I MENTION IN THE VIDEO\nMIT Article - https://sloanreview.mit.edu/article/the-surprising-science-behind-successful-remote-meetings/\nHow to Fix Meetings - https://amzn.to/38aUuHY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "Run Meetings that Don't Suck (10 Tips)!", "a46420fe-fceb-473b-905f-d6a9e4e8ef9a", false, "LCiQFwAwJvI", 1, [], 443, false, "https://www.youtube.com/watch?v=LCiQFwAwJvI", 99, "/downloads/Jeff Su/2022-05-24 Run Meetings that Don't Suck (10 Tips)!/Run Meetings that Don't Suck (10 Tips)! [LCiQFwAwJvI].mp4", false, false, 98, ~U[2022-05-24 13:00:09Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "We’ve all sat through meetings that were a waste of time, what can we do to help our colleagues avoid a similar fate? \n\nDownload the meeting recap email template 👉🏻\u00A0https://www.jeffsu.org/10-tips-for-running-crazy-effective-meetings/\n\nHow to have productive 1:1’s with your manager 👉🏻\u00A0https://youtu.be/LWz57CpcSnE\n\nAlthough very (very) few of us have proper meeting management training, we can all apply tips to run highly effective meetings that our colleagues actually look forward to joining!\n\nThe 40-20-40 rule first mentioned in the book “How to Fix Meetings” was a game-changer for me because only then did I realize most of our time should be spent in preparation and follow through, instead of the meeting itself. So here are 10 tips that will help you run crazy effective meetings - \n\nTIMESTAMPS\n00:00 How to Run Effective Meetings\n00:20 The 40-20-40 Rule\n00:57 When NOT to Have a Meeting\n01:28 Don’t Over-Invite\n01:53 Objective-Context Combo\n03:05 Pre-Align Before the Meeting\n04:19 Facilitate Inclusively\n05:21 Call People By Their Names\n05:52 Send a Concise Meeting Summary\n06:19 After Action Communication\n06:48 Bribe Your Colleagues!\n\nRESOURCES I MENTION IN THE VIDEO\nMIT Article - https://sloanreview.mit.edu/article/the-surprising-science-behind-successful-remote-meetings/\nHow to Fix Meetings - https://amzn.to/38aUuHY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n💻 What's On My Desk - https://geni.us/mydesk\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "Run Meetings that Don't Suck (10 Tips)!", "LCiQFwAwJvI", 1, 443, false, "https://www.youtube.com/watch?v=LCiQFwAwJvI", "/downloads/Jeff Su/2022-05-24 Run Meetings that Don't Suck (10 Tips)!/Run Meetings that Don't Suck (10 Tips)! [LCiQFwAwJvI].mp4", false, ~U[2022-05-24 13:00:09Z]] 16:58:31.391 [debug] QUERY OK source="sources" db=0.4ms idle=24.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.393 [debug] QUERY OK source="media_items" db=0.9ms idle=22.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-05-17 13:00:03Z], 1] 16:58:31.396 [debug] QUERY OK source="media_items" db=2.0ms idle=22.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Check out my Data Storytelling tips video next 👉🏻\u00A0https://youtu.be/jizZKNnx9wA\n\nWe all know that 1 colleague at work who speaks confidently during every presentation, but what exactly are they doing? Let’s find out! \n\nWe have all heard common (and perhaps overused) advice such as “know your audience” and “practice effective communication skills” but what exactly do those entail? \n\nTo be able to present confidently in the workplace, you need the audience to be able to relate to what you’re saying. If you master this skill, even new hires can draw senior leaders in to their presentations\n\nTIMESTAMPS\n00:00 How to Present with Confidence\n00:28 Humor through Relatability\n01:30 Keep Your Slides Clean\n02:48 Assume Lowest Common Language\n04:05 Presentation Etiquette Tips & Tricks\n05:05 Rehearse Out Loud\n\nRESOURCES I MENTION IN THE VIDEO\nWhat the best presenters do differently - https://hbr.org/2022/04/what-the-best-presenters-do-differently\nData Storytelling tips - https://youtu.be/jizZKNnx9wA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 My Everyday Carry - https://geni.us/mybag\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentwithconfidence #productivityatwork #careertips", "Top 5 Tips to CRUSH Your Next Presentation!", "15fe6c6d-f34d-476b-a9e8-20c8aecfaeae", false, "7iyxvfrraoc", 1, [], 370, false, "https://www.youtube.com/watch?v=7iyxvfrraoc", 100, "/downloads/Jeff Su/2022-05-17 Top 5 Tips to CRUSH Your Next Presentation!/Top 5 Tips to CRUSH Your Next Presentation! [7iyxvfrraoc].mp4", false, false, 98, ~U[2022-05-17 13:00:03Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "Check out my Data Storytelling tips video next 👉🏻\u00A0https://youtu.be/jizZKNnx9wA\n\nWe all know that 1 colleague at work who speaks confidently during every presentation, but what exactly are they doing? Let’s find out! \n\nWe have all heard common (and perhaps overused) advice such as “know your audience” and “practice effective communication skills” but what exactly do those entail? \n\nTo be able to present confidently in the workplace, you need the audience to be able to relate to what you’re saying. If you master this skill, even new hires can draw senior leaders in to their presentations\n\nTIMESTAMPS\n00:00 How to Present with Confidence\n00:28 Humor through Relatability\n01:30 Keep Your Slides Clean\n02:48 Assume Lowest Common Language\n04:05 Presentation Etiquette Tips & Tricks\n05:05 Rehearse Out Loud\n\nRESOURCES I MENTION IN THE VIDEO\nWhat the best presenters do differently - https://hbr.org/2022/04/what-the-best-presenters-do-differently\nData Storytelling tips - https://youtu.be/jizZKNnx9wA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 My Everyday Carry - https://geni.us/mybag\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentwithconfidence #productivityatwork #careertips", "Top 5 Tips to CRUSH Your Next Presentation!", "7iyxvfrraoc", 1, 370, false, "https://www.youtube.com/watch?v=7iyxvfrraoc", "/downloads/Jeff Su/2022-05-17 Top 5 Tips to CRUSH Your Next Presentation!/Top 5 Tips to CRUSH Your Next Presentation! [7iyxvfrraoc].mp4", false, ~U[2022-05-17 13:00:03Z]] 16:58:31.397 [debug] QUERY OK source="sources" db=0.3ms idle=24.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.399 [debug] QUERY OK source="media_items" db=1.3ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-05-10 13:00:08Z], 1] 16:58:31.402 [debug] QUERY OK source="media_items" db=2.2ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n🎩\u00A0Alfred will be your new favorite app for the Mac\n\nCheck out my top productivity tips for the Mac next 👉🏻\u00A0https://youtu.be/5B2kPVvyjbU\n\nThe free features of Alfred is more than enough to supercharge your workflow and change the way you use your Mac. The Alfred app is one of the best mac apps for productivity and is a must have application for any Mac user. In this video I go through a step-by-step Alfred tutorial for new and existing Mac users 🍎\n\nTIMESTAMPS\n00:00 Step-by-step tutorial for Alfred\n00:45 Settings Changes for Alfred\n01:16 4 Main Ways to Use Alfred\n01:47 Default Results Preferences\n02:29 File Search Preferences\n04:41 Keyword Search Settings\n05:06 Add Custom Searches to Alfred\n07:33 Change Appearance for Alfred\n08:14 Paid Alfred Features\n08:21 Download Custom Themes for Alfred\n08:33 Clipboard History\n08:48 Snippets Feature\n09:09 Alfred Workflows Walkthrough\n09:34 Alfred vs. Raycast (my thoughts)\n\nRESOURCES I MENTION IN THE VIDEO\nMac Apps for Productivity - https://youtu.be/5B2kPVvyjbU\nSubscribe to my newsletter - https://www.jeffsu.org/productivity-ping/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🖥 Cleanshot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#alfredapp #mac #productivity", "My Entire Alfred Workflow: Supercharge Your Mac (for free)!", "49c1bfb0-0af3-47b4-9739-ab8aa7fb3b04", false, "FXV-zwkRMxo", 1, [], 607, false, "https://www.youtube.com/watch?v=FXV-zwkRMxo", 101, "/downloads/Jeff Su/2022-05-10 My Entire Alfred Workflow: Supercharge Your Mac (for free)!/My Entire Alfred Workflow: Supercharge Your Mac (for free)! [FXV-zwkRMxo].mp4", false, false, 98, ~U[2022-05-10 13:00:08Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n🎩\u00A0Alfred will be your new favorite app for the Mac\n\nCheck out my top productivity tips for the Mac next 👉🏻\u00A0https://youtu.be/5B2kPVvyjbU\n\nThe free features of Alfred is more than enough to supercharge your workflow and change the way you use your Mac. The Alfred app is one of the best mac apps for productivity and is a must have application for any Mac user. In this video I go through a step-by-step Alfred tutorial for new and existing Mac users 🍎\n\nTIMESTAMPS\n00:00 Step-by-step tutorial for Alfred\n00:45 Settings Changes for Alfred\n01:16 4 Main Ways to Use Alfred\n01:47 Default Results Preferences\n02:29 File Search Preferences\n04:41 Keyword Search Settings\n05:06 Add Custom Searches to Alfred\n07:33 Change Appearance for Alfred\n08:14 Paid Alfred Features\n08:21 Download Custom Themes for Alfred\n08:33 Clipboard History\n08:48 Snippets Feature\n09:09 Alfred Workflows Walkthrough\n09:34 Alfred vs. Raycast (my thoughts)\n\nRESOURCES I MENTION IN THE VIDEO\nMac Apps for Productivity - https://youtu.be/5B2kPVvyjbU\nSubscribe to my newsletter - https://www.jeffsu.org/productivity-ping/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🖥 Cleanshot X - https://geni.us/cleanshotx\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#alfredapp #mac #productivity", "My Entire Alfred Workflow: Supercharge Your Mac (for free)!", "FXV-zwkRMxo", 1, 607, false, "https://www.youtube.com/watch?v=FXV-zwkRMxo", "/downloads/Jeff Su/2022-05-10 My Entire Alfred Workflow: Supercharge Your Mac (for free)!/My Entire Alfred Workflow: Supercharge Your Mac (for free)! [FXV-zwkRMxo].mp4", false, ~U[2022-05-10 13:00:08Z]] 16:58:31.403 [debug] QUERY OK source="sources" db=0.3ms idle=9.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.405 [debug] QUERY OK source="media_items" db=0.9ms idle=8.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-05-03 13:00:31Z], 1] 16:58:31.408 [debug] QUERY OK source="media_items" db=2.3ms idle=8.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n🌄\u00A0Ready for 9 Mac Apps to change the way you manage media and files on your Mac?\n\nCheck out my Best Mac Apps for Productivity next 👉🏻\u00A0https://youtu.be/-xXc7qeiC8I\n\nComing from a Windows PC, I honestly can’t believe the quality of some of these free media and file management apps for the Mac. Yes these apps have made me more productive on my Macbook, yes these apps have helped me get things done I wouldn’t have thought possible previously, but I think most importantly it just feels SO AWESOME to be using some of these apps (you know what I mean?) \n\nTIMESTAMPS\n00:00 Best Mac Apps for File and Media Management\n00:16 The Unarchiver and Keka for .zip files\n00:44 IINA Media Player to play videos\n02:07 Color System Picker to save colors \n03:53 Bartender to hide menu bar icons\n05:13 Skim PDF Reader\n06:53 fliqlo for flip clock screensaver\n07:11 Downie to download videos for free\n08:04 Google Drive for Desktop for file management\n08:32 Automator to automate tasks on Mac\n\nRESOURCES I MENTION IN THE VIDEO\nThe Unarchiver - https://theunarchiver.com/\nKeka - https://www.keka.io/en/\nSystem Color Picker - https://sindresorhus.com/system-color-picker\nMaccy - https://maccy.app/\nCleanshot X - https://geni.us/cleanshotx\nBartender - https://www.macbartender.com/\nDozer - https://github.com/Mortennn/Dozer\nHiddenBar - https://github.com/dwarvesf/hidden\nSkim PDF Reader - https://skim-app.sourceforge.io/\nFliqlo - https://fliqlo.com/screensaver/\nDownie - https://geni.us/downie\nNeatDownloadManager - https://www.neatdownloadmanager.com/index.php/en/\nGoogle Drive for Desktop - https://www.google.com/drive/download/\nAutomator - https://support.apple.com/guide/automator/welcome/mac\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#mac #apps #filemanagement", "9 UNREAL File & Media Management Apps for Mac!", "e2e40dc4-a512-48d3-938d-322e68f41321", false, "gcJDDSv7Gq8", 1, [], 648, false, "https://www.youtube.com/watch?v=gcJDDSv7Gq8", 102, "/downloads/Jeff Su/2022-05-03 9 UNREAL File & Media Management Apps for Mac!/9 UNREAL File & Media Management Apps for Mac! [gcJDDSv7Gq8].mp4", false, false, 98, ~U[2022-05-03 13:00:31Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "Link to my wallpapers - https://jeffsu.gumroad.com/l/gradient-wallpaper-pack\n\n🌄\u00A0Ready for 9 Mac Apps to change the way you manage media and files on your Mac?\n\nCheck out my Best Mac Apps for Productivity next 👉🏻\u00A0https://youtu.be/-xXc7qeiC8I\n\nComing from a Windows PC, I honestly can’t believe the quality of some of these free media and file management apps for the Mac. Yes these apps have made me more productive on my Macbook, yes these apps have helped me get things done I wouldn’t have thought possible previously, but I think most importantly it just feels SO AWESOME to be using some of these apps (you know what I mean?) \n\nTIMESTAMPS\n00:00 Best Mac Apps for File and Media Management\n00:16 The Unarchiver and Keka for .zip files\n00:44 IINA Media Player to play videos\n02:07 Color System Picker to save colors \n03:53 Bartender to hide menu bar icons\n05:13 Skim PDF Reader\n06:53 fliqlo for flip clock screensaver\n07:11 Downie to download videos for free\n08:04 Google Drive for Desktop for file management\n08:32 Automator to automate tasks on Mac\n\nRESOURCES I MENTION IN THE VIDEO\nThe Unarchiver - https://theunarchiver.com/\nKeka - https://www.keka.io/en/\nSystem Color Picker - https://sindresorhus.com/system-color-picker\nMaccy - https://maccy.app/\nCleanshot X - https://geni.us/cleanshotx\nBartender - https://www.macbartender.com/\nDozer - https://github.com/Mortennn/Dozer\nHiddenBar - https://github.com/dwarvesf/hidden\nSkim PDF Reader - https://skim-app.sourceforge.io/\nFliqlo - https://fliqlo.com/screensaver/\nDownie - https://geni.us/downie\nNeatDownloadManager - https://www.neatdownloadmanager.com/index.php/en/\nGoogle Drive for Desktop - https://www.google.com/drive/download/\nAutomator - https://support.apple.com/guide/automator/welcome/mac\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#mac #apps #filemanagement", "9 UNREAL File & Media Management Apps for Mac!", "gcJDDSv7Gq8", 1, 648, false, "https://www.youtube.com/watch?v=gcJDDSv7Gq8", "/downloads/Jeff Su/2022-05-03 9 UNREAL File & Media Management Apps for Mac!/9 UNREAL File & Media Management Apps for Mac! [gcJDDSv7Gq8].mp4", false, ~U[2022-05-03 13:00:31Z]] 16:58:31.409 [debug] QUERY OK source="sources" db=0.3ms idle=9.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.410 [debug] QUERY OK source="media_items" db=0.9ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-04-26 13:00:00Z], 1] 16:58:31.415 [debug] QUERY OK source="media_items" db=2.9ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🧑🏻\u200D💻\u00A0I use these 10 Mac Apps for productivity daily and they save me HOURS every week\n\n9 UNREAL File and Media Management Apps for the Mac 👉🏻\u00A0https://youtu.be/gcJDDSv7Gq8\n\nThese 10 Best Mac Apps for Productivity include some of the most popular free apps out there: including Dropzone, Alfred, AltTab, Monitor Control, Numi, Cheatsheet, AppCleaner, and Logi Options. For paid apps like Moom and Cheatshot X, I provide alternatives such as Rectangle (for window snapping) and a built-in Mac solution for screenshot purposes\n\nSpecial shoutout to @CreatedbyEllaYT for introducing me to Maccy! It works just as well as Alfred’s paid Clipboard Manager feature!\n\nDropzone 4 - https://aptonic.com/\nAltTab - https://alt-tab-macos.netlify.app/\nMonitor Control (go to Releases page) - https://github.com/MonitorControl/MonitorControl\nMoom - https://manytricks.com/moom/\nRectangle (free alternative) - https://rectangleapp.com/\nNumi - https://numi.app/\nCheatSheet - https://www.mediaatelier.com/CheatSheet/\nAppCleaner - https://freemacsoft.net/appcleaner/\nCleanshot X - https://geni.us/cleanshotx\nAlfred - https://www.alfredapp.com/\nLogi Options - https://www.logitech.com/en-us/software/options.html\nMaccy - https://github.com/p0deje/Maccy\nDownie - https://geni.us/downie\n\nTIMESTAMPS\n00:00 Best Mac Apps for Productivity\n00:40 Dropzone to manage files\n01:40 AltTab to select a specific window\n02:40 Monitor Control to adjust brightness\n03:52 Moom to snap windows to different positions\n04:43 Numi calculator for unit conversion\n05:22 Cheat Sheet to find shortcuts and hotkeys\n05:47 AppCleaner to quickly uninstall Mac apps\n06:30 CleanShot X as an amazing screenshot tool\n08:27 Alfred replaces Spotlight Search\n10:56 Logi Options to map buttons on mouse\n\nRESOURCES I MENTION IN THE VIDEO\nCreated by Ella Mac Apps video - https://youtu.be/bRTK7KBudYg\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#mac #apps #productivity", "10 BEST Mac Apps for Productivity!", "bf3a862a-8a0c-4e8f-a8eb-108e1c190bac", false, "-xXc7qeiC8I", 1, [], 699, false, "https://www.youtube.com/watch?v=-xXc7qeiC8I", 103, "/downloads/Jeff Su/2022-04-26 10 BEST Mac Apps for Productivity!/10 BEST Mac Apps for Productivity! [-xXc7qeiC8I].mp4", false, false, 98, ~U[2022-04-26 13:00:00Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🧑🏻\u200D💻\u00A0I use these 10 Mac Apps for productivity daily and they save me HOURS every week\n\n9 UNREAL File and Media Management Apps for the Mac 👉🏻\u00A0https://youtu.be/gcJDDSv7Gq8\n\nThese 10 Best Mac Apps for Productivity include some of the most popular free apps out there: including Dropzone, Alfred, AltTab, Monitor Control, Numi, Cheatsheet, AppCleaner, and Logi Options. For paid apps like Moom and Cheatshot X, I provide alternatives such as Rectangle (for window snapping) and a built-in Mac solution for screenshot purposes\n\nSpecial shoutout to @CreatedbyEllaYT for introducing me to Maccy! It works just as well as Alfred’s paid Clipboard Manager feature!\n\nDropzone 4 - https://aptonic.com/\nAltTab - https://alt-tab-macos.netlify.app/\nMonitor Control (go to Releases page) - https://github.com/MonitorControl/MonitorControl\nMoom - https://manytricks.com/moom/\nRectangle (free alternative) - https://rectangleapp.com/\nNumi - https://numi.app/\nCheatSheet - https://www.mediaatelier.com/CheatSheet/\nAppCleaner - https://freemacsoft.net/appcleaner/\nCleanshot X - https://geni.us/cleanshotx\nAlfred - https://www.alfredapp.com/\nLogi Options - https://www.logitech.com/en-us/software/options.html\nMaccy - https://github.com/p0deje/Maccy\nDownie - https://geni.us/downie\n\nTIMESTAMPS\n00:00 Best Mac Apps for Productivity\n00:40 Dropzone to manage files\n01:40 AltTab to select a specific window\n02:40 Monitor Control to adjust brightness\n03:52 Moom to snap windows to different positions\n04:43 Numi calculator for unit conversion\n05:22 Cheat Sheet to find shortcuts and hotkeys\n05:47 AppCleaner to quickly uninstall Mac apps\n06:30 CleanShot X as an amazing screenshot tool\n08:27 Alfred replaces Spotlight Search\n10:56 Logi Options to map buttons on mouse\n\nRESOURCES I MENTION IN THE VIDEO\nCreated by Ella Mac Apps video - https://youtu.be/bRTK7KBudYg\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#mac #apps #productivity", "10 BEST Mac Apps for Productivity!", "-xXc7qeiC8I", 1, 699, false, "https://www.youtube.com/watch?v=-xXc7qeiC8I", "/downloads/Jeff Su/2022-04-26 10 BEST Mac Apps for Productivity!/10 BEST Mac Apps for Productivity! [-xXc7qeiC8I].mp4", false, ~U[2022-04-26 13:00:00Z]] 16:58:31.416 [debug] QUERY OK source="sources" db=0.3ms idle=10.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.417 [debug] QUERY OK source="media_items" db=0.9ms idle=8.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-04-12 13:00:34Z], 1] 16:58:31.420 [debug] QUERY OK source="media_items" db=1.8ms idle=8.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔐\u00A0Bet you didn’t think you’d be watching a lockdown video in 2022! \n\nCheck out the morning routine I go through while being locked down in Shanghai, China. I guess I couldn’t have avoided this forever 😅\n\nTIMESTAMPS\n00:00 Lockdown Life in Shanghai 2022\n00:49 Waking Up\n01:46 Getting Ready\n02:38 Shanghai Lockdown Situation Background\n03:02 Daily Agenda Planner\n03:30 What’s Going on in Shanghai Right Now\n04:08 Morning Stretches\n05:06 Cooking a Delicious Breakfast\n06:17 How Testing Works in Shanghai\n07:44 Self-Testing\n\nRESOURCES I MENTION IN THE VIDEO\nWeekly Agenda Planner - https://youtu.be/M28HPv1l8gY\nJeremy Ethier’s 5-min Routine - https://youtu.be/sOuKeVuej9E\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#lockdownin2022, #shanghai #morningroutine", "An Unusual Morning Routine (in LOCKDOWN)", "014993aa-48fe-40e2-a769-d71dfb9edd3e", false, "wZn3WoZALnU", 1, [], 496, false, "https://www.youtube.com/watch?v=wZn3WoZALnU", 104, "/downloads/Jeff Su/2022-04-12 An Unusual Morning Routine (in LOCKDOWN)/An Unusual Morning Routine (in LOCKDOWN) [wZn3WoZALnU].mp4", false, false, 98, ~U[2022-04-12 13:00:34Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🔐\u00A0Bet you didn’t think you’d be watching a lockdown video in 2022! \n\nCheck out the morning routine I go through while being locked down in Shanghai, China. I guess I couldn’t have avoided this forever 😅\n\nTIMESTAMPS\n00:00 Lockdown Life in Shanghai 2022\n00:49 Waking Up\n01:46 Getting Ready\n02:38 Shanghai Lockdown Situation Background\n03:02 Daily Agenda Planner\n03:30 What’s Going on in Shanghai Right Now\n04:08 Morning Stretches\n05:06 Cooking a Delicious Breakfast\n06:17 How Testing Works in Shanghai\n07:44 Self-Testing\n\nRESOURCES I MENTION IN THE VIDEO\nWeekly Agenda Planner - https://youtu.be/M28HPv1l8gY\nJeremy Ethier’s 5-min Routine - https://youtu.be/sOuKeVuej9E\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#lockdownin2022, #shanghai #morningroutine", "An Unusual Morning Routine (in LOCKDOWN)", "wZn3WoZALnU", 1, 496, false, "https://www.youtube.com/watch?v=wZn3WoZALnU", "/downloads/Jeff Su/2022-04-12 An Unusual Morning Routine (in LOCKDOWN)/An Unusual Morning Routine (in LOCKDOWN) [wZn3WoZALnU].mp4", false, ~U[2022-04-12 13:00:34Z]] 16:58:31.421 [debug] QUERY OK source="sources" db=0.3ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.423 [debug] QUERY OK source="media_items" db=0.9ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-04-05 13:00:21Z], 1] 16:58:31.426 [debug] QUERY OK source="media_items" db=2.4ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=97\n\n⏬\u00A0Weekly Agenda Template - https://www.jeffsu.org/notion-weekly-agenda-template/\n\nIn this video I build on my original “Plan a Productive Day using Notion” video and share my latest practical & aesthetic Weekly Agenda Template on Notion (completely for free of course)! 🌟\n\nOne area Notion truly shines is its ability to help your organize your life. And what better place to start than your week? In this weekly Notion planner, you can see I’ve boiled all the planning and organizing down to the basics to minimize friction and ensure you’re able to consistently stick with this day-to-day, week-by-week\n\nWhether you’re working professional or student, it’s extremely easy to get started with this Notion weekly agenda template. My recommendation is to sit down for 5 minutes in the morning, and write down 1 highlight, 1 thing you’re grateful for, and 1 thing you want to let go (and...let it go!)\n\nThen, under the “Daily To-Do’s” section, use the new and improved template button I created and add 1 or more action items you complete on a daily basis (stretching for example). Then, write a few high-level activities you want to go through during the day and that’s basically it!\n\nPlease let me know what you think of this free Notion template and honestly I’m more excited about how you optimize and customize this template for yourself! \n\nTIMESTAMPS\n00:00 Updated Notion Weekly Agenda Template\n00:38 Change Notion Page Cover Image\n00:59 Change Notion Page Icon\n01:10 Custom Colors for Notion Text\n02:32 Pick Your Color Theme and Font\n03:02 Daily 5 Minute Agenda Workflow\n04:05 Reflect on your Week\n05:13 Daily To-Do Section\n05:53 Workstream Section\n06:41 Sunday Night Action Items\n07:12 Minimize Friction\n\nRESOURCES I MENTION IN THE VIDEO\n7 Awesome Ideas for Canva (for free)! - https://youtu.be/w0Bf4u-u9AQ\nSign up for Canva - https://partner.canva.com/jeffsu\nFlaticons - https://www.flaticon.com/\nColorHunt - https://colorhunt.co/\nCoolors - https://coolors.co/\nHBR Article - https://hbr.org/2022/03/dont-underestimate-the-power-of-self-reflection\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notion #notionhq #weeklyagendaplanner", "Notion Weekly Agenda Template 🌟\u00A0📆\u00A0Practical & Aesthetic!", "84cdfaa0-b449-492f-ad79-cad7499c45a0", false, "M28HPv1l8gY", 1, [], 459, false, "https://www.youtube.com/watch?v=M28HPv1l8gY", 105, "/downloads/Jeff Su/2022-04-05 Notion Weekly Agenda Template 🌟\u00A0📆\u00A0Practical & Aesthetic!/Notion Weekly Agenda Template 🌟\u00A0📆\u00A0Practical & Aesthetic! [M28HPv1l8gY].mp4", false, false, 98, ~U[2022-04-05 13:00:21Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=97\n\n⏬\u00A0Weekly Agenda Template - https://www.jeffsu.org/notion-weekly-agenda-template/\n\nIn this video I build on my original “Plan a Productive Day using Notion” video and share my latest practical & aesthetic Weekly Agenda Template on Notion (completely for free of course)! 🌟\n\nOne area Notion truly shines is its ability to help your organize your life. And what better place to start than your week? In this weekly Notion planner, you can see I’ve boiled all the planning and organizing down to the basics to minimize friction and ensure you’re able to consistently stick with this day-to-day, week-by-week\n\nWhether you’re working professional or student, it’s extremely easy to get started with this Notion weekly agenda template. My recommendation is to sit down for 5 minutes in the morning, and write down 1 highlight, 1 thing you’re grateful for, and 1 thing you want to let go (and...let it go!)\n\nThen, under the “Daily To-Do’s” section, use the new and improved template button I created and add 1 or more action items you complete on a daily basis (stretching for example). Then, write a few high-level activities you want to go through during the day and that’s basically it!\n\nPlease let me know what you think of this free Notion template and honestly I’m more excited about how you optimize and customize this template for yourself! \n\nTIMESTAMPS\n00:00 Updated Notion Weekly Agenda Template\n00:38 Change Notion Page Cover Image\n00:59 Change Notion Page Icon\n01:10 Custom Colors for Notion Text\n02:32 Pick Your Color Theme and Font\n03:02 Daily 5 Minute Agenda Workflow\n04:05 Reflect on your Week\n05:13 Daily To-Do Section\n05:53 Workstream Section\n06:41 Sunday Night Action Items\n07:12 Minimize Friction\n\nRESOURCES I MENTION IN THE VIDEO\n7 Awesome Ideas for Canva (for free)! - https://youtu.be/w0Bf4u-u9AQ\nSign up for Canva - https://partner.canva.com/jeffsu\nFlaticons - https://www.flaticon.com/\nColorHunt - https://colorhunt.co/\nCoolors - https://coolors.co/\nHBR Article - https://hbr.org/2022/03/dont-underestimate-the-power-of-self-reflection\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notion #notionhq #weeklyagendaplanner", "Notion Weekly Agenda Template 🌟\u00A0📆\u00A0Practical & Aesthetic!", (truncated) 16:58:31.427 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:31.429 [debug] QUERY OK source="media_items" db=0.9ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-29 13:00:50Z], 1] 16:58:31.432 [debug] QUERY OK source="media_items" db=2.1ms idle=8.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=096\n\n📆\u00A0If you enjoyed my original Google Calendar tips for productivity, you’re going to want to check out this video with 15 MORE Google Calendar Tips for Productivity! \n\nI go over (1) New Google Calendar features and functions that have rolled out recently, (2) Google Calendar extensions designed to make our lives even more efficient, and (3) Google Workspace-specific tips for those of us who use Google Calendar at work or for school\n\nMy favorite tips from this video include selecting 3-day or 2-day views using the mouse; adding labels to secondary timezones (game-changer!); exporting and importing Birthday calendars; the Button for Google browser extension, and the integration of Google Docs within Google Calendar events\n\nEnjoy! 😊\u00A0\n\nTIMESTAMPS\n00:00 3-Day, 2-Day, or 1-Day View\n00:47 Add Labels to Timezones\n01:16 Customize Google Calendar Colors\n01:43 Create Events from Gmail\n02:11 Combine Multiple Calendar Views\n03:02 Transfer Ownerships of Event\n03:42 Add Birthdays to Google Contacts\n03:55 Export and Import Google Calendars\n04:35 Customize All-Day Event Notifications\n05:09 Restore Deleted Calendar Events\n05:19 Button for Google Calendar\n05:54 gCal Plus Browser Extension\n06:31 Publish Google Calendar Events\n07:08 Create Notes from Calendar Events\n07:28 RSVP with Your Location\n07:58 Bonus Tip!\n\nRESOURCES I MENTION IN THE VIDEO\nColorHunt - https://colorhunt.co/\nSmart Chips Feature in Google Docs - https://youtu.be/auYFCjU7pBA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "15 MORE Google Calendar Tips for Productivity!", "4809cae0-5ea4-4e03-8774-ba26defd63ec", false, "QQKHhri48Ps", 1, [], 500, false, "https://www.youtube.com/watch?v=QQKHhri48Ps", 106, "/downloads/Jeff Su/2022-03-29 15 MORE Google Calendar Tips for Productivity!/15 MORE Google Calendar Tips for Productivity! [QQKHhri48Ps].mp4", false, false, 98, ~U[2022-03-29 13:00:50Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=096\n\n📆\u00A0If you enjoyed my original Google Calendar tips for productivity, you’re going to want to check out this video with 15 MORE Google Calendar Tips for Productivity! \n\nI go over (1) New Google Calendar features and functions that have rolled out recently, (2) Google Calendar extensions designed to make our lives even more efficient, and (3) Google Workspace-specific tips for those of us who use Google Calendar at work or for school\n\nMy favorite tips from this video include selecting 3-day or 2-day views using the mouse; adding labels to secondary timezones (game-changer!); exporting and importing Birthday calendars; the Button for Google browser extension, and the integration of Google Docs within Google Calendar events\n\nEnjoy! 😊\u00A0\n\nTIMESTAMPS\n00:00 3-Day, 2-Day, or 1-Day View\n00:47 Add Labels to Timezones\n01:16 Customize Google Calendar Colors\n01:43 Create Events from Gmail\n02:11 Combine Multiple Calendar Views\n03:02 Transfer Ownerships of Event\n03:42 Add Birthdays to Google Contacts\n03:55 Export and Import Google Calendars\n04:35 Customize All-Day Event Notifications\n05:09 Restore Deleted Calendar Events\n05:19 Button for Google Calendar\n05:54 gCal Plus Browser Extension\n06:31 Publish Google Calendar Events\n07:08 Create Notes from Calendar Events\n07:28 RSVP with Your Location\n07:58 Bonus Tip!\n\nRESOURCES I MENTION IN THE VIDEO\nColorHunt - https://colorhunt.co/\nSmart Chips Feature in Google Docs - https://youtu.be/auYFCjU7pBA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "15 MORE Google Calendar Tips for Productivity!", "QQKHhri48Ps", 1, 500, false, "https://www.youtube.com/watch?v=QQKHhri48Ps", "/downloads/Jeff Su/2022-03-29 15 MORE Google Calendar Tips for Productivity!/15 MORE Google Calendar Tips for Productivity! [QQKHhri48Ps].mp4", false, ~U[2022-03-29 13:00:50Z]] 16:58:31.433 [debug] QUERY OK source="sources" db=0.3ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.435 [debug] QUERY OK source="media_items" db=1.0ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-22 13:00:18Z], 1] 16:58:31.438 [debug] QUERY OK source="media_items" db=2.3ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Download my template here: https://www.jeffsu.org/shared-spreadsheet-template/\n\nIt’s hard to get by at work without using some sort of project management shared spreadsheet with colleagues (be it Microsoft Excel or Google Sheets). In this video I go through 10 Best Practices for Shared Spreadsheets and I share concrete examples so you can follow along!\n\nI first go through tips and tricks you can adopt within tabs (for example hyperlinking to specific tab URLs for call-to-action) and then go through how best to structure the overall spreadsheet (e.g. having empty tabs to visually separate different sections of the spreadsheet)\n\nSo whether you use Google Sheets or Microsoft Excel at work or for school, these tips (such as using data validation and conditional formatting) will all be applicable and will also hopefully increase your productivity!\n\nTIMESTAMPS\n00:00 Shared Spreadsheet for Project Management\n00:34 Add Explanation to Every Tab\n01:22 Make Deadlines Obvious\n01:46 Hyperlink to Specific Tabs\n02:30 Use Descriptions below Header Rows\n03:07 Data Validation is Your BEST FRIEND\n04:40 Use Formulas Whenever Possible\n05:51 Import Raw Data Properly\n06:50 Key Info Tabs\n07:25 Raw Data Tabs\n07:43 Share Spreadsheet with Teammates\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Sheets Formula Video - https://youtu.be/98dnBA5WYLY\nHow To Take Notes at Work - https://youtu.be/T0qhJdHLJTc\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlesheets #excel #bestpractices", "10 Best Practices for Project Management Spreadsheets!", "73dbdd14-bd31-4b6e-b04d-7d92de90ad1d", false, "fTIupIVKbEM", 1, [], 497, false, "https://www.youtube.com/watch?v=fTIupIVKbEM", 107, "/downloads/Jeff Su/2022-03-22 10 Best Practices for Project Management Spreadsheets!/10 Best Practices for Project Management Spreadsheets! [fTIupIVKbEM].mp4", false, false, 98, ~U[2022-03-22 13:00:18Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "Download my template here: https://www.jeffsu.org/shared-spreadsheet-template/\n\nIt’s hard to get by at work without using some sort of project management shared spreadsheet with colleagues (be it Microsoft Excel or Google Sheets). In this video I go through 10 Best Practices for Shared Spreadsheets and I share concrete examples so you can follow along!\n\nI first go through tips and tricks you can adopt within tabs (for example hyperlinking to specific tab URLs for call-to-action) and then go through how best to structure the overall spreadsheet (e.g. having empty tabs to visually separate different sections of the spreadsheet)\n\nSo whether you use Google Sheets or Microsoft Excel at work or for school, these tips (such as using data validation and conditional formatting) will all be applicable and will also hopefully increase your productivity!\n\nTIMESTAMPS\n00:00 Shared Spreadsheet for Project Management\n00:34 Add Explanation to Every Tab\n01:22 Make Deadlines Obvious\n01:46 Hyperlink to Specific Tabs\n02:30 Use Descriptions below Header Rows\n03:07 Data Validation is Your BEST FRIEND\n04:40 Use Formulas Whenever Possible\n05:51 Import Raw Data Properly\n06:50 Key Info Tabs\n07:25 Raw Data Tabs\n07:43 Share Spreadsheet with Teammates\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Sheets Formula Video - https://youtu.be/98dnBA5WYLY\nHow To Take Notes at Work - https://youtu.be/T0qhJdHLJTc\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlesheets #excel #bestpractices", "10 Best Practices for Project Management Spreadsheets!", "fTIupIVKbEM", 1, 497, false, "https://www.youtube.com/watch?v=fTIupIVKbEM", "/downloads/Jeff Su/2022-03-22 10 Best Practices for Project Management Spreadsheets!/10 Best Practices for Project Management Spreadsheets! [fTIupIVKbEM].mp4", false, ~U[2022-03-22 13:00:18Z]] 16:58:31.440 [debug] QUERY OK source="sources" db=1.1ms idle=9.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.442 [debug] QUERY OK source="media_items" db=1.2ms idle=8.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-15 13:00:31Z], 1] 16:58:31.445 [debug] QUERY OK source="media_items" db=2.0ms idle=9.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🥊\u00A0Some new hires have a secret ability that help them excel in the workplace; and according to Zara Zhang, that ability is to Make Things Happen\n\nThe sooner new hires and fresh grads are able to grasp this ability to “make things happen,” the faster their career growth\n\nThere are 5 goals young professionals (especially new grads) should aim to achieve in their corporate jobs to get ahead in the workplace: Know Who Does What, Know How to Ask for Help, Know When to Escalate, Know How to Host a Meeting that Doesn’t Suck, and Know Your Boss\n\nProfessionals who master these 5 areas are usually high performers who get recognized at work without having to “play workplace politics” \n\nTIMESTAMPS\n00:00 How to Succeed in the Corporate World\n00:48 5 Things to Accelerate Your Career\n00:55 Know Who Does What\n02:40 Know How to Ask for Help\n03:32 Know When to Escalate\n04:37 Know How to Host a Productive Meeting\n05:53 Know Your Boss\n\nRESOURCES I MENTION IN THE VIDEO\nZara’s original article - https://zarazhang.com/2021/11/20/how-to-make-things-happen-tips-for-recent-graduates-at-work/\nBest Questions to ask during Coffee Chats - https://youtu.be/4b2iagdHw8M\nInformational Interview Mistakes - https://youtu.be/V_L2aWCdO4A\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#makethingshappen #workplacetips #career", "5 Things You MUST Do After Starting a New Job!", "0ec3c41e-398b-498b-813b-872e5595b9d4", false, "j9YeEQR8nKQ", 1, [], 424, false, "https://www.youtube.com/watch?v=j9YeEQR8nKQ", 108, "/downloads/Jeff Su/2022-03-15 5 Things You MUST Do After Starting a New Job!/5 Things You MUST Do After Starting a New Job! [j9YeEQR8nKQ].mp4", false, false, 98, ~U[2022-03-15 13:00:31Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🥊\u00A0Some new hires have a secret ability that help them excel in the workplace; and according to Zara Zhang, that ability is to Make Things Happen\n\nThe sooner new hires and fresh grads are able to grasp this ability to “make things happen,” the faster their career growth\n\nThere are 5 goals young professionals (especially new grads) should aim to achieve in their corporate jobs to get ahead in the workplace: Know Who Does What, Know How to Ask for Help, Know When to Escalate, Know How to Host a Meeting that Doesn’t Suck, and Know Your Boss\n\nProfessionals who master these 5 areas are usually high performers who get recognized at work without having to “play workplace politics” \n\nTIMESTAMPS\n00:00 How to Succeed in the Corporate World\n00:48 5 Things to Accelerate Your Career\n00:55 Know Who Does What\n02:40 Know How to Ask for Help\n03:32 Know When to Escalate\n04:37 Know How to Host a Productive Meeting\n05:53 Know Your Boss\n\nRESOURCES I MENTION IN THE VIDEO\nZara’s original article - https://zarazhang.com/2021/11/20/how-to-make-things-happen-tips-for-recent-graduates-at-work/\nBest Questions to ask during Coffee Chats - https://youtu.be/4b2iagdHw8M\nInformational Interview Mistakes - https://youtu.be/V_L2aWCdO4A\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#makethingshappen #workplacetips #career", "5 Things You MUST Do After Starting a New Job!", "j9YeEQR8nKQ", 1, 424, false, "https://www.youtube.com/watch?v=j9YeEQR8nKQ", "/downloads/Jeff Su/2022-03-15 5 Things You MUST Do After Starting a New Job!/5 Things You MUST Do After Starting a New Job! [j9YeEQR8nKQ].mp4", false, ~U[2022-03-15 13:00:31Z]] 16:58:31.446 [debug] QUERY OK source="sources" db=0.3ms idle=10.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.447 [debug] QUERY OK source="media_items" db=1.3ms idle=8.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-08 13:00:33Z], 1] 16:58:31.451 [debug] QUERY OK source="media_items" db=2.0ms idle=8.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=093\n\n🗂\u00A0There are 2 main reasons why the Google Drive for Desktop app is a game-changer for Google Drive users: (1) You unlock new features like file streaming, and (2) You speed up your workflow\n\nIn this video I go through how to use Google Drive for Mac (applicable for PC as well), a step-by-step tutorial on how to download and install the app, features you can start using immediately, and some potential drawbacks you might encounter when you use Google Drive for Desktop!\n\nGoogle Drive for Desktop has gone through many names (it was previously known Backup and Sync) but the core functionality has stayed largely the same. So let’s see what this amazing tool can offer us 🛠\n\nTIMESTAMPS\n00:00 Stream Files from Drive for Desktop\n00:41 Download Google Drive for Desktop\n01:16 Settings & Preferences\n02:56 Feature #1: Stream Video\n03:41 Feature #2: File Management\n04:41 Feature #3: Offline Access\n04:55 Potential Drawbacks\n\nRESOURCES I MENTION IN THE VIDEO\nDownload Drive for Desktop (PC or Mac) - https://www.google.com/drive/download/\nClean Google Drive Cache (Mac) - https://remarkablemark.medium.com/how-to-clear-google-drive-cache-abf9efc6089e\nManage Google Storage - https://youtu.be/rs0fLVEM8Ow\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googledrivefordesktop #googledriveformac #productivityatwork", "How to use Google Drive for Mac (Tutorial & Features)!", "c1f13dc9-805f-4ba4-bcf0-f327c9577ac5", false, "p5EbFW-0lWQ", 1, [], 408, false, "https://www.youtube.com/watch?v=p5EbFW-0lWQ", 109, "/downloads/Jeff Su/2022-03-08 How to use Google Drive for Mac (Tutorial & Features)!/How to use Google Drive for Mac (Tutorial & Features)! [p5EbFW-0lWQ].mp4", false, false, 98, ~U[2022-03-08 13:00:33Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=093\n\n🗂\u00A0There are 2 main reasons why the Google Drive for Desktop app is a game-changer for Google Drive users: (1) You unlock new features like file streaming, and (2) You speed up your workflow\n\nIn this video I go through how to use Google Drive for Mac (applicable for PC as well), a step-by-step tutorial on how to download and install the app, features you can start using immediately, and some potential drawbacks you might encounter when you use Google Drive for Desktop!\n\nGoogle Drive for Desktop has gone through many names (it was previously known Backup and Sync) but the core functionality has stayed largely the same. So let’s see what this amazing tool can offer us 🛠\n\nTIMESTAMPS\n00:00 Stream Files from Drive for Desktop\n00:41 Download Google Drive for Desktop\n01:16 Settings & Preferences\n02:56 Feature #1: Stream Video\n03:41 Feature #2: File Management\n04:41 Feature #3: Offline Access\n04:55 Potential Drawbacks\n\nRESOURCES I MENTION IN THE VIDEO\nDownload Drive for Desktop (PC or Mac) - https://www.google.com/drive/download/\nClean Google Drive Cache (Mac) - https://remarkablemark.medium.com/how-to-clear-google-drive-cache-abf9efc6089e\nManage Google Storage - https://youtu.be/rs0fLVEM8Ow\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googledrivefordesktop #googledriveformac #productivityatwork", "How to use Google Drive for Mac (Tutorial & Features)!", "p5EbFW-0lWQ", 1, 408, false, "https://www.youtube.com/watch?v=p5EbFW-0lWQ", "/downloads/Jeff Su/2022-03-08 How to use Google Drive for Mac (Tutorial & Features)!/How to use Google Drive for Mac (Tutorial & Features)! [p5EbFW-0lWQ].mp4", false, ~U[2022-03-08 13:00:33Z]] 16:58:31.451 [debug] QUERY OK source="sources" db=0.4ms idle=9.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.453 [debug] QUERY OK source="media_items" db=0.8ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-01 13:00:00Z], 1] 16:58:31.457 [debug] QUERY OK source="media_items" db=2.9ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=092\n\n🧑🏻\u200D💻\u00A0Both Google Meet and Google Chat got huge upgrades over the past year so in this video I’ll share 9+ AMAZING Google Meet (and Chat) Tips you should know!\n\nGoogle Meet is one of the most popular video conferencing tools out there and and whether you use Google Meet in the workplace or for school, these tips and tricks will all be applicable.\n\nFor example you can simply type in “meet.new” in the address bar to start a new Google Meet session and share the meeting link with anyone (they don’t even need a Google account)! \n\nYou might already know you can present your Google Doc or Google Slides directly into Google Meet but did you know you can present your Phone screen as well?\n\nAnd if you’re someone who likes to have a “centralized digital workspace,” you can actually enable Google Meet and Google Chat directly within Gmail! \n\nTIMESTAMPS\n00:00 Present a Tab in Google Meet\n00:42 meet.new Shortcut\n01:24 Create Custom Background for Google Meet\n01:57 Present Directly from Docs or Slides\n02:33 Present Phone Screen in Google Meet\n03:09 Enable Captions in Google Meet\n03:44 Free Whiteboarding Feature\n04:22 End Call for Yourself Only\n04:36 Enable Google Meet and Chat in Gmail\n05:06 Schedule Meeting from Gmail Inbox\n05:27 Use standalone Google Chat App\n05:37 Custom Status in Google Chat\n05:50 Forward Message to Inbox\n06:11 Google Chat Settings\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero - https://youtu.be/9ql1CQfxWxQ\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlemeet #googlechat #productivityatwork", "9+ AMAZING Google Meet Tips You Should Know", "3cb40dd2-df7d-42dc-b858-052de15b48ab", false, "1lRsu_bHjJ0", 1, [], 402, false, "https://www.youtube.com/watch?v=1lRsu_bHjJ0", 110, "/downloads/Jeff Su/2022-03-01 9+ AMAZING Google Meet Tips You Should Know/9+ AMAZING Google Meet Tips You Should Know [1lRsu_bHjJ0].mp4", false, false, 98, ~U[2022-03-01 13:00:00Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=092\n\n🧑🏻\u200D💻\u00A0Both Google Meet and Google Chat got huge upgrades over the past year so in this video I’ll share 9+ AMAZING Google Meet (and Chat) Tips you should know!\n\nGoogle Meet is one of the most popular video conferencing tools out there and and whether you use Google Meet in the workplace or for school, these tips and tricks will all be applicable.\n\nFor example you can simply type in “meet.new” in the address bar to start a new Google Meet session and share the meeting link with anyone (they don’t even need a Google account)! \n\nYou might already know you can present your Google Doc or Google Slides directly into Google Meet but did you know you can present your Phone screen as well?\n\nAnd if you’re someone who likes to have a “centralized digital workspace,” you can actually enable Google Meet and Google Chat directly within Gmail! \n\nTIMESTAMPS\n00:00 Present a Tab in Google Meet\n00:42 meet.new Shortcut\n01:24 Create Custom Background for Google Meet\n01:57 Present Directly from Docs or Slides\n02:33 Present Phone Screen in Google Meet\n03:09 Enable Captions in Google Meet\n03:44 Free Whiteboarding Feature\n04:22 End Call for Yourself Only\n04:36 Enable Google Meet and Chat in Gmail\n05:06 Schedule Meeting from Gmail Inbox\n05:27 Use standalone Google Chat App\n05:37 Custom Status in Google Chat\n05:50 Forward Message to Inbox\n06:11 Google Chat Settings\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero - https://youtu.be/9ql1CQfxWxQ\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlemeet #googlechat #productivityatwork", "9+ AMAZING Google Meet Tips You Should Know", "1lRsu_bHjJ0", 1, 402, false, "https://www.youtube.com/watch?v=1lRsu_bHjJ0", "/downloads/Jeff Su/2022-03-01 9+ AMAZING Google Meet Tips You Should Know/9+ AMAZING Google Meet Tips You Should Know [1lRsu_bHjJ0].mp4", false, ~U[2022-03-01 13:00:00Z]] 16:58:31.458 [debug] QUERY OK source="sources" db=0.3ms idle=10.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.459 [debug] QUERY OK source="media_items" db=0.9ms idle=8.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-02-22 13:00:03Z], 1] 16:58:31.463 [debug] QUERY OK source="media_items" db=2.2ms idle=8.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n✍🏻\u00A0Sign up for Scribe: https://scribe.how/jeffsu\n\nAdopt the settings changes I go through in this Top 20 MacBook Tips for Productivity video to permanently increase your efficiency with your Mac!\n\nThen, practice the MacBook tips and tricks I go through (hint: option key is super super useful) to get things done in a fraction of the time ⏰\n\nWe’ll go through basic Mac settings changes (like showing path and status bars in finder) all the way to advanced tips like how to present your iPhone screen during your next video conference meeting\n\nTIMESTAMPS\n00:00 Open with Default App\n00:39 Show Path Bar & Status Bar\n00:55 Finder Preferences: General\n01:10 Finder Preferences: Tags & Sidebar\n01:26 Finder Preferences: Advanced \n01:45 Moving Files between Folders\n01:59 Enable Battery Percentage on Mac\n02:25 MacBook Dock Productivity Tips\n02:47 MacBook Option Key Productivity Tips\n03:54 Add Library Folder to Sidebar on Mac\n04:20 Present iPhone Screen on Mac\n04:48 Default Screen Recorder on Mac\n05:03 Scribe Sponsorship\n05:49 Change Image Size on Mac\n06:14 Create PDF from Images\n06:31 Export Images to PDF\n06:59 Export from Keynote, Pages, Numbers\n07:10 Force Quit Applications on Mac\n07:47 Check MacBook Warranty & Support\n08:07 Function + Delete on Mac\n08:22 Accented Alphabet Characters\n08:28 Quick Access Emojis\n08:33 Secret Apple Logo Shortcut\n\nRESOURCES I MENTION IN THE VIDEO\nSubscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\nMost Useful Keyboard Shortcuts - https://youtu.be/gCnSozvvMMM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#MacBook #tips #productivity", "Top 20 MacBook Tips for Productivity!", "f39d8305-e0ac-4e79-aa90-5b98082c25f6", false, "5B2kPVvyjbU", 1, [], 536, false, "https://www.youtube.com/watch?v=5B2kPVvyjbU", 111, "/downloads/Jeff Su/2022-02-22 Top 20 MacBook Tips for Productivity!/Top 20 MacBook Tips for Productivity! [5B2kPVvyjbU].mp4", false, false, 98, ~U[2022-02-22 13:00:03Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n✍🏻\u00A0Sign up for Scribe: https://scribe.how/jeffsu\n\nAdopt the settings changes I go through in this Top 20 MacBook Tips for Productivity video to permanently increase your efficiency with your Mac!\n\nThen, practice the MacBook tips and tricks I go through (hint: option key is super super useful) to get things done in a fraction of the time ⏰\n\nWe’ll go through basic Mac settings changes (like showing path and status bars in finder) all the way to advanced tips like how to present your iPhone screen during your next video conference meeting\n\nTIMESTAMPS\n00:00 Open with Default App\n00:39 Show Path Bar & Status Bar\n00:55 Finder Preferences: General\n01:10 Finder Preferences: Tags & Sidebar\n01:26 Finder Preferences: Advanced \n01:45 Moving Files between Folders\n01:59 Enable Battery Percentage on Mac\n02:25 MacBook Dock Productivity Tips\n02:47 MacBook Option Key Productivity Tips\n03:54 Add Library Folder to Sidebar on Mac\n04:20 Present iPhone Screen on Mac\n04:48 Default Screen Recorder on Mac\n05:03 Scribe Sponsorship\n05:49 Change Image Size on Mac\n06:14 Create PDF from Images\n06:31 Export Images to PDF\n06:59 Export from Keynote, Pages, Numbers\n07:10 Force Quit Applications on Mac\n07:47 Check MacBook Warranty & Support\n08:07 Function + Delete on Mac\n08:22 Accented Alphabet Characters\n08:28 Quick Access Emojis\n08:33 Secret Apple Logo Shortcut\n\nRESOURCES I MENTION IN THE VIDEO\nSubscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\nMost Useful Keyboard Shortcuts - https://youtu.be/gCnSozvvMMM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#MacBook #tips #productivity", "Top 20 MacBook Tips for Productivity!", "5B2kPVvyjbU", 1, 536, false, "https://www.youtube.com/watch?v=5B2kPVvyjbU", "/downloads/Jeff Su/2022-02-22 Top 20 MacBook Tips for Productivity!/Top 20 MacBook Tips for Productivity! [5B2kPVvyjbU].mp4", false, ~U[2022-02-22 13:00:03Z]] 16:58:31.464 [debug] QUERY OK source="sources" db=0.3ms idle=10.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.465 [debug] QUERY OK source="media_items" db=0.9ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-02-15 13:00:11Z], 1] 16:58:31.475 [debug] QUERY OK source="media_items" db=8.6ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=090\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n💻\u00A0Whether you like it or not, the Hybrid Workplace is here to stay\n\nThat means when it comes time to interview, you’ll need to be ready to answer questions that are focused around a specific set of remote work skills—in addition to\u00A0the usual interview questions\u00A0you might get for a traditional in-office job and questions specific to the role or industry\n\nSo, in this video I’m going over the Top 7 Hybrid Job Interview Questions to Prepare For this year and beyond!\n\nTIMESTAMPS\n00:00 The Future of Work is Hybrid\n00:53 Do You Have Experience Working From Home?\n01:47 How Do you Stay Organized?\n02:36 What Types of Distributed Team Tools Have You Used?\n03:26 How Do You Communicate and Coordinate with Coworkers?\n04:23 How Do You Deal with Uncertainty?\n05:05 Tell Me About a Time You were Creative\n06:14 How do you Maintain Well-Being?\n\nRESOURCES I MENTION IN THE VIDEO\nCARL Interview Method - https://youtu.be/gZ2354BH0a0\nMy Weekly Agenda template - https://youtu.be/sZB8OZoSIyU\nInbox Zero Tutorial - https://youtu.be/9ql1CQfxWxQ\nGoogle Calendar Tips for Productivity - https://youtu.be/4GqqptRI4Do\nThink Outside the Box Playlist - https://www.youtube.com/watch?v=5c9SapE_YNU&list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\nCommon Interview Questions and Answers - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#hybridwork", "7 Job Interview Questions to Prepare For!", "3301da09-b4ec-4dfa-a088-17bc920df807", false, "VbugqgTtF-Q", 1, [], 422, false, "https://www.youtube.com/watch?v=VbugqgTtF-Q", 112, "/downloads/Jeff Su/2022-02-15 7 Job Interview Questions to Prepare For!/7 Job Interview Questions to Prepare For! [VbugqgTtF-Q].mp4", false, false, 98, ~U[2022-02-15 13:00:11Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=090\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n💻\u00A0Whether you like it or not, the Hybrid Workplace is here to stay\n\nThat means when it comes time to interview, you’ll need to be ready to answer questions that are focused around a specific set of remote work skills—in addition to\u00A0the usual interview questions\u00A0you might get for a traditional in-office job and questions specific to the role or industry\n\nSo, in this video I’m going over the Top 7 Hybrid Job Interview Questions to Prepare For this year and beyond!\n\nTIMESTAMPS\n00:00 The Future of Work is Hybrid\n00:53 Do You Have Experience Working From Home?\n01:47 How Do you Stay Organized?\n02:36 What Types of Distributed Team Tools Have You Used?\n03:26 How Do You Communicate and Coordinate with Coworkers?\n04:23 How Do You Deal with Uncertainty?\n05:05 Tell Me About a Time You were Creative\n06:14 How do you Maintain Well-Being?\n\nRESOURCES I MENTION IN THE VIDEO\nCARL Interview Method - https://youtu.be/gZ2354BH0a0\nMy Weekly Agenda template - https://youtu.be/sZB8OZoSIyU\nInbox Zero Tutorial - https://youtu.be/9ql1CQfxWxQ\nGoogle Calendar Tips for Productivity - https://youtu.be/4GqqptRI4Do\nThink Outside the Box Playlist - https://www.youtube.com/watch?v=5c9SapE_YNU&list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\nCommon Interview Questions and Answers - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#hybridwork", "7 Job Interview Questions to Prepare For!", "VbugqgTtF-Q", 1, 422, false, "https://www.youtube.com/watch?v=VbugqgTtF-Q", "/downloads/Jeff Su/2022-02-15 7 Job Interview Questions to Prepare For!/7 Job Interview Questions to Prepare For! [VbugqgTtF-Q].mp4", false, ~U[2022-02-15 13:00:11Z]] 16:58:31.476 [debug] QUERY OK source="sources" db=0.4ms idle=16.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.477 [debug] QUERY OK source="media_items" db=0.9ms idle=14.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-02-08 13:00:01Z], 1] 16:58:31.481 [debug] QUERY OK source="media_items" db=2.1ms idle=14.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=089\n\n📄\u00A0If you type the “@” symbol within Google Docs, you’ll now be able to access the HIDDEN menu! This is THE BEST Productivity Feature in Google Docs and in this video we’ll break down some use cases of this secret menu!\n\nThis new Google Docs feature is called Smart Chips and it’s part of the Smart Canvas update that was announced by Google during their Google I/O event. \n\nBasically, Google is bringing their different products across their Google Workspace offering together - Google Docs, Slides, Sheets, Calendar, Gmail, Keep, Tasks, etc. - and creating something that’s greater than the sum of its parts.\n\nWith this Smart Canvas update, Google Docs got access to these Smart Chips and as you will see in this video, one of the biggest benefits of using Smart Chips within Google Docs is that the Smart Chips are dynamic; if the title of a smart chip updates, that change will be made everywhere else (as opposed to a static hyperlink)\n\nTIMESTAMPS\n00:00 Google Doc’s Secret Feature\n00:27 Google’s Smart Canvas Update\n00:37 What is Google Docs Smart Chips\n01:09 Use Smart Chips in Repository Documents\n03:00 Use Smart Chips for Note-Taking\n04:01 How Smart Chips will Save You Time\n04:32 Automatically Create Table of Contents\n\nRESOURCES I MENTION IN THE VIDEO\nStand Out in the Workplace - https://youtu.be/7-xgf536_oc\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#google #docs #productivityatwork", "The BEST Productivity Feature in Google Docs!", "c0fbcb38-c5f5-4720-806f-9d902509116c", false, "auYFCjU7pBA", 1, [], 332, false, "https://www.youtube.com/watch?v=auYFCjU7pBA", 113, "/downloads/Jeff Su/2022-02-08 The BEST Productivity Feature in Google Docs!/The BEST Productivity Feature in Google Docs! [auYFCjU7pBA].mp4", false, false, 98, ~U[2022-02-08 13:00:01Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🔩\u00A0Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=089\n\n📄\u00A0If you type the “@” symbol within Google Docs, you’ll now be able to access the HIDDEN menu! This is THE BEST Productivity Feature in Google Docs and in this video we’ll break down some use cases of this secret menu!\n\nThis new Google Docs feature is called Smart Chips and it’s part of the Smart Canvas update that was announced by Google during their Google I/O event. \n\nBasically, Google is bringing their different products across their Google Workspace offering together - Google Docs, Slides, Sheets, Calendar, Gmail, Keep, Tasks, etc. - and creating something that’s greater than the sum of its parts.\n\nWith this Smart Canvas update, Google Docs got access to these Smart Chips and as you will see in this video, one of the biggest benefits of using Smart Chips within Google Docs is that the Smart Chips are dynamic; if the title of a smart chip updates, that change will be made everywhere else (as opposed to a static hyperlink)\n\nTIMESTAMPS\n00:00 Google Doc’s Secret Feature\n00:27 Google’s Smart Canvas Update\n00:37 What is Google Docs Smart Chips\n01:09 Use Smart Chips in Repository Documents\n03:00 Use Smart Chips for Note-Taking\n04:01 How Smart Chips will Save You Time\n04:32 Automatically Create Table of Contents\n\nRESOURCES I MENTION IN THE VIDEO\nStand Out in the Workplace - https://youtu.be/7-xgf536_oc\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#google #docs #productivityatwork", "The BEST Productivity Feature in Google Docs!", "auYFCjU7pBA", 1, 332, false, "https://www.youtube.com/watch?v=auYFCjU7pBA", "/downloads/Jeff Su/2022-02-08 The BEST Productivity Feature in Google Docs!/The BEST Productivity Feature in Google Docs! [auYFCjU7pBA].mp4", false, ~U[2022-02-08 13:00:01Z]] 16:58:31.482 [debug] QUERY OK source="sources" db=0.3ms idle=16.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.483 [debug] QUERY OK source="media_items" db=0.9ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-02-01 13:00:09Z], 1] 16:58:31.487 [debug] QUERY OK source="media_items" db=2.3ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=020\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🙋🏻\u00A0My top 5 go-to questions to ask the interviewers are as follows: \n\n1️⃣\u00A0I see you’re been at [ROLE] for the past [NUMBER OF] years, has your experience been what you expected?\n\n2️⃣\u00A0If you think back to a recent hire that impressed you, what characteristics did they have?\n\n3️⃣\u00A0What teams will I be working most closely with?\n\n4️⃣\u00A0How will my success be measured?\n\n5️⃣\u00A0Do you have any hesitations about hiring me?\n\nDid you know experienced interviewers usually leave 5-10 minutes at the end of the interview for you to ask questions ON PURPOSE?\n\nIn short, questions you ask the interviewer convey your (1) Enthusiasm for the role, (2) Critical thinking skills, and (3) Level of preparation. Not to mention it helps YOU screen your future employer!\n\nIn order to impress the interviewer(s), the answers to your questions can’t be easily found online and should be specific to the interviewer themselves. Furthermore, you also want to avoid coming off as robotic or overly-rehearsed since the interviewer might think you just memorized a bunch of questions and are asking for the sake of asking questions. \n\nTIMESTAMPS\n00:00 Ask the Interviewer Thoughtful Questions\n00:52 Ask about the interviewer\n01:55 Tell me about a recent hire\n02:24 Which teams will I be working with?\n02:56 How will my success be measured?\n03:24 Do you have any hesitations about hiring me?\n04:37 Key Takeaways\n\nRESOURCES I MENTION IN THE VIDEO\nCommon interview questions and answers playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#jobsearch #interview #offer", "5 Questions You MUST Ask During a Job Interview!", "bf9748b2-3059-410a-8d74-a9dc856b66ce", false, "P0sew9TBPJ0", 1, [], 298, false, "https://www.youtube.com/watch?v=P0sew9TBPJ0", 114, "/downloads/Jeff Su/2022-02-01 5 Questions You MUST Ask During a Job Interview!/5 Questions You MUST Ask During a Job Interview! [P0sew9TBPJ0].mp4", false, false, 98, ~U[2022-02-01 13:00:09Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=020\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🙋🏻\u00A0My top 5 go-to questions to ask the interviewers are as follows: \n\n1️⃣\u00A0I see you’re been at [ROLE] for the past [NUMBER OF] years, has your experience been what you expected?\n\n2️⃣\u00A0If you think back to a recent hire that impressed you, what characteristics did they have?\n\n3️⃣\u00A0What teams will I be working most closely with?\n\n4️⃣\u00A0How will my success be measured?\n\n5️⃣\u00A0Do you have any hesitations about hiring me?\n\nDid you know experienced interviewers usually leave 5-10 minutes at the end of the interview for you to ask questions ON PURPOSE?\n\nIn short, questions you ask the interviewer convey your (1) Enthusiasm for the role, (2) Critical thinking skills, and (3) Level of preparation. Not to mention it helps YOU screen your future employer!\n\nIn order to impress the interviewer(s), the answers to your questions can’t be easily found online and should be specific to the interviewer themselves. Furthermore, you also want to avoid coming off as robotic or overly-rehearsed since the interviewer might think you just memorized a bunch of questions and are asking for the sake of asking questions. \n\nTIMESTAMPS\n00:00 Ask the Interviewer Thoughtful Questions\n00:52 Ask about the interviewer\n01:55 Tell me about a recent hire\n02:24 Which teams will I be working with?\n02:56 How will my success be measured?\n03:24 Do you have any hesitations about hiring me?\n04:37 Key Takeaways\n\nRESOURCES I MENTION IN THE VIDEO\nCommon interview questions and answers playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#jobsearch #interview #offer", "5 Questions You MUST Ask During a Job Interview!", "P0sew9TBPJ0", 1, 298, false, "https://www.youtube.com/watch?v=P0sew9TBPJ0", "/downloads/Jeff Su/2022-02-01 5 Questions You MUST Ask During a Job Interview!/5 Questions You MUST Ask During a Job Interview! [P0sew9TBPJ0].mp4", false, ~U[2022-02-01 13:00:09Z]] 16:58:31.488 [debug] QUERY OK source="sources" db=0.3ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.489 [debug] QUERY OK source="media_items" db=0.9ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-01-25 13:00:07Z], 1] 16:58:31.493 [debug] QUERY OK source="media_items" db=2.3ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=087\n\n🔎\u00A0We all know how to use Google. Or do we?\n\nIn this video I go over the Top 14 Google Search Tips for Productivity including (but not limited to) search operators and hidden features!\n\nI like to use the related: search operator to find similar websites to the one I’m researching on, and I use the site: operator to search within a site for a specific piece of information\n\nWe can actually combine the site: and intitle: operators into something like site:bodybuilding.com and intitle:diet to really narrow down our search results within a specific website!\n\nIf you want information for a specific year, you can type in intitle:[year] [search term] or just use the Date Range feature to select a date...range.\n\nSearch operators I use almost every single day include “Exact Match,” “+keyword,” the Wildcard * Search Operator, and the “OR” Search Operator.\n\nHappy Googling!\n\nTIMESTAMPS\n00:00 Google and Netflix Similarities\n00:26 related: Search Operator\n00:43 site: Search Operator\n01:14 top-level domain country code\n01:50 intitle:infographic examples\n02:32 filetype:[extension] Search Operator\n03:31 intitle:[specific year] example\n04:04 Google Search date range Feature\n04:20 Find Images with Transparent Background\n04:45 Minus Search Operator\n05:05 -site:[website.com]\n05:38 Google Search Exact Match\n05:48 Wildcard Asterisk Search Operator\n05:57 Plus Google Search Operator\n06:19 OR Google Search Operator\n\nRESOURCES I MENTION IN THE VIDEO\nFind High Definition Icons for Free - https://youtu.be/5c9SapE_YNU\nWikipedia article - https://en.wikipedia.org/wiki/Country_code_top-level_domain#:~:text=A country code top-level,top-level domains are ccTLDs.\nFiletype Extensions - https://support.google.com/webmasters/answer/35287?hl=en\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#google #search #productivity", "14 Google Tips that will Save You Hundreds of Hours!", "096259c3-465b-4de5-910b-b4846dec894d", false, "DIuo_QL4sAQ", 1, [], 411, false, "https://www.youtube.com/watch?v=DIuo_QL4sAQ", 115, "/downloads/Jeff Su/2022-01-25 14 Google Tips that will Save You Hundreds of Hours!/14 Google Tips that will Save You Hundreds of Hours! [DIuo_QL4sAQ].mp4", false, false, 98, ~U[2022-01-25 13:00:07Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=087\n\n🔎\u00A0We all know how to use Google. Or do we?\n\nIn this video I go over the Top 14 Google Search Tips for Productivity including (but not limited to) search operators and hidden features!\n\nI like to use the related: search operator to find similar websites to the one I’m researching on, and I use the site: operator to search within a site for a specific piece of information\n\nWe can actually combine the site: and intitle: operators into something like site:bodybuilding.com and intitle:diet to really narrow down our search results within a specific website!\n\nIf you want information for a specific year, you can type in intitle:[year] [search term] or just use the Date Range feature to select a date...range.\n\nSearch operators I use almost every single day include “Exact Match,” “+keyword,” the Wildcard * Search Operator, and the “OR” Search Operator.\n\nHappy Googling!\n\nTIMESTAMPS\n00:00 Google and Netflix Similarities\n00:26 related: Search Operator\n00:43 site: Search Operator\n01:14 top-level domain country code\n01:50 intitle:infographic examples\n02:32 filetype:[extension] Search Operator\n03:31 intitle:[specific year] example\n04:04 Google Search date range Feature\n04:20 Find Images with Transparent Background\n04:45 Minus Search Operator\n05:05 -site:[website.com]\n05:38 Google Search Exact Match\n05:48 Wildcard Asterisk Search Operator\n05:57 Plus Google Search Operator\n06:19 OR Google Search Operator\n\nRESOURCES I MENTION IN THE VIDEO\nFind High Definition Icons for Free - https://youtu.be/5c9SapE_YNU\nWikipedia article - https://en.wikipedia.org/wiki/Country_code_top-level_domain#:~:text=A country code top-level,top-level domains are ccTLDs.\nFiletype Extensions - https://support.google.com/webmasters/answer/35287?hl=en\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#google #search #productivity", "14 Google Tips that will Save You Hundreds of Hours!", "DIuo_QL4sAQ", 1, 411, false, "https://www.youtube.com/watch?v=DIuo_QL4sAQ", "/downloads/Jeff Su/2022-01-25 14 Google Tips that will Save You Hundreds of Hours!/14 Google Tips that will Save You Hundreds of Hours! [DIuo_QL4sAQ].mp4", false, ~U[2022-01-25 13:00:07Z]] 16:58:31.495 [debug] QUERY OK source="sources" db=1.6ms idle=10.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.497 [debug] QUERY OK source="media_items" db=0.9ms idle=9.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-01-18 13:00:09Z], 1] 16:58:31.500 [debug] QUERY OK source="media_items" db=2.2ms idle=9.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=02\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤝\u00A0I started networking to land a summer internship at the start of my junior year (3rd year). I wish I had started 2 years earlier 😅\u00A0(when I was a fresher / 1st year)\n\nNetworking is honestly an essential life skill that will stay with us throughout our entire life so here I share 5 extremely effective networking tips for students who have 0 working experience 💯\n\nToo often we think networking only takes place during career fairs or job fairs, but networking actually takes on many forms. Networking is basically relationship building so even having a good relationship with your college professors (who actually have a HUGE network by default if you think about it) is a type of networking\n\nIn my opinion the easiest networking tip by FAR is to leverage your alumni database. Everyone has received help at some point in their career and most people are looking for a chance to pay it back!\n\nTIMESTAMPS\n00:00 Why Networking is Important for Students\n00:27 Leverage Your Alumni Database\n01:47 Leverage Your College Professors\n02:54 Attend Networking Events\n04:12 Write Effective Cold Emails\n05:15 Continue Branching Out\n06:03 Prepare Your LinkedIn Profile\n\nRESOURCES I MENTION IN THE VIDEO\nMy Cold Email template - https://www.jeffsu.org/cold-email-template\nBest Questions to ask During Coffee Chats and Informational Interviews - https://www.youtube.com/watch?v=4b2iagdHw8M\nMeetup - https://www.meetup.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#networking101 #business #jobsearch", "How to Network with ZERO Working Experience!", "e06d6592-dd1b-4e75-aef9-ac1723c05cd2", false, "AA4lVbiRlGw", 1, [], 384, false, "https://www.youtube.com/watch?v=AA4lVbiRlGw", 116, "/downloads/Jeff Su/2022-01-18 How to Network with ZERO Working Experience!/How to Network with ZERO Working Experience! [AA4lVbiRlGw].mp4", false, false, 98, ~U[2022-01-18 13:00:09Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=02\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤝\u00A0I started networking to land a summer internship at the start of my junior year (3rd year). I wish I had started 2 years earlier 😅\u00A0(when I was a fresher / 1st year)\n\nNetworking is honestly an essential life skill that will stay with us throughout our entire life so here I share 5 extremely effective networking tips for students who have 0 working experience 💯\n\nToo often we think networking only takes place during career fairs or job fairs, but networking actually takes on many forms. Networking is basically relationship building so even having a good relationship with your college professors (who actually have a HUGE network by default if you think about it) is a type of networking\n\nIn my opinion the easiest networking tip by FAR is to leverage your alumni database. Everyone has received help at some point in their career and most people are looking for a chance to pay it back!\n\nTIMESTAMPS\n00:00 Why Networking is Important for Students\n00:27 Leverage Your Alumni Database\n01:47 Leverage Your College Professors\n02:54 Attend Networking Events\n04:12 Write Effective Cold Emails\n05:15 Continue Branching Out\n06:03 Prepare Your LinkedIn Profile\n\nRESOURCES I MENTION IN THE VIDEO\nMy Cold Email template - https://www.jeffsu.org/cold-email-template\nBest Questions to ask During Coffee Chats and Informational Interviews - https://www.youtube.com/watch?v=4b2iagdHw8M\nMeetup - https://www.meetup.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#networking101 #business #jobsearch", "How to Network with ZERO Working Experience!", "AA4lVbiRlGw", 1, 384, false, "https://www.youtube.com/watch?v=AA4lVbiRlGw", "/downloads/Jeff Su/2022-01-18 How to Network with ZERO Working Experience!/How to Network with ZERO Working Experience! [AA4lVbiRlGw].mp4", false, ~U[2022-01-18 13:00:09Z]] 16:58:31.501 [debug] QUERY OK source="sources" db=0.3ms idle=11.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.503 [debug] QUERY OK source="media_items" db=0.8ms idle=9.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-01-11 13:00:10Z], 1] 16:58:31.506 [debug] QUERY OK source="media_items" db=2.1ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🥱\u00A0Attention spans during presentations MAX OUT at 10 minutes, so how do you stop the audience from tuning out 20 seconds into yours?\n\nIn this video I’ll show you 3 FREE Tools to Create ENGAGING Presentations that will hook your audience in right at the start, keep them engaged throughout, and leave them wanting more at the end. \n\nAt the beginning of my presentations, I like to poll the audience using Mentimeter. I try my best to ask some funny “punny” questions to lighten the mood and get in some quick laughs right at the beginning\n\nDuring the presentation, I usually leave a Sli.do QR code on my slides so the audience can leave their questions within the Q&A queue. This way, they won’t interrupt me during the presentation nor will they forget the questions they wanted to ask\n\nAt the end, I like to use Kahoot to quiz the audience to see whether or not they’ve been paying attention. Kahoot has been around for a while now and has evolved quite a bit over the past few years but I still use it for its game / quiz / competition features 🎮\n\nTIMESTAMPS\n00:00 Why Your Presentations are BORING\n00:38 How to Create Engaging Presentations\n00:59 Tool #1 - Mentimeter\n03:04 Tool #2 - Sli.do\n05:10 Tool #3 - Kahoot\n\nRESOURCES I MENTION IN THE VIDEO\nMentimeter - https://www.mentimeter.com/\nSli.do - https://www.sli.do/\nKahoot - https://kahoot.com/\n7 Data Storytelling Tips to Improve Your Presentations - https://youtu.be/jizZKNnx9wA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentation #attention #productivityatwork", "3 FREE Tools to Create ENGAGING Presentations!", "f3747466-d0dc-493c-8428-0faf9ff11a84", false, "Fq1Yb4kepLo", 1, [], 424, false, "https://www.youtube.com/watch?v=Fq1Yb4kepLo", 117, "/downloads/Jeff Su/2022-01-11 3 FREE Tools to Create ENGAGING Presentations!/3 FREE Tools to Create ENGAGING Presentations! [Fq1Yb4kepLo].mp4", false, false, 98, ~U[2022-01-11 13:00:10Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🥱\u00A0Attention spans during presentations MAX OUT at 10 minutes, so how do you stop the audience from tuning out 20 seconds into yours?\n\nIn this video I’ll show you 3 FREE Tools to Create ENGAGING Presentations that will hook your audience in right at the start, keep them engaged throughout, and leave them wanting more at the end. \n\nAt the beginning of my presentations, I like to poll the audience using Mentimeter. I try my best to ask some funny “punny” questions to lighten the mood and get in some quick laughs right at the beginning\n\nDuring the presentation, I usually leave a Sli.do QR code on my slides so the audience can leave their questions within the Q&A queue. This way, they won’t interrupt me during the presentation nor will they forget the questions they wanted to ask\n\nAt the end, I like to use Kahoot to quiz the audience to see whether or not they’ve been paying attention. Kahoot has been around for a while now and has evolved quite a bit over the past few years but I still use it for its game / quiz / competition features 🎮\n\nTIMESTAMPS\n00:00 Why Your Presentations are BORING\n00:38 How to Create Engaging Presentations\n00:59 Tool #1 - Mentimeter\n03:04 Tool #2 - Sli.do\n05:10 Tool #3 - Kahoot\n\nRESOURCES I MENTION IN THE VIDEO\nMentimeter - https://www.mentimeter.com/\nSli.do - https://www.sli.do/\nKahoot - https://kahoot.com/\n7 Data Storytelling Tips to Improve Your Presentations - https://youtu.be/jizZKNnx9wA\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-pings/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentation #attention #productivityatwork", "3 FREE Tools to Create ENGAGING Presentations!", "Fq1Yb4kepLo", 1, 424, false, "https://www.youtube.com/watch?v=Fq1Yb4kepLo", "/downloads/Jeff Su/2022-01-11 3 FREE Tools to Create ENGAGING Presentations!/3 FREE Tools to Create ENGAGING Presentations! [Fq1Yb4kepLo].mp4", false, ~U[2022-01-11 13:00:10Z]] 16:58:31.507 [debug] QUERY OK source="sources" db=0.3ms idle=9.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.508 [debug] QUERY OK source="media_items" db=1.4ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-01-04 13:00:03Z], 1] 16:58:31.512 [debug] QUERY OK source="media_items" db=2.1ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=08\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤕\u00A0”Tell me about your biggest weakness” isn’t actually designed to tease out a weakness of yours. Your answer to this tricky interview question is supposed to (1) Highlight how self-aware you are, (2) Show you are able to share a workplace-relevant weakness, and (3) Prove that you are taking concrete steps to improve yourself!\n\nBecause of those reasons, the best way to answer the “what is your greatest weakness” interview question is to highlight a skill expected of someone more senior than you, since you’re not “supposed” to have that skill anyways!\n\nIf you’re interviewing for a more junior role and you get asked “What is your biggest weakness,” a safe answer might be something like “strategic thinking” since that’s a skill generally expected of a people manager (i.e. someone more senior)\n\nI also include a sample answer I used to get into management consulting and product marketing in this video so you can reference it the next time you are preparing for interviews\n\nGood luck! 😁\n\nTIMESTAMPS\n00:00 What is Your Biggest Weakness?\n00:30 Avoid Dealbreaker Weaknesses\n01:20 Mention a Skill found in someone senior\n02:35 Give a Concrete Example \n03:05 Use CARL instead of STAR Method\n03:23 Sample Answer for Greatest Weakness Question\n04:41 Why This Method Works\n\nRESOURCES I MENTION IN THE VIDEO\nHow to Ace Behavioral Interviews - https://youtu.be/gZ2354BH0a0\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#biggestweakness #greatestweakness #interviews", "What is Your Biggest Weakness? (Ace this Interview Question!)", "c3c51034-e1d1-4cc7-8138-615b2e505622", false, "6ehslpTtlEo", 1, [], 304, false, "https://www.youtube.com/watch?v=6ehslpTtlEo", 118, "/downloads/Jeff Su/2022-01-04 What is Your Biggest Weakness? (Ace this Interview Question!)/What is Your Biggest Weakness? (Ace this Interview Question!) [6ehslpTtlEo].mp4", false, false, 98, ~U[2022-01-04 13:00:03Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=08\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤕\u00A0”Tell me about your biggest weakness” isn’t actually designed to tease out a weakness of yours. Your answer to this tricky interview question is supposed to (1) Highlight how self-aware you are, (2) Show you are able to share a workplace-relevant weakness, and (3) Prove that you are taking concrete steps to improve yourself!\n\nBecause of those reasons, the best way to answer the “what is your greatest weakness” interview question is to highlight a skill expected of someone more senior than you, since you’re not “supposed” to have that skill anyways!\n\nIf you’re interviewing for a more junior role and you get asked “What is your biggest weakness,” a safe answer might be something like “strategic thinking” since that’s a skill generally expected of a people manager (i.e. someone more senior)\n\nI also include a sample answer I used to get into management consulting and product marketing in this video so you can reference it the next time you are preparing for interviews\n\nGood luck! 😁\n\nTIMESTAMPS\n00:00 What is Your Biggest Weakness?\n00:30 Avoid Dealbreaker Weaknesses\n01:20 Mention a Skill found in someone senior\n02:35 Give a Concrete Example \n03:05 Use CARL instead of STAR Method\n03:23 Sample Answer for Greatest Weakness Question\n04:41 Why This Method Works\n\nRESOURCES I MENTION IN THE VIDEO\nHow to Ace Behavioral Interviews - https://youtu.be/gZ2354BH0a0\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#biggestweakness #greatestweakness #interviews", "What is Your Biggest Weakness? (Ace this Interview Question!)", "6ehslpTtlEo", 1, 304, false, "https://www.youtube.com/watch?v=6ehslpTtlEo", "/downloads/Jeff Su/2022-01-04 What is Your Biggest Weakness? (Ace this Interview Question!)/What is Your Biggest Weakness? (Ace this Interview Question!) [6ehslpTtlEo].mp4", false, ~U[2022-01-04 13:00:03Z]] 16:58:31.513 [debug] QUERY OK source="sources" db=0.3ms idle=9.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.514 [debug] QUERY OK source="media_items" db=1.0ms idle=7.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-12-28 13:00:33Z], 1] 16:58:31.517 [debug] QUERY OK source="media_items" db=1.8ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🤔\u00A0What’s better than sharing too many personal details with strangers on the internet?\n\nOversharing AND saving our oceans at the same time 😁\n\n🌊\u00A0Save our oceans! Learn more below 👇🏻\nOcean Conservancy: https://oceanconservancy.org/\nThe Ocean Cleanup: https://theoceancleanup.com\nMrBeast’s #teamseas video: https://www.youtube.com/watch?v=cV2gBU6hKfY=\nMark Rober’s #teamseas video: https://www.youtube.com/watch?v=pXDx6DjNLDU\n\nTIMESTAMPS\n00:00 Answering Your Assumptions\n00:18 Donating to #teamseas\n00:51 Age & Appearance\n01:28 Childhood\n03:16 Personality\n06:23 Relationships & Sexual Orientation\n10:03 Miscellaneous\n11:26 What is #teamseas?\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#teamseas", "Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas)", "feb557c7-b94b-458f-9714-a63d37eb26cd", false, "kPbaFI-_dN4", 1, [], 737, false, "https://www.youtube.com/watch?v=kPbaFI-_dN4", 119, "/downloads/Jeff Su/2021-12-28 Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas)/Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas) [kPbaFI-_dN4].mp4", false, false, 98, ~U[2021-12-28 13:00:33Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🤔\u00A0What’s better than sharing too many personal details with strangers on the internet?\n\nOversharing AND saving our oceans at the same time 😁\n\n🌊\u00A0Save our oceans! Learn more below 👇🏻\nOcean Conservancy: https://oceanconservancy.org/\nThe Ocean Cleanup: https://theoceancleanup.com\nMrBeast’s #teamseas video: https://www.youtube.com/watch?v=cV2gBU6hKfY=\nMark Rober’s #teamseas video: https://www.youtube.com/watch?v=pXDx6DjNLDU\n\nTIMESTAMPS\n00:00 Answering Your Assumptions\n00:18 Donating to #teamseas\n00:51 Age & Appearance\n01:28 Childhood\n03:16 Personality\n06:23 Relationships & Sexual Orientation\n10:03 Miscellaneous\n11:26 What is #teamseas?\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#teamseas", "Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas)", "kPbaFI-_dN4", 1, 737, false, "https://www.youtube.com/watch?v=kPbaFI-_dN4", "/downloads/Jeff Su/2021-12-28 Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas)/Humor, Arrogance, and Relationships - Answering Your Assumptions (#teamseas) [kPbaFI-_dN4].mp4", false, ~U[2021-12-28 13:00:33Z]] 16:58:31.518 [debug] QUERY OK source="sources" db=0.3ms idle=9.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.520 [debug] QUERY OK source="media_items" db=1.0ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-12-21 13:30:00Z], 1] 16:58:31.523 [debug] QUERY OK source="media_items" db=2.2ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🧑🏻\u200D🎨\u00A0Sign up for Canva here: https://partner.canva.com/jeffsu\n\nDownload designs from this video: https://partner.canva.com/P0BYgX\n\nIn this video, I share my Top 15 Canva Tips for Productivity! Whether you're a beginner or intermediate Canva user, you should be able to pick up a new trick or two!\n\nWe all love Canva because it's a fairly simple and intuitive tool, but that doesn't mean we shouldn't utilize some Canva tips, tricks, and hacks to increase our efficiency and productivity with this awesome platform!\n\nIn this easy Canva tutorial, I show you step-by-step how to achieve some seemingly crazy effects (for example the Thanos disintegration or dust particle effect) with simple features and functions that come with the free version of Canva.\n\nOf course, since Canva is changing so much, I'll also share the most up to date (i.e. new) features that they've pushed out recently!\n\nTIMESTAMPS\n00:00 Show Photo Color in Canva\n00:45 Top 15 Canva Tips for Productivity\n01:02 Blur Design Background\n01:26 Add White Outline to Image\n02:06 Thanos Dust Particle Effect\n02:42 Duplicate Element in Canva\n03:06 Group Elements in Canva\n03:47 Select Layers in Canva\n04:06 Useful Keyboard Shortcuts in Canva\n04:24 Smart Mockups in Canva\n05:02 Import PDFs into Canva\n05:35 Create Business Cards in Canva\n06:50 Canva’s Font Pairing Guide\n06:59 Canva’s Color Wheel Tool\n07:21 Remove Background with Canva\n07:33 Download with Transparent Background\n07:50 Canva’s Eyedropper Color Tool\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Outstanding Resume - https://youtu.be/Tt08KmFfIYQ\nCanva’s Font Pairing Guide: https://www.canva.com/learn/the-ultimate-guide-to-font-pairing/\nCanva Color Wheel Tool: https://www.canva.com/colors/color-wheel/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#canvalove #design #productivity", "Top 15 Canva Tips for Productivity!", "0f3dc5cf-115b-4340-ab92-6c54095c5d19", false, "2XqSMu9KVY0", 1, [], 505, false, "https://www.youtube.com/watch?v=2XqSMu9KVY0", 120, "/downloads/Jeff Su/2021-12-21 Top 15 Canva Tips for Productivity!/Top 15 Canva Tips for Productivity! [2XqSMu9KVY0].mp4", false, false, 98, ~U[2021-12-21 13:30:00Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "🧑🏻\u200D🎨\u00A0Sign up for Canva here: https://partner.canva.com/jeffsu\n\nDownload designs from this video: https://partner.canva.com/P0BYgX\n\nIn this video, I share my Top 15 Canva Tips for Productivity! Whether you're a beginner or intermediate Canva user, you should be able to pick up a new trick or two!\n\nWe all love Canva because it's a fairly simple and intuitive tool, but that doesn't mean we shouldn't utilize some Canva tips, tricks, and hacks to increase our efficiency and productivity with this awesome platform!\n\nIn this easy Canva tutorial, I show you step-by-step how to achieve some seemingly crazy effects (for example the Thanos disintegration or dust particle effect) with simple features and functions that come with the free version of Canva.\n\nOf course, since Canva is changing so much, I'll also share the most up to date (i.e. new) features that they've pushed out recently!\n\nTIMESTAMPS\n00:00 Show Photo Color in Canva\n00:45 Top 15 Canva Tips for Productivity\n01:02 Blur Design Background\n01:26 Add White Outline to Image\n02:06 Thanos Dust Particle Effect\n02:42 Duplicate Element in Canva\n03:06 Group Elements in Canva\n03:47 Select Layers in Canva\n04:06 Useful Keyboard Shortcuts in Canva\n04:24 Smart Mockups in Canva\n05:02 Import PDFs into Canva\n05:35 Create Business Cards in Canva\n06:50 Canva’s Font Pairing Guide\n06:59 Canva’s Color Wheel Tool\n07:21 Remove Background with Canva\n07:33 Download with Transparent Background\n07:50 Canva’s Eyedropper Color Tool\n\nRESOURCES I MENTION IN THE VIDEO\nWrite an Outstanding Resume - https://youtu.be/Tt08KmFfIYQ\nCanva’s Font Pairing Guide: https://www.canva.com/learn/the-ultimate-guide-to-font-pairing/\nCanva Color Wheel Tool: https://www.canva.com/colors/color-wheel/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#canvalove #design #productivity", "Top 15 Canva Tips for Productivity!", "2XqSMu9KVY0", 1, 505, false, "https://www.youtube.com/watch?v=2XqSMu9KVY0", "/downloads/Jeff Su/2021-12-21 Top 15 Canva Tips for Productivity!/Top 15 Canva Tips for Productivity! [2XqSMu9KVY0].mp4", false, ~U[2021-12-21 13:30:00Z]] 16:58:31.524 [debug] QUERY OK source="sources" db=0.3ms idle=9.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:31.525 [debug] QUERY OK source="media_items" db=0.9ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-12-14 14:00:08Z], 1] 16:58:33.036 [debug] QUERY OK source="media_items" db=1509.2ms idle=7.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=81\n\n🌟\u00A0Google Developer's Website: https://developers.google.com/apps-script/samples/automations/mail-merge\n\nIf you needed to send the same email to multiple people at once, how would you do it? In this video, I show you the best (and easiest) way to send personalized emails in gmail FOR FREE!\n\nWhen I was in the sales team, I used to need to send mass communication emails to all my clients (I had over 200 of them to manage a quarter). Generic mass emails missed a personal touch so I decided to send customized and personalized emails by using a free Mail Merge script in Google Sheets. \n\nThis mail merge script created by Martin Hawksey connects a Google Sheet spreadsheet to your Gmail account and allows you to send customized emails in bulk! \n\nSo feel free to follow along for this quick and dirty mail merge tutorial involving Gmail and Google Sheets 😁\n\nTIMESTAMPS\n00:00 Mail Merge with Gmail and Google Sheets\n00:20 Why Send Personalized Bulk Emails?\n00:56 Copy Google's Mail Merge Template\n01:37 Example 1 - Account Management\n04:14 Example 2 - School Event\n05:05 Example 3 - For Professionals at Work\n05:50 Mail Merge Pro Tips\n\nRESOURCES I MENTION IN THE VIDEO\nDevelopers support page: https://developers.google.com/workspace/solutions/mail-merge\nQuota page: https://developers.google.com/apps-script/guides/services/quotas#current_quotas\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=81\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #sheets #mailmerge #thinkoutsidethebox", "Send Personalized BULK Emails in Gmail (for FREE)!", "8353e786-e056-4bb3-892f-0ce013ef8213", false, "LJV-Uuj3RwU", 1, [], 410, false, "https://www.youtube.com/watch?v=LJV-Uuj3RwU", 121, "/downloads/Jeff Su/2021-12-14 Send Personalized BULK Emails in Gmail (for FREE)!/Send Personalized BULK Emails in Gmail (for FREE)! [LJV-Uuj3RwU].mp4", false, false, 98, ~U[2021-12-14 14:00:08Z], ~U[2026-04-23 14:58:31Z], ~U[2026-04-23 14:58:31Z], "Grab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=81\n\n🌟\u00A0Google Developer's Website: https://developers.google.com/apps-script/samples/automations/mail-merge\n\nIf you needed to send the same email to multiple people at once, how would you do it? In this video, I show you the best (and easiest) way to send personalized emails in gmail FOR FREE!\n\nWhen I was in the sales team, I used to need to send mass communication emails to all my clients (I had over 200 of them to manage a quarter). Generic mass emails missed a personal touch so I decided to send customized and personalized emails by using a free Mail Merge script in Google Sheets. \n\nThis mail merge script created by Martin Hawksey connects a Google Sheet spreadsheet to your Gmail account and allows you to send customized emails in bulk! \n\nSo feel free to follow along for this quick and dirty mail merge tutorial involving Gmail and Google Sheets 😁\n\nTIMESTAMPS\n00:00 Mail Merge with Gmail and Google Sheets\n00:20 Why Send Personalized Bulk Emails?\n00:56 Copy Google's Mail Merge Template\n01:37 Example 1 - Account Management\n04:14 Example 2 - School Event\n05:05 Example 3 - For Professionals at Work\n05:50 Mail Merge Pro Tips\n\nRESOURCES I MENTION IN THE VIDEO\nDevelopers support page: https://developers.google.com/workspace/solutions/mail-merge\nQuota page: https://developers.google.com/apps-script/guides/services/quotas#current_quotas\nGrab my free Workspace Toolkit: https://academy.jeffsu.org/workspace-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=81\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #sheets #mailmerge #thinkoutsidethebox", "Send Personalized BULK Emails in Gmail (for FREE)!", "LJV-Uuj3RwU", 1, 410, false, "https://www.youtube.com/watch?v=LJV-Uuj3RwU", "/downloads/Jeff Su/2021-12-14 Send Personalized BULK Emails in Gmail (for FREE)!/Send Personalized BULK Emails in Gmail (for FREE)! [LJV-Uuj3RwU].mp4", false, ~U[2021-12-14 14:00:08Z]] 16:58:33.037 [debug] QUERY OK source="sources" db=0.1ms idle=1512.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.038 [debug] QUERY OK source="media_items" db=1.0ms idle=1511.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-12-07 13:30:09Z], 1] 16:58:33.125 [debug] QUERY OK source="media_items" db=84.8ms idle=1226.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Download my Project Recap template ➡️\u00A0https://www.jeffsu.org/google-docs/\n\n✍🏻\u00A0When was the last time you came across a Project Recap at work you actually wanted to read? \n\nWouldn't you like to write one that your colleagues actually want to read? 🤓\n\nFirst and foremost, you really do help others when you share your (honest) learnings and takeaways after a project or campaign is completed. You also keep yourself (and your team) accountable by stating whether you hit the targets you initially set out to achieve. Finally, you increase your presence in a very authentic way by sharing the recap with relevant individuals in the workplace\n\nAs you can see in my campaign summary email, formatting plays a huge role in readability. You can literally have the best recap ever but it's irrelevant if no-one reads past the first line (or even clicks into the email for that matter!)\n\nWithin the recap, you want to include \"Context,\" \"Business Impact,\" \"Takeaways & Learnings,\" and the \"Thank You\" sections to keep everything nice and organized\n\nHopefully this video helps professionals become...well, more professional and productive in the workplace 😁\n\nTIMESTAMPS\n00:00 How NOT to Write a Project Recap\n00:34 Benefits of Writing Project Recaps\n01:38 Download my Project Recap Template\n01:50 Project Recap Formatting Tips\n02:46 Project Recap Content Tips\n03:50 Context Section\n04:06 Business Impact Section\n05:01 Takeaways and Learnings Section\n06:29 Thank You Section\n\nRESOURCES I MENTION IN THE VIDEO\nIntro to Event Management Video - https://youtu.be/b3B24wl3gCQ\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#projectrecap #visibility #email", "Write a Project Recap People Actually Want to Read", "bd19f69f-7847-44db-970d-2203ba94800d", false, "SfXntQxI98w", 1, [], 456, false, "https://www.youtube.com/watch?v=SfXntQxI98w", 122, "/downloads/Jeff Su/2021-12-07 Write a Project Recap People Actually Want to Read/Write a Project Recap People Actually Want to Read [SfXntQxI98w].mp4", false, false, 98, ~U[2021-12-07 13:30:09Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "Download my Project Recap template ➡️\u00A0https://www.jeffsu.org/google-docs/\n\n✍🏻\u00A0When was the last time you came across a Project Recap at work you actually wanted to read? \n\nWouldn't you like to write one that your colleagues actually want to read? 🤓\n\nFirst and foremost, you really do help others when you share your (honest) learnings and takeaways after a project or campaign is completed. You also keep yourself (and your team) accountable by stating whether you hit the targets you initially set out to achieve. Finally, you increase your presence in a very authentic way by sharing the recap with relevant individuals in the workplace\n\nAs you can see in my campaign summary email, formatting plays a huge role in readability. You can literally have the best recap ever but it's irrelevant if no-one reads past the first line (or even clicks into the email for that matter!)\n\nWithin the recap, you want to include \"Context,\" \"Business Impact,\" \"Takeaways & Learnings,\" and the \"Thank You\" sections to keep everything nice and organized\n\nHopefully this video helps professionals become...well, more professional and productive in the workplace 😁\n\nTIMESTAMPS\n00:00 How NOT to Write a Project Recap\n00:34 Benefits of Writing Project Recaps\n01:38 Download my Project Recap Template\n01:50 Project Recap Formatting Tips\n02:46 Project Recap Content Tips\n03:50 Context Section\n04:06 Business Impact Section\n05:01 Takeaways and Learnings Section\n06:29 Thank You Section\n\nRESOURCES I MENTION IN THE VIDEO\nIntro to Event Management Video - https://youtu.be/b3B24wl3gCQ\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#projectrecap #visibility #email", "Write a Project Recap People Actually Want to Read", "SfXntQxI98w", 1, 456, false, "https://www.youtube.com/watch?v=SfXntQxI98w", "/downloads/Jeff Su/2021-12-07 Write a Project Recap People Actually Want to Read/Write a Project Recap People Actually Want to Read [SfXntQxI98w].mp4", false, ~U[2021-12-07 13:30:09Z]] 16:58:33.125 [debug] QUERY OK source="sources" db=0.2ms idle=89.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.127 [debug] QUERY OK source="media_items" db=0.9ms idle=89.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-11-30 13:05:17Z], 1] 16:58:33.130 [debug] QUERY OK source="media_items" db=2.2ms idle=90.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["✍🏻\u00A0Sign up for Scribe (for FREE): https://scribe.how/3cDXRpD\n\n😕\u00A0Like it or not, visibility in the workplace is an important consideration for most if not all professionals. In this video I share exactly what I did to increase my visibility in the workplace during the first year of my 2nd full-time job! \n\nI was promoted relatively quickly during my tenure as an Account Manager because of three reasons: (1) I had a kick-ass manager, (2) I had transferable skills from my management consulting days, and (3) Most importantly, I stood out from others by helping mentor new hires at scale\n\nBecause I was (hopefully) providing real value to the business (helping senior leadership ramp up the new joiners) and to the new hires themselves (sharing my own experiences and practical tips on how to succeed), this \"side project\" was talked about among my colleagues and I was able to organically increase my visibility in the workplace\n\nThe best part? It's not even that difficult to do with free tools like Scribe 😁\n\nTIMESTAMPS\n00:00 Boost Your Visibility in the Workplace\n00:41 How I Mentored New Hires\n01:20 Benefits of Mentoring Others at Work\n02:43 How to Mentor New Joiners At Scale\n03:11 Screen Recording Tools for PC\n03:25 Downsides of Recording Screen\n03:52 How to use Scribe\n06:11 Pro Tips when Using Scribe\n\nRESOURCES I MENTION IN THE VIDEO\nThink Outside the Box Playlist - https://www.youtube.com/watch?v=5c9SapE_YNU&list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\n\n@KevinStratvert Kevin Stratvert's 5 Best FREE Screen Recorders - https://youtu.be/nCNri04lHaI\nScribe's Privacy Policy - https://scribehow.com/privacy/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#career #workplace #thinkoutsidethebox", "Stand Out in the Workplace by Doing THIS!", "0dcd4a4d-1b57-4ee4-8272-13c1930a6e37", false, "7-xgf536_oc", 1, [], 433, false, "https://www.youtube.com/watch?v=7-xgf536_oc", 123, "/downloads/Jeff Su/2021-11-30 Stand Out in the Workplace by Doing THIS!/Stand Out in the Workplace by Doing THIS! [7-xgf536_oc].mp4", false, false, 98, ~U[2021-11-30 13:05:17Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "✍🏻\u00A0Sign up for Scribe (for FREE): https://scribe.how/3cDXRpD\n\n😕\u00A0Like it or not, visibility in the workplace is an important consideration for most if not all professionals. In this video I share exactly what I did to increase my visibility in the workplace during the first year of my 2nd full-time job! \n\nI was promoted relatively quickly during my tenure as an Account Manager because of three reasons: (1) I had a kick-ass manager, (2) I had transferable skills from my management consulting days, and (3) Most importantly, I stood out from others by helping mentor new hires at scale\n\nBecause I was (hopefully) providing real value to the business (helping senior leadership ramp up the new joiners) and to the new hires themselves (sharing my own experiences and practical tips on how to succeed), this \"side project\" was talked about among my colleagues and I was able to organically increase my visibility in the workplace\n\nThe best part? It's not even that difficult to do with free tools like Scribe 😁\n\nTIMESTAMPS\n00:00 Boost Your Visibility in the Workplace\n00:41 How I Mentored New Hires\n01:20 Benefits of Mentoring Others at Work\n02:43 How to Mentor New Joiners At Scale\n03:11 Screen Recording Tools for PC\n03:25 Downsides of Recording Screen\n03:52 How to use Scribe\n06:11 Pro Tips when Using Scribe\n\nRESOURCES I MENTION IN THE VIDEO\nThink Outside the Box Playlist - https://www.youtube.com/watch?v=5c9SapE_YNU&list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\n\n@KevinStratvert Kevin Stratvert's 5 Best FREE Screen Recorders - https://youtu.be/nCNri04lHaI\nScribe's Privacy Policy - https://scribehow.com/privacy/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#career #workplace #thinkoutsidethebox", "Stand Out in the Workplace by Doing THIS!", "7-xgf536_oc", 1, 433, false, "https://www.youtube.com/watch?v=7-xgf536_oc", "/downloads/Jeff Su/2021-11-30 Stand Out in the Workplace by Doing THIS!/Stand Out in the Workplace by Doing THIS! [7-xgf536_oc].mp4", false, ~U[2021-11-30 13:05:17Z]] 16:58:33.131 [debug] QUERY OK source="sources" db=0.3ms idle=92.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.133 [debug] QUERY OK source="media_items" db=0.9ms idle=8.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-11-23 13:00:31Z], 1] 16:58:33.136 [debug] QUERY OK source="media_items" db=2.1ms idle=8.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=010\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤯\u00A0No matter how much you prepare for an interview, you are bound to receive a question or two you haven't prepared for. In situations like these, it's best to rely on a tried-and-true 3 step method: Stall for time, Break the question down into bite-sized pieces, and address each segment\n\nIn this video I share the hardest interview question I've ever received and how I answered that question. Interestingly, although the interviewer told me after the fact that my answer was NOT what she was looking for, I still passed that round\n\nThe reason I passed the interview is very simple: the interviewer knows the question is open to interpretation and therefore has no \"correct\" answer. More importantly, it's about HOW the interviewee approaches the question that matters\n\nFor harder interview questions like this, it's best to tackle it like a traditional consulting case interview question: First buy yourself some time, then break the question down into segments, and finally address this part\n\nTIMESTAMPS\n00:00 Hardest Interview Question Ever\n00:55 Stall for Time\n02:44 Break Question Down into Segments\n04:15 Address Each Segment\n05:52 The \"Correct\" Answer\n\nRESOURCES I MENTION IN THE VIDEO\nCommon Interview Questions and Answers - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interview #jobsearch", "How to Answer an Interview Question you DIDN'T Prepare For", "1218d294-5637-48a5-8fed-c2641438eea4", false, "ZqNorUIgIe8", 1, [], 425, false, "https://www.youtube.com/watch?v=ZqNorUIgIe8", 124, "/downloads/Jeff Su/2021-11-23 How to Answer an Interview Question you DIDN'T Prepare For/How to Answer an Interview Question you DIDN'T Prepare For [ZqNorUIgIe8].mp4", false, false, 98, ~U[2021-11-23 13:00:31Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=010\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🤯\u00A0No matter how much you prepare for an interview, you are bound to receive a question or two you haven't prepared for. In situations like these, it's best to rely on a tried-and-true 3 step method: Stall for time, Break the question down into bite-sized pieces, and address each segment\n\nIn this video I share the hardest interview question I've ever received and how I answered that question. Interestingly, although the interviewer told me after the fact that my answer was NOT what she was looking for, I still passed that round\n\nThe reason I passed the interview is very simple: the interviewer knows the question is open to interpretation and therefore has no \"correct\" answer. More importantly, it's about HOW the interviewee approaches the question that matters\n\nFor harder interview questions like this, it's best to tackle it like a traditional consulting case interview question: First buy yourself some time, then break the question down into segments, and finally address this part\n\nTIMESTAMPS\n00:00 Hardest Interview Question Ever\n00:55 Stall for Time\n02:44 Break Question Down into Segments\n04:15 Address Each Segment\n05:52 The \"Correct\" Answer\n\nRESOURCES I MENTION IN THE VIDEO\nCommon Interview Questions and Answers - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interview #jobsearch", "How to Answer an Interview Question you DIDN'T Prepare For", "ZqNorUIgIe8", 1, 425, false, "https://www.youtube.com/watch?v=ZqNorUIgIe8", "/downloads/Jeff Su/2021-11-23 How to Answer an Interview Question you DIDN'T Prepare For/How to Answer an Interview Question you DIDN'T Prepare For [ZqNorUIgIe8].mp4", false, ~U[2021-11-23 13:00:31Z]] 16:58:33.137 [debug] QUERY OK source="sources" db=0.3ms queue=0.3ms 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" = ?) [1] 16:58:33.138 [debug] QUERY OK source="media_items" db=0.9ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-11-16 13:00:17Z], 1] 16:58:33.142 [debug] QUERY OK source="media_items" db=2.3ms idle=7.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=77\n\nDownload the template for free here 👉🏻 https://www.jeffsu.org/content-clipper-template/\n\n📝 The best way to capture and organize web content in Notion is to use a free and popular third-party browser extension called Save to Notion. Save to Notion is basically the Notion Web Clipper extension (official extension from Notion) on steroids! \n\nUsing the Notion Add-On \"Save to Notion,\" you're able to clip (i.e. capture) any type of content on the web. Whenever I come across interesting content, I like to quickly capture and organize that content into a Notion database so I can quickly find it later.\n\nIn general, I save 2 types of content using this workflow: Educational \"how-to\" type of content, and creative content that inspire me to make changes to my life. For example, if I'm trying to learn how to fast, I would clip relevant video and text-based article content and group them under a \"Health and Fitness\" category\n\nWhen I watch online videos, I often feel inspired by something in that video: be it a product I might consider purchasing or an editing technique I'd like to try out in my next video. The Save to Notion extension enables me to seamlessly save any type of web content into my Notion database and it's been an absolute life-changer! \n\nTIMESTAMPS\n00:00 Capture and Organize Web Content in Notion\n00:19 Content Clipper Template in Notion\n02:12 Save to Notion Extension\n04:38 Pro Tip for Save to Notion Extension\n05:55 Example Web Clipper Extension Workflows\n\nRESOURCES I MENTION IN THE VIDEO\n@MatthewEncina Matthew Encina's packing video - https://youtu.be/iwM_3vU9h4U\nMy Notion playlist - https://www.youtube.com/watch?v=sZB8OZoSIyU&list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS&index=3\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#saveandorganize #notion #notionhq", "The BEST Way to Capture and Organize Web Content in Notion!", "c09c10fc-b2bb-463d-b625-d461554dcce7", false, "diK9dZulkAs", 1, [], 486, false, "https://www.youtube.com/watch?v=diK9dZulkAs", 125, "/downloads/Jeff Su/2021-11-16 The BEST Way to Capture and Organize Web Content in Notion!/The BEST Way to Capture and Organize Web Content in Notion! [diK9dZulkAs].mp4", false, false, 98, ~U[2021-11-16 13:00:17Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=77\n\nDownload the template for free here 👉🏻 https://www.jeffsu.org/content-clipper-template/\n\n📝 The best way to capture and organize web content in Notion is to use a free and popular third-party browser extension called Save to Notion. Save to Notion is basically the Notion Web Clipper extension (official extension from Notion) on steroids! \n\nUsing the Notion Add-On \"Save to Notion,\" you're able to clip (i.e. capture) any type of content on the web. Whenever I come across interesting content, I like to quickly capture and organize that content into a Notion database so I can quickly find it later.\n\nIn general, I save 2 types of content using this workflow: Educational \"how-to\" type of content, and creative content that inspire me to make changes to my life. For example, if I'm trying to learn how to fast, I would clip relevant video and text-based article content and group them under a \"Health and Fitness\" category\n\nWhen I watch online videos, I often feel inspired by something in that video: be it a product I might consider purchasing or an editing technique I'd like to try out in my next video. The Save to Notion extension enables me to seamlessly save any type of web content into my Notion database and it's been an absolute life-changer! \n\nTIMESTAMPS\n00:00 Capture and Organize Web Content in Notion\n00:19 Content Clipper Template in Notion\n02:12 Save to Notion Extension\n04:38 Pro Tip for Save to Notion Extension\n05:55 Example Web Clipper Extension Workflows\n\nRESOURCES I MENTION IN THE VIDEO\n@MatthewEncina Matthew Encina's packing video - https://youtu.be/iwM_3vU9h4U\nMy Notion playlist - https://www.youtube.com/watch?v=sZB8OZoSIyU&list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS&index=3\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#saveandorganize #notion #notionhq", "The BEST Way to Capture and Organize Web Content in Notion!", "diK9dZulkAs", 1, 486, false, "https://www.youtube.com/watch?v=diK9dZulkAs", "/downloads/Jeff Su/2021-11-16 The BEST Way to Capture and Organize Web Content in Notion!/The BEST Way to Capture and Organize Web Content in Notion! [diK9dZulkAs].mp4", false, ~U[2021-11-16 13:00:17Z]] 16:58:33.143 [debug] QUERY OK source="sources" db=0.3ms idle=9.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.144 [debug] QUERY OK source="media_items" db=0.9ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-11-09 13:00:08Z], 1] 16:58:33.148 [debug] QUERY OK source="media_items" db=2.2ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["👨🏻\u200D💻 I never received formal \"email training.\" And there are definitely no tutorials for writing effective emails at work. In this video I share best practices for the 6 Most Common Types of Workplace Emails I learned the hard way over the past few years working as a Product Marketer! \n\nBefore diving into email best practices, you should know that there are 2 main types of emails we encounter at work:\n\n1️⃣ Request-and-reply emails that require input from the reader\n\n2️⃣ Confirmation emails that serve as a record of a conversation or decision\n\nCold emails where you reach out to a colleague for the first time would fall under the \"request-and-reply\" type of email and a best practice there would be start off the email by mentioning how you came across their profile\n\nMeeting minutes would fall under \"confirmation emails\" and a tip there is to include the Key Takeaways and Action Items up front, and perhaps even highlight the specific action owners so there is no room for miscommunication.\n\nNewsletters and Project recaps are usually longer in length, so I recommend adding a \"too long, didn't read\" - or tl;dr - section up top so others can get the most important content right at the beginning and skim through the rest!\n\nTIMESTAMPS\n00:00 Common Types of Workplace Email\n00:37 Two Primary Types of Workplace Emails\n00:52 Cold Emails\n02:41 Action Required Email Blast\n03:54 Meeting Minutes & Email Chain Resets\n04:39 Newsletters & Project Recap Emails\n\nRESOURCES I MENTION IN THE VIDEO\n8 Email Etiquette Tips with HBR - https://youtu.be/1XctnF7C74s\nGoogle Doc Template Gallery - https://docs.google.com/document/u/0/?ftv=1&tgif=c\nThe Good Docs templates - https://thegoodocs.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#emailetiquette", "6 Email Tips Working Professionals Need to Know!", "dbfc8be2-c88b-4672-91b0-662ef2e4206f", false, "SHKHEutyukc", 1, [], 400, false, "https://www.youtube.com/watch?v=SHKHEutyukc", 126, "/downloads/Jeff Su/2021-11-09 6 Email Tips Working Professionals Need to Know!/6 Email Tips Working Professionals Need to Know! [SHKHEutyukc].mp4", false, false, 98, ~U[2021-11-09 13:00:08Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "👨🏻\u200D💻 I never received formal \"email training.\" And there are definitely no tutorials for writing effective emails at work. In this video I share best practices for the 6 Most Common Types of Workplace Emails I learned the hard way over the past few years working as a Product Marketer! \n\nBefore diving into email best practices, you should know that there are 2 main types of emails we encounter at work:\n\n1️⃣ Request-and-reply emails that require input from the reader\n\n2️⃣ Confirmation emails that serve as a record of a conversation or decision\n\nCold emails where you reach out to a colleague for the first time would fall under the \"request-and-reply\" type of email and a best practice there would be start off the email by mentioning how you came across their profile\n\nMeeting minutes would fall under \"confirmation emails\" and a tip there is to include the Key Takeaways and Action Items up front, and perhaps even highlight the specific action owners so there is no room for miscommunication.\n\nNewsletters and Project recaps are usually longer in length, so I recommend adding a \"too long, didn't read\" - or tl;dr - section up top so others can get the most important content right at the beginning and skim through the rest!\n\nTIMESTAMPS\n00:00 Common Types of Workplace Email\n00:37 Two Primary Types of Workplace Emails\n00:52 Cold Emails\n02:41 Action Required Email Blast\n03:54 Meeting Minutes & Email Chain Resets\n04:39 Newsletters & Project Recap Emails\n\nRESOURCES I MENTION IN THE VIDEO\n8 Email Etiquette Tips with HBR - https://youtu.be/1XctnF7C74s\nGoogle Doc Template Gallery - https://docs.google.com/document/u/0/?ftv=1&tgif=c\nThe Good Docs templates - https://thegoodocs.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#emailetiquette", "6 Email Tips Working Professionals Need to Know!", "SHKHEutyukc", 1, 400, false, "https://www.youtube.com/watch?v=SHKHEutyukc", "/downloads/Jeff Su/2021-11-09 6 Email Tips Working Professionals Need to Know!/6 Email Tips Working Professionals Need to Know! [SHKHEutyukc].mp4", false, ~U[2021-11-09 13:00:08Z]] 16:58:33.149 [debug] QUERY OK source="sources" db=0.3ms idle=9.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.150 [debug] QUERY OK source="media_items" db=1.0ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-11-02 13:00:05Z], 1] 16:58:33.153 [debug] QUERY OK source="media_items" db=2.0ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🍏 Did you know the Shared Album feature provides you with FREE iCloud storage? If not, you'll love this video on 11 Hidden Apple Photos Features you simply MUST know! \n\nPeople make the mistake of thinking that Apple Photos is a simple Photos app, when in reality there are so many tips and tricks we can use every single day to make your lives easier and more productive\n\nFor example, you can tag individual photos using captions by swiping up on a photo, then searching for those tags to quickly find the images you're looking for\n\nYou can also create an Apple Watch face directly from the Photos app and also create animated wallpapers and lock screens for your iPhone as well! \n\nYou can also choose to turn off location data before you send a photo to family members and/or needy friends and last but not last you can convert Photos directly to PDF via Apple Photos and Apple Books\n\nPretty cool stuff 😎\n\nTIMESTAMPS\n00:00 Get Free iCloud Storage\n01:07 Search for Photo Captions\n01:26 Create Apple Watch Face\n02:04 Create Animated Wallpaper\n02:26 Change Album Wallpaper\n02:43 Change Apple Photos Aspect Ratio\n03:03 Customize Apple Photos Memories\n03:23 Turn off Photos Location Data\n03:45 REALLY Hide Your Photos\n04:22 Use Filters to Quickly Find Photos\n04:36 Convert Photos to PDF\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#applephotos #hiddenfeatures #productivity", "11 Hidden Apple Photos Features You MUST Know!", "e4861c9d-a2e4-40e8-9b36-3f0e3a5d5dbf", false, "8IzMQxibfoU", 1, [], 312, false, "https://www.youtube.com/watch?v=8IzMQxibfoU", 127, "/downloads/Jeff Su/2021-11-02 11 Hidden Apple Photos Features You MUST Know!/11 Hidden Apple Photos Features You MUST Know! [8IzMQxibfoU].mp4", false, false, 98, ~U[2021-11-02 13:00:05Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "🍏 Did you know the Shared Album feature provides you with FREE iCloud storage? If not, you'll love this video on 11 Hidden Apple Photos Features you simply MUST know! \n\nPeople make the mistake of thinking that Apple Photos is a simple Photos app, when in reality there are so many tips and tricks we can use every single day to make your lives easier and more productive\n\nFor example, you can tag individual photos using captions by swiping up on a photo, then searching for those tags to quickly find the images you're looking for\n\nYou can also create an Apple Watch face directly from the Photos app and also create animated wallpapers and lock screens for your iPhone as well! \n\nYou can also choose to turn off location data before you send a photo to family members and/or needy friends and last but not last you can convert Photos directly to PDF via Apple Photos and Apple Books\n\nPretty cool stuff 😎\n\nTIMESTAMPS\n00:00 Get Free iCloud Storage\n01:07 Search for Photo Captions\n01:26 Create Apple Watch Face\n02:04 Create Animated Wallpaper\n02:26 Change Album Wallpaper\n02:43 Change Apple Photos Aspect Ratio\n03:03 Customize Apple Photos Memories\n03:23 Turn off Photos Location Data\n03:45 REALLY Hide Your Photos\n04:22 Use Filters to Quickly Find Photos\n04:36 Convert Photos to PDF\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#applephotos #hiddenfeatures #productivity", "11 Hidden Apple Photos Features You MUST Know!", "8IzMQxibfoU", 1, 312, false, "https://www.youtube.com/watch?v=8IzMQxibfoU", "/downloads/Jeff Su/2021-11-02 11 Hidden Apple Photos Features You MUST Know!/11 Hidden Apple Photos Features You MUST Know! [8IzMQxibfoU].mp4", false, ~U[2021-11-02 13:00:05Z]] 16:58:33.154 [debug] QUERY OK source="sources" db=0.3ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.155 [debug] QUERY OK source="media_items" db=0.9ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-10-26 13:00:01Z], 1] 16:58:33.166 [debug] QUERY OK source="media_items" db=8.7ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["💡 While I still mainly use Google Chrome at work, I \"supplement\" my work browser with Microsoft Edge as my personal browser since it has so many cool features. In this video I'll break down 9 Microsoft Edge Features that Google Chrome doesn't seem to have...yet! \n\nIn the never-ending debate of Microsoft Edge vs. Google Chrome - which is the better browser - there is no right answer...but there are exclusive features! For example, Edge has an Immersive Reader mode that lets you browse webpages without distractions AND within it, the Read Aloud function is great way for you to \"listen\" to PDFs like you would a podcast! \n\nFurthermore, Microsoft Edge has the \"Save to Collections\" feature that is extremely useful when you're doing research and looking to consolidate information on a given topic in 1 central location. And of course, while the Sidebar Search function is great, it could be even better if we could change the default search engine... 😉\n\nTIMESTAMPS\n00:00 Edge features Chrome doesn't have\n00:43 Immersive Reader Mode\n01:19 Read Aloud for PDFs\n02:19 Microsoft Edge PDF Reader\n02:55 Take a Scrollable Screenshot\n03:50 Use Sidebar Search\n05:03 Save Web Content to Collections\n06:21 Best Way to use Vertical Tabs\n07:37 Enable Sleeping Tabs\n08:30 QR Code Generator\n08:49 How to Stand Out at Work\n\nRESOURCES I MENTION IN THE VIDEO\nTop 8 Productivity Tips for Google Chrome: https://youtu.be/KXY-2fIAksY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#edge #chrome", "9 Microsoft Edge Features Chrome Doesn't Have (...yet)", "d6829d06-0b98-49a6-ae3b-bfc993b11582", false, "-O-10X-HFB0", 1, [], 568, false, "https://www.youtube.com/watch?v=-O-10X-HFB0", 128, "/downloads/Jeff Su/2021-10-26 9 Microsoft Edge Features Chrome Doesn't Have (...yet)/9 Microsoft Edge Features Chrome Doesn't Have (...yet) [-O-10X-HFB0].mp4", false, false, 98, ~U[2021-10-26 13:00:01Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "💡 While I still mainly use Google Chrome at work, I \"supplement\" my work browser with Microsoft Edge as my personal browser since it has so many cool features. In this video I'll break down 9 Microsoft Edge Features that Google Chrome doesn't seem to have...yet! \n\nIn the never-ending debate of Microsoft Edge vs. Google Chrome - which is the better browser - there is no right answer...but there are exclusive features! For example, Edge has an Immersive Reader mode that lets you browse webpages without distractions AND within it, the Read Aloud function is great way for you to \"listen\" to PDFs like you would a podcast! \n\nFurthermore, Microsoft Edge has the \"Save to Collections\" feature that is extremely useful when you're doing research and looking to consolidate information on a given topic in 1 central location. And of course, while the Sidebar Search function is great, it could be even better if we could change the default search engine... 😉\n\nTIMESTAMPS\n00:00 Edge features Chrome doesn't have\n00:43 Immersive Reader Mode\n01:19 Read Aloud for PDFs\n02:19 Microsoft Edge PDF Reader\n02:55 Take a Scrollable Screenshot\n03:50 Use Sidebar Search\n05:03 Save Web Content to Collections\n06:21 Best Way to use Vertical Tabs\n07:37 Enable Sleeping Tabs\n08:30 QR Code Generator\n08:49 How to Stand Out at Work\n\nRESOURCES I MENTION IN THE VIDEO\nTop 8 Productivity Tips for Google Chrome: https://youtu.be/KXY-2fIAksY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#edge #chrome", "9 Microsoft Edge Features Chrome Doesn't Have (...yet)", "-O-10X-HFB0", 1, 568, false, "https://www.youtube.com/watch?v=-O-10X-HFB0", "/downloads/Jeff Su/2021-10-26 9 Microsoft Edge Features Chrome Doesn't Have (...yet)/9 Microsoft Edge Features Chrome Doesn't Have (...yet) [-O-10X-HFB0].mp4", false, ~U[2021-10-26 13:00:01Z]] 16:58:33.166 [debug] QUERY OK source="sources" db=0.3ms idle=16.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.168 [debug] QUERY OK source="media_items" db=0.9ms idle=13.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-10-19 13:00:24Z], 1] 16:58:33.171 [debug] QUERY OK source="media_items" db=2.3ms idle=13.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎨 Create a free Canva account here: https://partner.canva.com/jeffsu\n\n🎆 Use my Event template (for free): https://partner.canva.com/P0VJ1X\n\nWhether you're a student or working professional, you'll be sure to find some inspiration after seeing the 7 creative ways I use this free tool - Canva! In this video I go over 7 ways I use Canva.com as a professional that has helped me stand out at work.\n\nFirst, you're able to import entire PDFs into Canva and Canva will let you edit the entire file - from the background to the words on the slides. This is extremely helpful if you only need to use part of the content from the PDF.\n\nSpeaking of presentations, you're able to use the \"Frames\" feature to create mockups of basically anything you want; from book covers to website design. These small adjustments will really help your audience visualize the ideas in your head. \n\nI also use Canva to create professional LinkedIn profile pictures and background banners. Not only are there existing templates you can use immediately, Canva provides you with a lot of tools to make your images look just right\n\nAnd that's just the tip of the iceberg! I share a lot more Canva tips and tricks within the video itself, enjoy 😁\n\nTIMESTAMPS \n00:00 Intro\n00:28 TOTB Episode 2\n00:47 Import and Edit PDFs on Canva\n01:45 Use Frames in Canva\n02:56 Create LinkedIn Profile Picture\n06:05 Create LinkedIn Background Banner\n07:18 Design Event Poster on Canva\n09:14 Create Resume or Cover Letter\n10:23 Create any Design you want on Canva\n\nRESOURCES I MENTION IN THE VIDEO\nEvent template: https://www.canva.com/design/DAEs2JBSIOM/wdToFpyvRMzEqbM2uWV00g/view?utm_content=DAEs2JBSIOM&utm_campaign=designshare&utm_medium=link&utm_source=sharebutton&mode=preview\nLinkedIn Best Practices - https://www.youtube.com/watch?v=BcfGWi8Qywk&list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nEvent Management 101 - https://youtu.be/b3B24wl3gCQ\nWrite an Amazing Resume - https://youtu.be/Tt08KmFfIYQ\nWrite an Outstanding Cover Letter - https://youtu.be/NUhDP30IRKk\nRemove Background - https://www.remove.bg/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n🎨 Canva - https://partner.canva.com/jeffsu\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#thinkoutsidethebox #canva #canvalove", "7 Creative Ways to use Canva!", "397fd3f1-1a18-4bcc-960f-8d8e9693e0e9", false, "w0Bf4u-u9AQ", 1, [], 686, false, "https://www.youtube.com/watch?v=w0Bf4u-u9AQ", 129, "/downloads/Jeff Su/2021-10-19 7 Creative Ways to use Canva!/7 Creative Ways to use Canva! [w0Bf4u-u9AQ].mp4", false, false, 98, ~U[2021-10-19 13:00:24Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "🎨 Create a free Canva account here: https://partner.canva.com/jeffsu\n\n🎆 Use my Event template (for free): https://partner.canva.com/P0VJ1X\n\nWhether you're a student or working professional, you'll be sure to find some inspiration after seeing the 7 creative ways I use this free tool - Canva! In this video I go over 7 ways I use Canva.com as a professional that has helped me stand out at work.\n\nFirst, you're able to import entire PDFs into Canva and Canva will let you edit the entire file - from the background to the words on the slides. This is extremely helpful if you only need to use part of the content from the PDF.\n\nSpeaking of presentations, you're able to use the \"Frames\" feature to create mockups of basically anything you want; from book covers to website design. These small adjustments will really help your audience visualize the ideas in your head. \n\nI also use Canva to create professional LinkedIn profile pictures and background banners. Not only are there existing templates you can use immediately, Canva provides you with a lot of tools to make your images look just right\n\nAnd that's just the tip of the iceberg! I share a lot more Canva tips and tricks within the video itself, enjoy 😁\n\nTIMESTAMPS \n00:00 Intro\n00:28 TOTB Episode 2\n00:47 Import and Edit PDFs on Canva\n01:45 Use Frames in Canva\n02:56 Create LinkedIn Profile Picture\n06:05 Create LinkedIn Background Banner\n07:18 Design Event Poster on Canva\n09:14 Create Resume or Cover Letter\n10:23 Create any Design you want on Canva\n\nRESOURCES I MENTION IN THE VIDEO\nEvent template: https://www.canva.com/design/DAEs2JBSIOM/wdToFpyvRMzEqbM2uWV00g/view?utm_content=DAEs2JBSIOM&utm_campaign=designshare&utm_medium=link&utm_source=sharebutton&mode=preview\nLinkedIn Best Practices - https://www.youtube.com/watch?v=BcfGWi8Qywk&list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nEvent Management 101 - https://youtu.be/b3B24wl3gCQ\nWrite an Amazing Resume - https://youtu.be/Tt08KmFfIYQ\nWrite an Outstanding Cover Letter - https://youtu.be/NUhDP30IRKk\nRemove Background - https://www.remove.bg/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n🎨 Canva - https://partner.canva.com/jeffsu\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#thinkoutsidethebox #canva #canvalove", "7 Creative Ways to use Canva!", "w0Bf4u-u9AQ", 1, 686, false, "https://www.youtube.com/watch?v=w0Bf4u-u9AQ", "/downloads/Jeff Su/2021-10-19 7 Creative Ways to use Canva!/7 Creative Ways to use Canva! [w0Bf4u-u9AQ].mp4", false, ~U[2021-10-19 13:00:24Z]] 16:58:33.172 [debug] QUERY OK source="sources" db=0.3ms idle=15.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.173 [debug] QUERY OK source="media_items" db=0.9ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-10-12 13:00:16Z], 1] 16:58:33.177 [debug] QUERY OK source="media_items" db=2.1ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Take the full Skillshare course here 👉🏻 https://geni.us/eventmanagement101\n\nDownload my Event Management template on Google Sheets 👉🏻 https://geni.us/eventtemplate\n\n🎊 Whether you're hosting a surprise party or planning a large corporate event, you want to follow a structured process to ensure an enjoyable experience for your attendees. So, in this Event Management 101 video with Google Sheets, I break down event planning and take you through my method step-by-step!\n\nNo matter what type of event you're planning, there are many constants: attendees, registration or invitation process, speakers and agenda, marketing materials, and communication channels. Literally every event in the world has these things in some shape or form. \n\nI like to break down event planning into different buckets: Pre-event, during-event, and post-event. This allows me to structure my thoughts whether I'm planning a wedding, a birthday party, or a team offsite.\n\nWhile the concepts in this Youtube video is more than enough for most people, if you're a professional who frequently comes into contact with events at work, or an aspiring marketer, the full introduction to event management Skillshare course will be very useful!\n\nTIMESTAMPS\n00:00 Similarities between different types of events\n00:53 My experience planning and managing events\n01:36 Who is this course for?\n01:59 Snippet from Skillshare Course\n04:58 Access the Google Sheets template\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#eventmanagement #eventplanning #marketing", "Intro to Event Planning & Management (with Google Sheets)", "d5c17024-4f74-40b5-8824-1cc92d96ae7c", false, "b3B24wl3gCQ", 1, [], 346, false, "https://www.youtube.com/watch?v=b3B24wl3gCQ", 130, "/downloads/Jeff Su/2021-10-12 Intro to Event Planning & Management (with Google Sheets)/Intro to Event Planning & Management (with Google Sheets) [b3B24wl3gCQ].mp4", false, false, 98, ~U[2021-10-12 13:00:16Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "Take the full Skillshare course here 👉🏻 https://geni.us/eventmanagement101\n\nDownload my Event Management template on Google Sheets 👉🏻 https://geni.us/eventtemplate\n\n🎊 Whether you're hosting a surprise party or planning a large corporate event, you want to follow a structured process to ensure an enjoyable experience for your attendees. So, in this Event Management 101 video with Google Sheets, I break down event planning and take you through my method step-by-step!\n\nNo matter what type of event you're planning, there are many constants: attendees, registration or invitation process, speakers and agenda, marketing materials, and communication channels. Literally every event in the world has these things in some shape or form. \n\nI like to break down event planning into different buckets: Pre-event, during-event, and post-event. This allows me to structure my thoughts whether I'm planning a wedding, a birthday party, or a team offsite.\n\nWhile the concepts in this Youtube video is more than enough for most people, if you're a professional who frequently comes into contact with events at work, or an aspiring marketer, the full introduction to event management Skillshare course will be very useful!\n\nTIMESTAMPS\n00:00 Similarities between different types of events\n00:53 My experience planning and managing events\n01:36 Who is this course for?\n01:59 Snippet from Skillshare Course\n04:58 Access the Google Sheets template\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#eventmanagement #eventplanning #marketing", "Intro to Event Planning & Management (with Google Sheets)", "b3B24wl3gCQ", 1, 346, false, "https://www.youtube.com/watch?v=b3B24wl3gCQ", "/downloads/Jeff Su/2021-10-12 Intro to Event Planning & Management (with Google Sheets)/Intro to Event Planning & Management (with Google Sheets) [b3B24wl3gCQ].mp4", false, ~U[2021-10-12 13:00:16Z]] 16:58:33.177 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:33.179 [debug] QUERY OK source="media_items" db=1.0ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-10-05 13:00:25Z], 1] 16:58:33.182 [debug] QUERY OK source="media_items" db=2.2ms idle=7.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📈 Career Development video: https://youtu.be/bQV58TZW6hQ\n\n🥂 By now, we all know how important a role our managers play in our professional development. So in this video, I share 6 Tips for Productive 1:1 Meetings with Your Manager that you can apply immediately in your next one on one with your boss! \n\nIf you think about it, it's in both you and your manager's best interests to have effective 1 on 1 meetings, since constructive 1:1s throughout the year makes performance reviews a breeze. With routine 1:1s, review time can be more about goals and the year ahead instead of constructive feedback from the past 🙌\n\nThe problem is that most of us (I fell victim to this as well) take a rather passive approach to 1:1 meetings. Case in point: If you run a quick Google search, you'll find a LOT of resources teaching managers how to conduct 1:1's with us, but very few resources teaching us how to manage up effectively!\n\nTo make the most out of your next one on one meeting with the boss, you want to prepare an agenda beforehand, have a robust structure during the 1:1 meeting, and follow up afterwards. \n\nLet me know how your next 1:1 meeting goes 😉\n\nTIMESTAMPS\n00:00 Intro\n00:20 Why 1:1's are Important\n01:01 How to Prepare Before a 1:1\n02:49 What to say During the 1:1\n04:42 How to Follow Up after a 1:1\n05:45 Summary of 1:1 Best Practices\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle re:Work website - https://rework.withgoogle.com/guides/managers-coach-managers-to-coach/steps/hold-effective-1-1-meetings/\nRadical Candor by Kim Scott - https://www.radicalcandor.com/effective-one-on-ones/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#professionaldevelopment #productivityatwork", "6 Tips for Productive 1:1 Meetings with Your Manager", "718324ac-7969-4107-a024-a2879929a6b2", false, "LWz57CpcSnE", 1, [], 378, false, "https://www.youtube.com/watch?v=LWz57CpcSnE", 131, "/downloads/Jeff Su/2021-10-05 6 Tips for Productive 1_1 Meetings with Your Manager/6 Tips for Productive 1_1 Meetings with Your Manager [LWz57CpcSnE].mp4", false, false, 98, ~U[2021-10-05 13:00:25Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "📈 Career Development video: https://youtu.be/bQV58TZW6hQ\n\n🥂 By now, we all know how important a role our managers play in our professional development. So in this video, I share 6 Tips for Productive 1:1 Meetings with Your Manager that you can apply immediately in your next one on one with your boss! \n\nIf you think about it, it's in both you and your manager's best interests to have effective 1 on 1 meetings, since constructive 1:1s throughout the year makes performance reviews a breeze. With routine 1:1s, review time can be more about goals and the year ahead instead of constructive feedback from the past 🙌\n\nThe problem is that most of us (I fell victim to this as well) take a rather passive approach to 1:1 meetings. Case in point: If you run a quick Google search, you'll find a LOT of resources teaching managers how to conduct 1:1's with us, but very few resources teaching us how to manage up effectively!\n\nTo make the most out of your next one on one meeting with the boss, you want to prepare an agenda beforehand, have a robust structure during the 1:1 meeting, and follow up afterwards. \n\nLet me know how your next 1:1 meeting goes 😉\n\nTIMESTAMPS\n00:00 Intro\n00:20 Why 1:1's are Important\n01:01 How to Prepare Before a 1:1\n02:49 What to say During the 1:1\n04:42 How to Follow Up after a 1:1\n05:45 Summary of 1:1 Best Practices\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle re:Work website - https://rework.withgoogle.com/guides/managers-coach-managers-to-coach/steps/hold-effective-1-1-meetings/\nRadical Candor by Kim Scott - https://www.radicalcandor.com/effective-one-on-ones/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#professionaldevelopment #productivityatwork", "6 Tips for Productive 1:1 Meetings with Your Manager", "LWz57CpcSnE", 1, 378, false, "https://www.youtube.com/watch?v=LWz57CpcSnE", "/downloads/Jeff Su/2021-10-05 6 Tips for Productive 1_1 Meetings with Your Manager/6 Tips for Productive 1_1 Meetings with Your Manager [LWz57CpcSnE].mp4", false, ~U[2021-10-05 13:00:25Z]] 16:58:33.183 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:33.184 [debug] QUERY OK source="media_items" db=1.0ms idle=7.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-09-28 13:00:06Z], 1] 16:58:33.188 [debug] QUERY OK source="media_items" db=2.2ms idle=7.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🗯 \"Nothing good in life comes easy\" so in this video, I'm going to share you How to Job Search on Linkedin...the HARD way! \n\nIf you're a job seeker trying to use LinkedIn to find a job, you might think that using the \"Apply Now\" or Easy Apply feature is your best bet. It's fast and efficient right? The problem with that approach is that since it is so easy, everyone is doing the same thing so it's hard for you to stand out as a job seeker on LinkedIn\n\nOr perhaps you KNOW you need to network on LinkedIn to find a job you want, but you're not sure where to start. The best way to begin is to engage with active LinkedIn users, who usually have a vast network already. You do this by first finding out where the active users are and commenting on their posts. Rinse and repeat for 2-4 weeks and I promise you will make progress on your job search journey\n\nAfter you have engaged and hopefully re-engaged these active LinkedIn users, you want to follow up and send connection requests that get accepted. I highly recommend Austin Belcak's 3-step LinkedIn Connection Request formula since it's so simple and effective\n\nFirst, lead with positivity, then show them you've done your homework, and finally ask them a genuine question so they feel like you're seeking guidance from them (which you are!) \n\nGood luck and enjoy the journey 😁\n\nTIMESTAMPS\n00:00 Find active LinkedIn Professionals\n01:16 Why online applications don't work\n02:09 Benefits of commenting on LinkedIn\n03:23 What to say in LinkedIn Connection Requests\n05:03 LinkedIn Connect Request Example\n\nRESOURCES I MENTION IN THE VIDEO\nPersonal CRM video - https://youtu.be/CvHFg5ASuh8\nAustin's LinkedIn Connection Request Article - https://cultivatedculture.com/linkedin-connection-requests/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #jobsearch #notgoodcomeseasy", "Job Search on LinkedIn: The 1 Tip You Need to Know!", "2cd05fdf-53a2-4ee4-a2de-6e8a00b5ef47", false, "CwjwnHJE5sU", 1, [], 366, false, "https://www.youtube.com/watch?v=CwjwnHJE5sU", 132, "/downloads/Jeff Su/2021-09-28 Job Search on LinkedIn: The 1 Tip You Need to Know!/Job Search on LinkedIn: The 1 Tip You Need to Know! [CwjwnHJE5sU].mp4", false, false, 98, ~U[2021-09-28 13:00:06Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "🗯 \"Nothing good in life comes easy\" so in this video, I'm going to share you How to Job Search on Linkedin...the HARD way! \n\nIf you're a job seeker trying to use LinkedIn to find a job, you might think that using the \"Apply Now\" or Easy Apply feature is your best bet. It's fast and efficient right? The problem with that approach is that since it is so easy, everyone is doing the same thing so it's hard for you to stand out as a job seeker on LinkedIn\n\nOr perhaps you KNOW you need to network on LinkedIn to find a job you want, but you're not sure where to start. The best way to begin is to engage with active LinkedIn users, who usually have a vast network already. You do this by first finding out where the active users are and commenting on their posts. Rinse and repeat for 2-4 weeks and I promise you will make progress on your job search journey\n\nAfter you have engaged and hopefully re-engaged these active LinkedIn users, you want to follow up and send connection requests that get accepted. I highly recommend Austin Belcak's 3-step LinkedIn Connection Request formula since it's so simple and effective\n\nFirst, lead with positivity, then show them you've done your homework, and finally ask them a genuine question so they feel like you're seeking guidance from them (which you are!) \n\nGood luck and enjoy the journey 😁\n\nTIMESTAMPS\n00:00 Find active LinkedIn Professionals\n01:16 Why online applications don't work\n02:09 Benefits of commenting on LinkedIn\n03:23 What to say in LinkedIn Connection Requests\n05:03 LinkedIn Connect Request Example\n\nRESOURCES I MENTION IN THE VIDEO\nPersonal CRM video - https://youtu.be/CvHFg5ASuh8\nAustin's LinkedIn Connection Request Article - https://cultivatedculture.com/linkedin-connection-requests/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #jobsearch #notgoodcomeseasy", "Job Search on LinkedIn: The 1 Tip You Need to Know!", "CwjwnHJE5sU", 1, 366, false, "https://www.youtube.com/watch?v=CwjwnHJE5sU", "/downloads/Jeff Su/2021-09-28 Job Search on LinkedIn: The 1 Tip You Need to Know!/Job Search on LinkedIn: The 1 Tip You Need to Know! [CwjwnHJE5sU].mp4", false, ~U[2021-09-28 13:00:06Z]] 16:58:33.189 [debug] QUERY OK source="sources" db=0.4ms idle=9.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.190 [debug] QUERY OK source="media_items" db=0.9ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-09-21 13:00:02Z], 1] 16:58:33.194 [debug] QUERY OK source="media_items" db=2.2ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nThink Outside the Box (fully playlist) 👉🏻 https://www.youtube.com/playlist?list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\n\n🪧 Here are 4 Free Tools to Improve Your Presentations: SlidesCarnival, ColorHunt, Unsplash, and Flaticons. You're welcome 😉\n\nWebsites like Slides Carnival, Google Slides Template Gallery, and SlidesGo have beautiful Google Slide Themes and PowerPoint templates that you can download and use immediately\n\nThen, you can use online color palette tools like ColorHunt and ColorSpace to come up with a color scheme and truly make the template your own by giving it a bit more personality\n\nTo help convey your message a bit better, use stock photo websites like Unsplash, Pexels, and Pixaybay to find royalty-free images, illustrations, vector graphics, and even music you can use with your PowerPoint or Google Slide presentations\n\nLast but not least, stop using the stock icons that come with PowerPoint and Google Slides and instead use the beautifully designed icons over at Flaticons or TheNounProject\n\nLet me know how your next presentation goes! 😁\n\nTIMESTAMPS\n00:00 How NOT to Create Presentations\n00:38 Think Outside the Box #1\n00:52 Download Existing Presentation Templates\n02:10 Use Your Own Color Palettes\n04:14 Use High Quality Stock Photos\n05:23 Free and Beautiful Icons\n06:22 Bonus Tip - Typewolf \n06:57 Pro Tips\n\nRESOURCES I MENTION IN THE VIDEO (NOT sponsored, NOT affiliate links)\nSlides Carnival - https://www.slidescarnival.com/\nGoogle Slides Template Gallery - https://docs.google.com/presentation/u/0/?ftv=1\nSlidesGo - https://slidesgo.com/\nColorHunt - https://colorhunt.co/\nColorSpace - https://mycolor.space/\nUnsplash - https://unsplash.com/\nPexels - https://www.pexels.com/\nPixabay - https://pixabay.com/\nFlaticon - http://flaticon.com/\nTheNounProject - https://thenounproject.com/\nTypeWolf - https://www.typewolf.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#powerpoint #googleslides #design #thinkoutsidethebox", "4 FREE Tools to Improve Your Next Presentation!", "e035fc10-63fb-4707-ae9f-0a36f387d35c", false, "5c9SapE_YNU", 1, [], 455, false, "https://www.youtube.com/watch?v=5c9SapE_YNU", 133, "/downloads/Jeff Su/2021-09-21 4 FREE Tools to Improve Your Next Presentation!/4 FREE Tools to Improve Your Next Presentation! [5c9SapE_YNU].mp4", false, false, 98, ~U[2021-09-21 13:00:02Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nThink Outside the Box (fully playlist) 👉🏻 https://www.youtube.com/playlist?list=PLo-kPya_Ww2zYYTicVo2UvzWeQr-4WIY6\n\n🪧 Here are 4 Free Tools to Improve Your Presentations: SlidesCarnival, ColorHunt, Unsplash, and Flaticons. You're welcome 😉\n\nWebsites like Slides Carnival, Google Slides Template Gallery, and SlidesGo have beautiful Google Slide Themes and PowerPoint templates that you can download and use immediately\n\nThen, you can use online color palette tools like ColorHunt and ColorSpace to come up with a color scheme and truly make the template your own by giving it a bit more personality\n\nTo help convey your message a bit better, use stock photo websites like Unsplash, Pexels, and Pixaybay to find royalty-free images, illustrations, vector graphics, and even music you can use with your PowerPoint or Google Slide presentations\n\nLast but not least, stop using the stock icons that come with PowerPoint and Google Slides and instead use the beautifully designed icons over at Flaticons or TheNounProject\n\nLet me know how your next presentation goes! 😁\n\nTIMESTAMPS\n00:00 How NOT to Create Presentations\n00:38 Think Outside the Box #1\n00:52 Download Existing Presentation Templates\n02:10 Use Your Own Color Palettes\n04:14 Use High Quality Stock Photos\n05:23 Free and Beautiful Icons\n06:22 Bonus Tip - Typewolf \n06:57 Pro Tips\n\nRESOURCES I MENTION IN THE VIDEO (NOT sponsored, NOT affiliate links)\nSlides Carnival - https://www.slidescarnival.com/\nGoogle Slides Template Gallery - https://docs.google.com/presentation/u/0/?ftv=1\nSlidesGo - https://slidesgo.com/\nColorHunt - https://colorhunt.co/\nColorSpace - https://mycolor.space/\nUnsplash - https://unsplash.com/\nPexels - https://www.pexels.com/\nPixabay - https://pixabay.com/\nFlaticon - http://flaticon.com/\nTheNounProject - https://thenounproject.com/\nTypeWolf - https://www.typewolf.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#powerpoint #googleslides #design #thinkoutsidethebox", "4 FREE Tools to Improve Your Next Presentation!", "5c9SapE_YNU", 1, 455, false, "https://www.youtube.com/watch?v=5c9SapE_YNU", "/downloads/Jeff Su/2021-09-21 4 FREE Tools to Improve Your Next Presentation!/4 FREE Tools to Improve Your Next Presentation! [5c9SapE_YNU].mp4", false, ~U[2021-09-21 13:00:02Z]] 16:58:33.194 [debug] QUERY OK source="sources" db=0.4ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.196 [debug] QUERY OK source="media_items" db=0.9ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-09-14 13:00:10Z], 1] 16:58:33.199 [debug] QUERY OK source="media_items" db=2.1ms idle=7.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📝 Sign up for Notion here: https://ntn.so/jeffsunotion\n\n👪 Download my Personal CRM template here: https://www.jeffsu.org/personal-crm-template/\n\nLife gets busy and we lose touch we people we never thought we would. So in this video I show you how to Build Meaningful Relationships with a Personal CRM using a Notion template I created and have successfully maintained for the past 6 months. \n\nSimply put, a Personal CRM is personal relationship management system that (1) Reminds us to check in with the people we care about and (2) Helps us remember important facts and details about those individuals. Most Personal CRMs fail because they're too complex and we find them to troubleshoot to maintain consistently.\n\nThe Personal CRM I created work primarily because of 2 reasons: \n\n1️⃣ You focus on a few \"important VIPs\" at a time so it doesn't take too long to update, and \n\n2️⃣ Notion is available across platforms, so it doesn't fact the limitations some apps do by being on just 1 operating system\n\nHave fun using this Personal Relationships Manager and don't forget to check in with a loved one today 😉\n\nTIMESTAMPS\n00:00 Why most Personal CRMs fail\n00:29 Snapshot of my Personal CRM template\n00:40 Benefits of using a Personal CRM\n01:30 Personal CRM template structure\n02:30 \"Must-have\" information\n05:08 VIP-specific information\n07:06 How to maintain your Personal CRM\n08:14 Benefits of Notion vs. other platforms\n\nRESOURCES I MENTION IN THE VIDEO\nMy Notion Playlist - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#personalCRM #notion", "I Built a Personal CRM on Notion (template included)!", "11be7ce3-a260-4121-a028-532a6981c759", false, "CvHFg5ASuh8", 1, [], 518, false, "https://www.youtube.com/watch?v=CvHFg5ASuh8", 134, "/downloads/Jeff Su/2021-09-14 I Built a Personal CRM on Notion (template included)!/I Built a Personal CRM on Notion (template included)! [CvHFg5ASuh8].mp4", false, false, 98, ~U[2021-09-14 13:00:10Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "📝 Sign up for Notion here: https://ntn.so/jeffsunotion\n\n👪 Download my Personal CRM template here: https://www.jeffsu.org/personal-crm-template/\n\nLife gets busy and we lose touch we people we never thought we would. So in this video I show you how to Build Meaningful Relationships with a Personal CRM using a Notion template I created and have successfully maintained for the past 6 months. \n\nSimply put, a Personal CRM is personal relationship management system that (1) Reminds us to check in with the people we care about and (2) Helps us remember important facts and details about those individuals. Most Personal CRMs fail because they're too complex and we find them to troubleshoot to maintain consistently.\n\nThe Personal CRM I created work primarily because of 2 reasons: \n\n1️⃣ You focus on a few \"important VIPs\" at a time so it doesn't take too long to update, and \n\n2️⃣ Notion is available across platforms, so it doesn't fact the limitations some apps do by being on just 1 operating system\n\nHave fun using this Personal Relationships Manager and don't forget to check in with a loved one today 😉\n\nTIMESTAMPS\n00:00 Why most Personal CRMs fail\n00:29 Snapshot of my Personal CRM template\n00:40 Benefits of using a Personal CRM\n01:30 Personal CRM template structure\n02:30 \"Must-have\" information\n05:08 VIP-specific information\n07:06 How to maintain your Personal CRM\n08:14 Benefits of Notion vs. other platforms\n\nRESOURCES I MENTION IN THE VIDEO\nMy Notion Playlist - https://www.youtube.com/playlist?list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#personalCRM #notion", "I Built a Personal CRM on Notion (template included)!", "CvHFg5ASuh8", 1, 518, false, "https://www.youtube.com/watch?v=CvHFg5ASuh8", "/downloads/Jeff Su/2021-09-14 I Built a Personal CRM on Notion (template included)!/I Built a Personal CRM on Notion (template included)! [CvHFg5ASuh8].mp4", false, ~U[2021-09-14 13:00:10Z]] 16:58:33.199 [debug] QUERY OK source="sources" db=0.3ms idle=9.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.201 [debug] QUERY OK source="media_items" db=0.9ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-31 13:00:16Z], 1] 16:58:33.204 [debug] QUERY OK source="media_items" db=2.2ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Thank you 😁\n\nTIMESTAMPS\n00:00 Coming up\n00:24 Opening Skit\n01:29 Do you love working at Google\n02:29 Tips for post-grad life\n03:17 Most difficult experience in my career\n04:01 Other social media platforms to find jobs\n04:40 Would you start your own company\n05:20 Favorite books\n06:27 How to be good at speaking\n07:07 Dating questions\n07:43 What cities do you want to visit\n08:28 Ali or Matt?\n08:42 Favorite Apple product or feature\n08:57 Do you speak Chinese\n09:00 Favorite Youtuber\n09:19 Do you enjoy living in Shanghai\n09:36 How do you eat your steak\n09:52 What motivated you to start Youtube\n10:44 Future of your channel\n11:28 What camera gear to use for Youtube\n12:03 What productivity tools should you use\n13:03 Microsoft 365 vs. Google Workspace\n13:59 How to avoid FOMO\n15:02 Is your life journey as perfect as your videos\n16:42 How do I start following a routine\n17:40 How to beat perfectionism and avoid failure\n18:34 Ending & Secret Emoji message\n\nRESOURCES I MENTION IN THE VIDEO\nNetworking video - https://www.youtube.com/watch?v=4b2iagdHw8M\nHow I use Todoist - https://youtu.be/bP8wTapHsbc\nNever Split the Difference - https://geni.us/negotiation-book\nContagious - https://geni.us/contagious-book\nJohn Rain - https://geni.us/john-rain-detachment\nMake Time - https://geni.us/book-make-time\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#100k #celebration #thankyou", "Dating, FOMO, Perfectionism: 100K Q&A", "8844d4dc-e065-4493-bb1e-a74495ac8a43", false, "hGFNB4E2Aoo", 1, [], 1130, false, "https://www.youtube.com/watch?v=hGFNB4E2Aoo", 135, "/downloads/Jeff Su/2021-08-31 Dating, FOMO, Perfectionism: 100K Q&A/Dating, FOMO, Perfectionism: 100K Q&A [hGFNB4E2Aoo].mp4", false, false, 98, ~U[2021-08-31 13:00:16Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "Thank you 😁\n\nTIMESTAMPS\n00:00 Coming up\n00:24 Opening Skit\n01:29 Do you love working at Google\n02:29 Tips for post-grad life\n03:17 Most difficult experience in my career\n04:01 Other social media platforms to find jobs\n04:40 Would you start your own company\n05:20 Favorite books\n06:27 How to be good at speaking\n07:07 Dating questions\n07:43 What cities do you want to visit\n08:28 Ali or Matt?\n08:42 Favorite Apple product or feature\n08:57 Do you speak Chinese\n09:00 Favorite Youtuber\n09:19 Do you enjoy living in Shanghai\n09:36 How do you eat your steak\n09:52 What motivated you to start Youtube\n10:44 Future of your channel\n11:28 What camera gear to use for Youtube\n12:03 What productivity tools should you use\n13:03 Microsoft 365 vs. Google Workspace\n13:59 How to avoid FOMO\n15:02 Is your life journey as perfect as your videos\n16:42 How do I start following a routine\n17:40 How to beat perfectionism and avoid failure\n18:34 Ending & Secret Emoji message\n\nRESOURCES I MENTION IN THE VIDEO\nNetworking video - https://www.youtube.com/watch?v=4b2iagdHw8M\nHow I use Todoist - https://youtu.be/bP8wTapHsbc\nNever Split the Difference - https://geni.us/negotiation-book\nContagious - https://geni.us/contagious-book\nJohn Rain - https://geni.us/john-rain-detachment\nMake Time - https://geni.us/book-make-time\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#100k #celebration #thankyou", "Dating, FOMO, Perfectionism: 100K Q&A", "hGFNB4E2Aoo", 1, 1130, false, "https://www.youtube.com/watch?v=hGFNB4E2Aoo", "/downloads/Jeff Su/2021-08-31 Dating, FOMO, Perfectionism: 100K Q&A/Dating, FOMO, Perfectionism: 100K Q&A [hGFNB4E2Aoo].mp4", false, ~U[2021-08-31 13:00:16Z]] 16:58:33.205 [debug] QUERY OK source="sources" db=0.3ms idle=8.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.206 [debug] QUERY OK source="media_items" db=0.9ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-24 13:00:02Z], 1] 16:58:33.210 [debug] QUERY OK source="media_items" db=2.3ms idle=7.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=065\n\n👨🏻\u200D💻 Having worked in roles that required me to use Excel and Google Sheets extensively over the past 7 years, I thought it might be good to share 15 Google Sheets Formulas that all Working Professionals Should Know! Whether you're a beginner who have never come across Google Sheets functions, or a power user who feel comfortable combining multiple Google Sheets formulas, I hope there's something for you in this Google Sheets / Excel formula video! \n\nFor simple formulas that most people use such as VLOOKUP, there are things you want to watch out for, for example when to use \"TRUE\" vs. when to use \"FALSE.\" We also cover more advanced formulas such as IMPORTRANGE, ARRAYFORMULA, CONCATENATE, and combined functions such as =IF(SEARCH())\n\nIf you're a fresh graduate who just landed a first full-time job, or a working professional who has been working for 1-5 years, you probably will come across situations where you would need to use some (if not all) of the formulas mentioned in this video, whether you work with Microsoft Excel or Google Sheets, so why not give yourself a head start by practicing today? 😉\n\nTIMESTAMPS\n00:00 DETECTLANGUAGE \n00:46 VLOOKUP mistakes\n01:25 Wildcard Asterisk Character\n01:50 TODAY \n02:15 IMPORTRANGE \n03:45 COUNTIF \n04:08 COUNTA\n04:48 SPLIT\n05:43 LEFT\n05:55 RIGHT\n07:02 ISEMAIL and SUBSTITUTE\n08:06 ISURL\n08:31 ARRAYFORMULA\n09:10 CONCATENATE\n10:11 &\n10:37 IF and SEARCH\n11:49 IFERROR\n12:22 SUMIF\n13:45 TRIM, UPPER, LOWER, and PROPER\n\nRESOURCES I MENTION IN THE VIDEO\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#formulas #functions #googlesheets", "15 Spreadsheet Formulas Working Professionals Should Know!", "0473f827-bcd4-4ffe-9d2f-64203a603fec", false, "98dnBA5WYLY", 1, [], 882, false, "https://www.youtube.com/watch?v=98dnBA5WYLY", 136, "/downloads/Jeff Su/2021-08-24 15 Spreadsheet Formulas Working Professionals Should Know!/15 Spreadsheet Formulas Working Professionals Should Know! [98dnBA5WYLY].mp4", false, false, 98, ~U[2021-08-24 13:00:02Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=065\n\n👨🏻\u200D💻 Having worked in roles that required me to use Excel and Google Sheets extensively over the past 7 years, I thought it might be good to share 15 Google Sheets Formulas that all Working Professionals Should Know! Whether you're a beginner who have never come across Google Sheets functions, or a power user who feel comfortable combining multiple Google Sheets formulas, I hope there's something for you in this Google Sheets / Excel formula video! \n\nFor simple formulas that most people use such as VLOOKUP, there are things you want to watch out for, for example when to use \"TRUE\" vs. when to use \"FALSE.\" We also cover more advanced formulas such as IMPORTRANGE, ARRAYFORMULA, CONCATENATE, and combined functions such as =IF(SEARCH())\n\nIf you're a fresh graduate who just landed a first full-time job, or a working professional who has been working for 1-5 years, you probably will come across situations where you would need to use some (if not all) of the formulas mentioned in this video, whether you work with Microsoft Excel or Google Sheets, so why not give yourself a head start by practicing today? 😉\n\nTIMESTAMPS\n00:00 DETECTLANGUAGE \n00:46 VLOOKUP mistakes\n01:25 Wildcard Asterisk Character\n01:50 TODAY \n02:15 IMPORTRANGE \n03:45 COUNTIF \n04:08 COUNTA\n04:48 SPLIT\n05:43 LEFT\n05:55 RIGHT\n07:02 ISEMAIL and SUBSTITUTE\n08:06 ISURL\n08:31 ARRAYFORMULA\n09:10 CONCATENATE\n10:11 &\n10:37 IF and SEARCH\n11:49 IFERROR\n12:22 SUMIF\n13:45 TRIM, UPPER, LOWER, and PROPER\n\nRESOURCES I MENTION IN THE VIDEO\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#formulas #functions #googlesheets", "15 Spreadsheet Formulas Working Professionals Should Know!", "98dnBA5WYLY", 1, 882, false, "https://www.youtube.com/watch?v=98dnBA5WYLY", "/downloads/Jeff Su/2021-08-24 15 Spreadsheet Formulas Working Professionals Should Know!/15 Spreadsheet Formulas Working Professionals Should Know! [98dnBA5WYLY].mp4", false, ~U[2021-08-24 13:00:02Z]] 16:58:33.210 [debug] QUERY OK source="sources" db=0.3ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.212 [debug] QUERY OK source="media_items" db=0.9ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-10 13:30:06Z], 1] 16:58:33.215 [debug] QUERY OK source="media_items" db=2.2ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Download my Personal Finance Tracker template here: https://www.jeffsu.org/personal-finance-tracker-for-beginners/\n\n💵 If you're watching this video you know that keeping track of your spending, expenses, and net worth is necessary for financial well-being, but what's the best way to do that? In this video, I share a Personal Finance Tracker for Beginners to use (template included of course) and show how - by just spending 10 minutes a month - you can be more intentional about your spending!\n\nI have nothing against budgeting apps like Mint of course, since I've used it myself a few years back. But I've found that in order to be more mindful about my spending, I needed a more manual approach since I would literally SEE what I was spending money on and REFLECT on whether that was a sound purchase decision or not\n\nSo I decided to create a personal finance template on Google Sheets that would help me keep track (broadly speaking) of my monthly spending and my net worth (although that obviously fluctuates day-to-day with my stock investments). But, thanks to the 80/20 rule, I believe this is a healthy balance between not over-stressing and still being able to know I'm doing the responsible thing financially\n\nIf you end up using this budget tracker (and if you use other budget / spend / expense apps like Mint), please do let me know how you find it! 😁\n\nTIMESTAMPS\n00:00 How I used to track my Personal Finances\n00:47 Objective of this Personal Finance Tracker \n01:18 Track Your Spending (step-by-step)\n05:24 List Top 5 Expense Items\n06:28 Track Your Net Worth (step-by-step)\n08:44 Summary and Next Steps\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nDownload my Personal Finance Tracker template here: https://www.jeffsu.org/personalfinance\nGet 2 Free Stocks on WeBull today: https://act.webull.com/invite/share.html?inviteCode=4idCogSszBd5\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#personalfinancetracker #googlesheets #template", "Personal Finance Tracker for Beginners (template included)!", "1a306b60-1d1f-43f8-9edb-6b462df4ca12", false, "URWRc87UQNU", 1, [], 562, false, "https://www.youtube.com/watch?v=URWRc87UQNU", 137, "/downloads/Jeff Su/2021-08-10 Personal Finance Tracker for Beginners (template included)!/Personal Finance Tracker for Beginners (template included)! [URWRc87UQNU].mp4", false, false, 98, ~U[2021-08-10 13:30:06Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "Download my Personal Finance Tracker template here: https://www.jeffsu.org/personal-finance-tracker-for-beginners/\n\n💵 If you're watching this video you know that keeping track of your spending, expenses, and net worth is necessary for financial well-being, but what's the best way to do that? In this video, I share a Personal Finance Tracker for Beginners to use (template included of course) and show how - by just spending 10 minutes a month - you can be more intentional about your spending!\n\nI have nothing against budgeting apps like Mint of course, since I've used it myself a few years back. But I've found that in order to be more mindful about my spending, I needed a more manual approach since I would literally SEE what I was spending money on and REFLECT on whether that was a sound purchase decision or not\n\nSo I decided to create a personal finance template on Google Sheets that would help me keep track (broadly speaking) of my monthly spending and my net worth (although that obviously fluctuates day-to-day with my stock investments). But, thanks to the 80/20 rule, I believe this is a healthy balance between not over-stressing and still being able to know I'm doing the responsible thing financially\n\nIf you end up using this budget tracker (and if you use other budget / spend / expense apps like Mint), please do let me know how you find it! 😁\n\nTIMESTAMPS\n00:00 How I used to track my Personal Finances\n00:47 Objective of this Personal Finance Tracker \n01:18 Track Your Spending (step-by-step)\n05:24 List Top 5 Expense Items\n06:28 Track Your Net Worth (step-by-step)\n08:44 Summary and Next Steps\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nDownload my Personal Finance Tracker template here: https://www.jeffsu.org/personalfinance\nGet 2 Free Stocks on WeBull today: https://act.webull.com/invite/share.html?inviteCode=4idCogSszBd5\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#personalfinancetracker #googlesheets #template", "Personal Finance Tracker for Beginners (template included)!", "URWRc87UQNU", 1, 562, false, "https://www.youtube.com/watch?v=URWRc87UQNU", "/downloads/Jeff Su/2021-08-10 Personal Finance Tracker for Beginners (template included)!/Personal Finance Tracker for Beginners (template included)! [URWRc87UQNU].mp4", false, ~U[2021-08-10 13:30:06Z]] 16:58:33.216 [debug] QUERY OK source="sources" db=0.3ms idle=9.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.217 [debug] QUERY OK source="media_items" db=1.1ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-08-03 13:00:02Z], 1] 16:58:33.221 [debug] QUERY OK source="media_items" db=2.3ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n😲 In order to Write an Outstanding LinkedIn Summary, one must first look at existing successful examples and templates, and understand that there are no \"one-size-fits-all\" LinkedIn Summaries. Depending on who you are - Job Seeker, Working Professional, Entrepreneur, or Thought Leader, you would need to position yourself differently in your about section. \n\nEach segment has its own best practices, examples, and templates, but regardless of how you want to position yourself, the objective of your LinkedIn bio is the same: To compel your target audience - whoever they may be - to reach out to you instead of the other way around.\n\nThe LinkedIn Summary template for Job Seekers and Working Professionals follow a simple 3-step structure:\n\n(1) Intro line\n(2) Case Study bullet points\n(3) Ending\n\nFinally, I also share 5 practical tips (such as using word cloud generators to identify relevant keywords) that you can apply immediately to your LinkedIn Summary! \n\nTIMESTAMPS\n00:00 Intro\n00:33 Quick Disclaimer\n00:44 How to Position LinkedIn Summary\n01:01 Objective of LinkedIn Summary\n01:18 Common Themes of LinkedIn Bios\n01:31 LinkedIn Summary Template for Job Seekers\n03:33 5 Practical Tips for LinkedIn Bio\n03:42 The Perfect LinkedIn Summary Length\n04:03 Use the Right Keywords\n04:55 Bold or Italicize Font\n05:31 Bring up Personal Interests\n05:53 Use Hemingway app\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nAustin's article - https://cultivatedculture.com/linkedin-summary\nMy resume video - https://youtu.be/Tt08KmFfIYQ\nWord Counter tool - https://wordcounter.net/character-count\nMonkey Learn Word Cloud Generator - https://monkeylearn.com/word-cloud/\nUnicode Text Converter - https://qaz.wtf/u/convert.cgi\nHemingway app - https://hemingwayapp.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#linkedin #success", "Write an OUTSTANDING LinkedIn Summary (with Examples)!", "f2782b14-c65f-4470-9122-714d157c2f5b", false, "5hNsdH6Y2Mg", 1, [], 390, false, "https://www.youtube.com/watch?v=5hNsdH6Y2Mg", 138, "/downloads/Jeff Su/2021-08-03 Write an OUTSTANDING LinkedIn Summary (with Examples)!/Write an OUTSTANDING LinkedIn Summary (with Examples)! [5hNsdH6Y2Mg].mp4", false, false, 98, ~U[2021-08-03 13:00:02Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n😲 In order to Write an Outstanding LinkedIn Summary, one must first look at existing successful examples and templates, and understand that there are no \"one-size-fits-all\" LinkedIn Summaries. Depending on who you are - Job Seeker, Working Professional, Entrepreneur, or Thought Leader, you would need to position yourself differently in your about section. \n\nEach segment has its own best practices, examples, and templates, but regardless of how you want to position yourself, the objective of your LinkedIn bio is the same: To compel your target audience - whoever they may be - to reach out to you instead of the other way around.\n\nThe LinkedIn Summary template for Job Seekers and Working Professionals follow a simple 3-step structure:\n\n(1) Intro line\n(2) Case Study bullet points\n(3) Ending\n\nFinally, I also share 5 practical tips (such as using word cloud generators to identify relevant keywords) that you can apply immediately to your LinkedIn Summary! \n\nTIMESTAMPS\n00:00 Intro\n00:33 Quick Disclaimer\n00:44 How to Position LinkedIn Summary\n01:01 Objective of LinkedIn Summary\n01:18 Common Themes of LinkedIn Bios\n01:31 LinkedIn Summary Template for Job Seekers\n03:33 5 Practical Tips for LinkedIn Bio\n03:42 The Perfect LinkedIn Summary Length\n04:03 Use the Right Keywords\n04:55 Bold or Italicize Font\n05:31 Bring up Personal Interests\n05:53 Use Hemingway app\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nAustin's article - https://cultivatedculture.com/linkedin-summary\nMy resume video - https://youtu.be/Tt08KmFfIYQ\nWord Counter tool - https://wordcounter.net/character-count\nMonkey Learn Word Cloud Generator - https://monkeylearn.com/word-cloud/\nUnicode Text Converter - https://qaz.wtf/u/convert.cgi\nHemingway app - https://hemingwayapp.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#linkedin #success", "Write an OUTSTANDING LinkedIn Summary (with Examples)!", "5hNsdH6Y2Mg", 1, 390, false, "https://www.youtube.com/watch?v=5hNsdH6Y2Mg", "/downloads/Jeff Su/2021-08-03 Write an OUTSTANDING LinkedIn Summary (with Examples)!/Write an OUTSTANDING LinkedIn Summary (with Examples)! [5hNsdH6Y2Mg].mp4", false, ~U[2021-08-03 13:00:02Z]] 16:58:33.222 [debug] QUERY OK source="sources" db=0.4ms queue=0.2ms idle=9.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.223 [debug] QUERY OK source="media_items" db=0.9ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-07-27 13:00:32Z], 1] 16:58:33.226 [debug] QUERY OK source="media_items" db=2.3ms idle=7.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["To learn more than ever from important non-fiction books, join me on Shortform: https://shortform.com/jeffsu. You’ll get a 5-day free trial and a discounted annual subscription. One of my favorite books on Shortform is \"Why We Sleep\" by Matthew Walker (although reading the book has made me a bit more anxious about losing sleep as well...) \n\nDownload the template 👉🏻 https://www.jeffsu.org/a-simple-book-notes-template-for-notion/\n\n📕 Do you have commitment issues? Well I sometimes have a hard time committing myself to reading a non-fiction book because I feel like I HAVE to take comprehensive notes. So, I decided to make The Most Flexible Book Notes Template (for Notion of course) that helps me reduce the friction of reading non-fiction books.\n\nThis flexible Notion book notes template allows you to dial up OR DOWN your commitment to the book as you see fit. Put another way, you are given permission to \"stop\" reading a book if you feel like it's not for you. Not only does this encourage you to read more, but it also helps you to take better notes on the books as well. \n\nI walk through my entire Notion setup, and I also share this Book Notes template on my website. So feel free to make a copy of my Notion template and track your reading progress in Notion as well! \n\nTIMESTAMPS\n00:00 Give Yourself Permission to Read\n01:01 Template Layout\n01:40 Initial Impressions Section\n02:25 One Pager Notes Section\n03:15 Shortform Notes Section\n04:24 Audible Notes Section\n05:37 Full Book Notes Section\n06:00 Template Properties\n06:29 Recommend Me Books to Read\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nMy Book Notes template: https://www.jeffsu.org/notion\nKajol's Channel: https://www.youtube.com/channel/UCihXRfro3g27m1ajn5p8pBQ\nAli Abdaal's Book Notes template video: https://youtu.be/AjoxkxM_I5g\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#shortform #notion #booknotes", "A Simple Book Notes Template (for Notion)!", "3382c5f1-6285-493e-9912-0b42d0f08161", false, "s8RnhqYYz3E", 1, [], 450, false, "https://www.youtube.com/watch?v=s8RnhqYYz3E", 139, "/downloads/Jeff Su/2021-07-27 A Simple Book Notes Template (for Notion)!/A Simple Book Notes Template (for Notion)! [s8RnhqYYz3E].mp4", false, false, 98, ~U[2021-07-27 13:00:32Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "To learn more than ever from important non-fiction books, join me on Shortform: https://shortform.com/jeffsu. You’ll get a 5-day free trial and a discounted annual subscription. One of my favorite books on Shortform is \"Why We Sleep\" by Matthew Walker (although reading the book has made me a bit more anxious about losing sleep as well...) \n\nDownload the template 👉🏻 https://www.jeffsu.org/a-simple-book-notes-template-for-notion/\n\n📕 Do you have commitment issues? Well I sometimes have a hard time committing myself to reading a non-fiction book because I feel like I HAVE to take comprehensive notes. So, I decided to make The Most Flexible Book Notes Template (for Notion of course) that helps me reduce the friction of reading non-fiction books.\n\nThis flexible Notion book notes template allows you to dial up OR DOWN your commitment to the book as you see fit. Put another way, you are given permission to \"stop\" reading a book if you feel like it's not for you. Not only does this encourage you to read more, but it also helps you to take better notes on the books as well. \n\nI walk through my entire Notion setup, and I also share this Book Notes template on my website. So feel free to make a copy of my Notion template and track your reading progress in Notion as well! \n\nTIMESTAMPS\n00:00 Give Yourself Permission to Read\n01:01 Template Layout\n01:40 Initial Impressions Section\n02:25 One Pager Notes Section\n03:15 Shortform Notes Section\n04:24 Audible Notes Section\n05:37 Full Book Notes Section\n06:00 Template Properties\n06:29 Recommend Me Books to Read\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nMy Book Notes template: https://www.jeffsu.org/notion\nKajol's Channel: https://www.youtube.com/channel/UCihXRfro3g27m1ajn5p8pBQ\nAli Abdaal's Book Notes template video: https://youtu.be/AjoxkxM_I5g\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#shortform #notion #booknotes", "A Simple Book Notes Template (for Notion)!", "s8RnhqYYz3E", 1, 450, false, "https://www.youtube.com/watch?v=s8RnhqYYz3E", "/downloads/Jeff Su/2021-07-27 A Simple Book Notes Template (for Notion)!/A Simple Book Notes Template (for Notion)! [s8RnhqYYz3E].mp4", false, ~U[2021-07-27 13:00:32Z]] 16:58:33.227 [debug] QUERY OK source="sources" db=0.3ms idle=9.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.228 [debug] QUERY OK source="media_items" db=0.8ms idle=7.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-07-20 13:00:16Z], 1] 16:58:33.232 [debug] QUERY OK source="media_items" db=2.3ms idle=6.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=60\n\n✨ Is Notion even worth using if you can't make it look pretty? In this video I share 14 Notion Tips for Productivity broken down into 3 categories: (1) Time-saving tips, (2) Notion Organizational Tricks, and (3) Notion Aesthetic hacks. \n\nAlthough synced blocks is a new feature, I immediately saw a chance to use it in my Weekly Agenda template, and now it saves me an extra step of copying and pasting to-do's over to the next week. I also like to set reminders within specific Notion pages so I can go back to that block directly. The Notion Web Clipper tool is simply amazing: It lets me capture notes and ideas down so quickly when I'm just browsing the web! \n\nOf course, it wouldn't be a Jeff Su video without my favorite Notion Keyboard Shortcuts, and I share the ones I use everyday just to get things done a bit quicker 😉. Sorting your Notion databases correctly is also very important since Databases is such an important feature so I go through quite a few examples of my own Notion pages to (hopefully) provide you with some inspiration. \n\nShout-out to Thomas Frank for the Nested Columns trick as well! \n\nTIMESTAMPS\n00:00 Notion.new to Open a New Page\n00:54 Create Template Buttons in Notion\n01:48 How to Create Synced Blocks\n02:47 Set Reminders in Notion\n03:21 Best Notion Keyboard Shortcuts\n05:06 Use Notion Web Clipper Tool\n06:32 How to Sort Database in Notion\n07:22 Use Embedded Archived Pages\n07:55 Create Nested Columns in Notion\n08:58 Use Toggle Feature in Notion\n09:22 Link to Specific Blocks in Notion\n10:05 Use Custom Icons in Notion\n10:36 Use a Consistent Color Scheme\n11:01 Leave yourself a Comment in Notion\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nNotion Agenda Template video: https://youtu.be/sZB8OZoSIyU\nHow to take notes in Notion: https://youtu.be/vYKyTNlUHCo\nThomas Frank's Nested Columns video: https://youtu.be/VSayCRn61ZY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notionhq #tips #productivity", "Top 14 Notion Tips for Productivity!", "9db1a630-6dbc-47c0-b79c-6f7976892424", false, "ewCtvJ4rmJA", 1, [], 714, false, "https://www.youtube.com/watch?v=ewCtvJ4rmJA", 140, "/downloads/Jeff Su/2021-07-20 Top 14 Notion Tips for Productivity!/Top 14 Notion Tips for Productivity! [ewCtvJ4rmJA].mp4", false, false, 98, ~U[2021-07-20 13:00:16Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=60\n\n✨ Is Notion even worth using if you can't make it look pretty? In this video I share 14 Notion Tips for Productivity broken down into 3 categories: (1) Time-saving tips, (2) Notion Organizational Tricks, and (3) Notion Aesthetic hacks. \n\nAlthough synced blocks is a new feature, I immediately saw a chance to use it in my Weekly Agenda template, and now it saves me an extra step of copying and pasting to-do's over to the next week. I also like to set reminders within specific Notion pages so I can go back to that block directly. The Notion Web Clipper tool is simply amazing: It lets me capture notes and ideas down so quickly when I'm just browsing the web! \n\nOf course, it wouldn't be a Jeff Su video without my favorite Notion Keyboard Shortcuts, and I share the ones I use everyday just to get things done a bit quicker 😉. Sorting your Notion databases correctly is also very important since Databases is such an important feature so I go through quite a few examples of my own Notion pages to (hopefully) provide you with some inspiration. \n\nShout-out to Thomas Frank for the Nested Columns trick as well! \n\nTIMESTAMPS\n00:00 Notion.new to Open a New Page\n00:54 Create Template Buttons in Notion\n01:48 How to Create Synced Blocks\n02:47 Set Reminders in Notion\n03:21 Best Notion Keyboard Shortcuts\n05:06 Use Notion Web Clipper Tool\n06:32 How to Sort Database in Notion\n07:22 Use Embedded Archived Pages\n07:55 Create Nested Columns in Notion\n08:58 Use Toggle Feature in Notion\n09:22 Link to Specific Blocks in Notion\n10:05 Use Custom Icons in Notion\n10:36 Use a Consistent Color Scheme\n11:01 Leave yourself a Comment in Notion\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nNotion Agenda Template video: https://youtu.be/sZB8OZoSIyU\nHow to take notes in Notion: https://youtu.be/vYKyTNlUHCo\nThomas Frank's Nested Columns video: https://youtu.be/VSayCRn61ZY\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notionhq #tips #productivity", "Top 14 Notion Tips for Productivity!", "ewCtvJ4rmJA", 1, 714, false, "https://www.youtube.com/watch?v=ewCtvJ4rmJA", "/downloads/Jeff Su/2021-07-20 Top 14 Notion Tips for Productivity!/Top 14 Notion Tips for Productivity! [ewCtvJ4rmJA].mp4", false, ~U[2021-07-20 13:00:16Z]] 16:58:33.233 [debug] QUERY OK source="sources" db=0.4ms idle=9.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.235 [debug] QUERY OK source="media_items" db=1.5ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-07-13 13:00:16Z], 1] 16:58:33.239 [debug] QUERY OK source="media_items" db=2.5ms idle=8.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Apparently you lose all credibility by using Pie Charts 🥧, so in this video, I share 7 Data Storytelling Tips to Improve Your Presentations to colleagues, managers, and senior leadership!\n\nOne of the most important skills to build in the workplace is to present data in an effective way. Data by itself is useless, it's how you interpret and how you present that data that will separate you from your peers. Data Visualization often means creating graphs and charts that tell a compelling story - a story that captures the audience's attention and makes them want to take action.\n\nOne of my favorite data storytelling tips is to use color purposeful to highlight one or two important elements in your slide. Our brains are wired to recognize patterns so colors are great to focusing our audience's attention. Furthermore, waterfall charts (waterfall graphs) are amazing at showing how two numbers relate to one another. This type of graph is used by many consulting firms (most notably by McKinsey Consultants). \n\nComparison graphs are also great at bringing the data to life: What would happen if Option B happened instead of Option B? And can we put a number to the difference?\n\nTIMESTAMPS\n00:00 Why Data Storytelling Matters\n00:45 Never Present a Single Number\n01:37 Highlight 1 Focal Point\n02:35 Use Colors\n03:32 Use Consistent Formatting\n04:03 When to use Comparison Charts\n04:48 Use Appropriate Chart Types\n06:06 Use Stickers to Protect Yourself\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentation #chartsandgraphs #productivityatwork", "7 Effective Tips for Presenting Data at Work!", "eac2c51d-33d6-4570-8546-b58e3208d77c", false, "jizZKNnx9wA", 1, [], 452, false, "https://www.youtube.com/watch?v=jizZKNnx9wA", 141, "/downloads/Jeff Su/2021-07-13 7 Effective Tips for Presenting Data at Work!/7 Effective Tips for Presenting Data at Work! [jizZKNnx9wA].mp4", false, false, 98, ~U[2021-07-13 13:00:16Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "Apparently you lose all credibility by using Pie Charts 🥧, so in this video, I share 7 Data Storytelling Tips to Improve Your Presentations to colleagues, managers, and senior leadership!\n\nOne of the most important skills to build in the workplace is to present data in an effective way. Data by itself is useless, it's how you interpret and how you present that data that will separate you from your peers. Data Visualization often means creating graphs and charts that tell a compelling story - a story that captures the audience's attention and makes them want to take action.\n\nOne of my favorite data storytelling tips is to use color purposeful to highlight one or two important elements in your slide. Our brains are wired to recognize patterns so colors are great to focusing our audience's attention. Furthermore, waterfall charts (waterfall graphs) are amazing at showing how two numbers relate to one another. This type of graph is used by many consulting firms (most notably by McKinsey Consultants). \n\nComparison graphs are also great at bringing the data to life: What would happen if Option B happened instead of Option B? And can we put a number to the difference?\n\nTIMESTAMPS\n00:00 Why Data Storytelling Matters\n00:45 Never Present a Single Number\n01:37 Highlight 1 Focal Point\n02:35 Use Colors\n03:32 Use Consistent Formatting\n04:03 When to use Comparison Charts\n04:48 Use Appropriate Chart Types\n06:06 Use Stickers to Protect Yourself\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#presentation #chartsandgraphs #productivityatwork", "7 Effective Tips for Presenting Data at Work!", "jizZKNnx9wA", 1, 452, false, "https://www.youtube.com/watch?v=jizZKNnx9wA", "/downloads/Jeff Su/2021-07-13 7 Effective Tips for Presenting Data at Work!/7 Effective Tips for Presenting Data at Work! [jizZKNnx9wA].mp4", false, ~U[2021-07-13 13:00:16Z]] 16:58:33.240 [debug] QUERY OK source="sources" db=1.0ms idle=11.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.242 [debug] QUERY OK source="media_items" db=0.8ms idle=9.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-07-06 13:00:32Z], 1] 16:58:33.245 [debug] QUERY OK source="media_items" db=2.1ms idle=9.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🌄 Don't give Google Photos much thought? I don't blame you; it's a reliable - but perhaps a bit boring - tool. So in this video I'm going to share my top 15 Google Photos Tips for Productivity, and hopefully show you some amazing features you've never come across before!\n\nFor example, in the web version of Google Photos, Google automatically detects large files, blurry photos, and screenshots for you to delete and save on some storage! Gmail and Google Drive both eat into your storage space so you can go into those platforms and clean up as well. \n\nOn your Google Photos mobile app, you can setup backup options. Android users get a big more control since they're able to choose which photos are included in Google Photos backup and sync. iPhone users are able to turn on Sync favorites so their \"Favorited Photos\" in Apple Photos will be \"Favorited\" in Google Photos as well.\n\nI also walk you through some of the Albums I personally create for Google Photos, and the auto-rotate feature within Google Photos editing tool can come in handy as well! \n\nHave fun with your (new and improved) Google Photos! 😁\n\nTIMESTAMPS\n00:00 Create GIFs using Google Photos\n01:05 Google Photos Storage Management\n03:38 Google Photo Album Tips\n04:43 Editing on Google Photos\n05:59 Google Photos Power Tips\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nCheck your own storage - https://www.photos.google.com/storage\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlePhotos #productivity #picturePerfect", "Top 15 Google Photos Tips for Productivity!", "81671d60-53f5-4558-a07f-c8bed4680fa0", false, "rs0fLVEM8Ow", 1, [], 503, false, "https://www.youtube.com/watch?v=rs0fLVEM8Ow", 142, "/downloads/Jeff Su/2021-07-06 Top 15 Google Photos Tips for Productivity!/Top 15 Google Photos Tips for Productivity! [rs0fLVEM8Ow].mp4", false, false, 98, ~U[2021-07-06 13:00:32Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "🌄 Don't give Google Photos much thought? I don't blame you; it's a reliable - but perhaps a bit boring - tool. So in this video I'm going to share my top 15 Google Photos Tips for Productivity, and hopefully show you some amazing features you've never come across before!\n\nFor example, in the web version of Google Photos, Google automatically detects large files, blurry photos, and screenshots for you to delete and save on some storage! Gmail and Google Drive both eat into your storage space so you can go into those platforms and clean up as well. \n\nOn your Google Photos mobile app, you can setup backup options. Android users get a big more control since they're able to choose which photos are included in Google Photos backup and sync. iPhone users are able to turn on Sync favorites so their \"Favorited Photos\" in Apple Photos will be \"Favorited\" in Google Photos as well.\n\nI also walk you through some of the Albums I personally create for Google Photos, and the auto-rotate feature within Google Photos editing tool can come in handy as well! \n\nHave fun with your (new and improved) Google Photos! 😁\n\nTIMESTAMPS\n00:00 Create GIFs using Google Photos\n01:05 Google Photos Storage Management\n03:38 Google Photo Album Tips\n04:43 Editing on Google Photos\n05:59 Google Photos Power Tips\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nCheck your own storage - https://www.photos.google.com/storage\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googlePhotos #productivity #picturePerfect", "Top 15 Google Photos Tips for Productivity!", "rs0fLVEM8Ow", 1, 503, false, "https://www.youtube.com/watch?v=rs0fLVEM8Ow", "/downloads/Jeff Su/2021-07-06 Top 15 Google Photos Tips for Productivity!/Top 15 Google Photos Tips for Productivity! [rs0fLVEM8Ow].mp4", false, ~U[2021-07-06 13:00:32Z]] 16:58:33.246 [debug] QUERY OK source="sources" db=0.3ms idle=10.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.247 [debug] QUERY OK source="media_items" db=0.9ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-06-29 13:00:06Z], 1] 16:58:33.272 [debug] QUERY OK source="media_items" db=23.1ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["👨🏻\u200D🎓 Having been in the \"corporate life\" for the past 7 years, I recently looked back at some of the mistakes, learnings, and takeaways from this period of my life and in this video, I share the 5 Lessons from the First Years of My Career!\n\nFirst, I learned how to quickly build credibility with colleagues even when I had relatively little work experience. I also observed colleagues who seemed to be able to influence others effectively even when they didn't hold a senior job title. \n\nI have also regularly come across terms such as \"visibility,\" \"presence,\" and \"exposure\" and they're often associated with job promotions and salary raises, yet many young professionals (myself included) have a misconception as to HOW we should go about becoming more visible in the workplace. \n\nBurnout is also a very real issue nowadays so how should we go about saying \"no\" to others (especially senior stakeholders) without inadvertently damaging a work relationship? \n\nFinally, I share a bad habit I picked up in college: assuming all networking events needed to have a purpose - to benefit me. When in reality keeping an open mind and being genuinely curious about others' work may open doors you never even considered of previously! \n\nTIMESTAMPS\n00:00 Intro\n00:21 Build Credibility with Colleagues\n01:45 Influence Without Authority\n03:08 Visibility in the Workplace\n04:50 How to Say \"No\"\n06:28 Network with an Open Mind\n07:52 Bonus Surprise :)\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGmail Tips and Tricks - https://youtu.be/DPWVEL4UNi0\nHarvard Business Review Article - https://hbr.org/2008/02/exerting-influence-without-aut\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#career #professional #workplace", "5 Things I Wish I Knew Before Joining FAANG!", "ee9d673e-a58b-49bc-8e91-9834e448f395", false, "Im7O5zkQIwY", 1, [], 485, false, "https://www.youtube.com/watch?v=Im7O5zkQIwY", 143, "/downloads/Jeff Su/2021-06-29 5 Things I Wish I Knew Before Joining FAANG!/5 Things I Wish I Knew Before Joining FAANG! [Im7O5zkQIwY].mp4", false, false, 98, ~U[2021-06-29 13:00:06Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "👨🏻\u200D🎓 Having been in the \"corporate life\" for the past 7 years, I recently looked back at some of the mistakes, learnings, and takeaways from this period of my life and in this video, I share the 5 Lessons from the First Years of My Career!\n\nFirst, I learned how to quickly build credibility with colleagues even when I had relatively little work experience. I also observed colleagues who seemed to be able to influence others effectively even when they didn't hold a senior job title. \n\nI have also regularly come across terms such as \"visibility,\" \"presence,\" and \"exposure\" and they're often associated with job promotions and salary raises, yet many young professionals (myself included) have a misconception as to HOW we should go about becoming more visible in the workplace. \n\nBurnout is also a very real issue nowadays so how should we go about saying \"no\" to others (especially senior stakeholders) without inadvertently damaging a work relationship? \n\nFinally, I share a bad habit I picked up in college: assuming all networking events needed to have a purpose - to benefit me. When in reality keeping an open mind and being genuinely curious about others' work may open doors you never even considered of previously! \n\nTIMESTAMPS\n00:00 Intro\n00:21 Build Credibility with Colleagues\n01:45 Influence Without Authority\n03:08 Visibility in the Workplace\n04:50 How to Say \"No\"\n06:28 Network with an Open Mind\n07:52 Bonus Surprise :)\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGmail Tips and Tricks - https://youtu.be/DPWVEL4UNi0\nHarvard Business Review Article - https://hbr.org/2008/02/exerting-influence-without-aut\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#career #professional #workplace", "5 Things I Wish I Knew Before Joining FAANG!", "Im7O5zkQIwY", 1, 485, false, "https://www.youtube.com/watch?v=Im7O5zkQIwY", "/downloads/Jeff Su/2021-06-29 5 Things I Wish I Knew Before Joining FAANG!/5 Things I Wish I Knew Before Joining FAANG! [Im7O5zkQIwY].mp4", false, ~U[2021-06-29 13:00:06Z]] 16:58:33.273 [debug] QUERY OK source="sources" db=0.4ms idle=30.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.274 [debug] QUERY OK source="media_items" db=0.9ms idle=28.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-06-22 13:00:15Z], 1] 16:58:33.278 [debug] QUERY OK source="media_items" db=2.3ms idle=29.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=056\n\n🌐 Over 60% of people in the world use Google Chrome as their main browser, so there's a good chance this video on the Top 8 Productivity Tips for Google Chrome is applicable to you 👍🏻\n\nIf you use a lot of Chrome extensions for work, did you know you could actually connect them to keyboard shortcuts of your choosing? Talk about an increase in productivity\n\nOR - if you don't want your work Chrome extensions in your personal Chrome account, you could create a Chrome User Profile that is COMPLETELY separate from your work Google account. This helped me become more efficient since I didn't have to toggle between 2 different browsers. \n\nWorkflow-wise, I like to keep related websites, links, online documents (i.e. for a single project) together in the same Bookmarks folder for easy access. I also like to keep the tabs I know I use all the time pinned to the left (Gmail, Calendar, Keep, Drive). \n\nAnd of course, we can't forget about Custom Search Engines on Chrome! You can literally search within any website - that has a search function built in - from the Google Chrome address bar, how cool is that?! 🤯\n\nTIMESTAMPS\n00:00 Chrome Extension Shortcut Trick\n01:00 Bookmark Related Tabs Together\n02:00 Create Chrome User Profiles\n03:49 Add Custom Search Engines\n05:31 Use a Focused Work Window\n06:05 Quickly Find Specific Tabs\n06:56 Manage Tabs Efficiently\n07:34 Best Chrome Keyboard Shortcuts\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nChrome extension keyboard shortcuts - chrome://extensions/shortcuts\nGoogle Chrome User Profile article - https://www.makeuseof.com/tag/custom-chrome-browser-profiles/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#chrome #productivity #tipsandtricks", "Top 8 Productivity Tips for Google Chrome", "e04c622c-3db6-471c-8089-ff157d9f9c7a", false, "KXY-2fIAksY", 1, [], 499, false, "https://www.youtube.com/watch?v=KXY-2fIAksY", 144, "/downloads/Jeff Su/2021-06-22 Top 8 Productivity Tips for Google Chrome/Top 8 Productivity Tips for Google Chrome [KXY-2fIAksY].mp4", false, false, 98, ~U[2021-06-22 13:00:15Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=056\n\n🌐 Over 60% of people in the world use Google Chrome as their main browser, so there's a good chance this video on the Top 8 Productivity Tips for Google Chrome is applicable to you 👍🏻\n\nIf you use a lot of Chrome extensions for work, did you know you could actually connect them to keyboard shortcuts of your choosing? Talk about an increase in productivity\n\nOR - if you don't want your work Chrome extensions in your personal Chrome account, you could create a Chrome User Profile that is COMPLETELY separate from your work Google account. This helped me become more efficient since I didn't have to toggle between 2 different browsers. \n\nWorkflow-wise, I like to keep related websites, links, online documents (i.e. for a single project) together in the same Bookmarks folder for easy access. I also like to keep the tabs I know I use all the time pinned to the left (Gmail, Calendar, Keep, Drive). \n\nAnd of course, we can't forget about Custom Search Engines on Chrome! You can literally search within any website - that has a search function built in - from the Google Chrome address bar, how cool is that?! 🤯\n\nTIMESTAMPS\n00:00 Chrome Extension Shortcut Trick\n01:00 Bookmark Related Tabs Together\n02:00 Create Chrome User Profiles\n03:49 Add Custom Search Engines\n05:31 Use a Focused Work Window\n06:05 Quickly Find Specific Tabs\n06:56 Manage Tabs Efficiently\n07:34 Best Chrome Keyboard Shortcuts\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nChrome extension keyboard shortcuts - chrome://extensions/shortcuts\nGoogle Chrome User Profile article - https://www.makeuseof.com/tag/custom-chrome-browser-profiles/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#chrome #productivity #tipsandtricks", "Top 8 Productivity Tips for Google Chrome", "KXY-2fIAksY", 1, 499, false, "https://www.youtube.com/watch?v=KXY-2fIAksY", "/downloads/Jeff Su/2021-06-22 Top 8 Productivity Tips for Google Chrome/Top 8 Productivity Tips for Google Chrome [KXY-2fIAksY].mp4", false, ~U[2021-06-22 13:00:15Z]] 16:58:33.278 [debug] QUERY OK source="sources" db=0.3ms idle=31.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.280 [debug] QUERY OK source="media_items" db=1.0ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-06-15 13:00:25Z], 1] 16:58:33.283 [debug] QUERY OK source="media_items" db=2.2ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=055\n\nPurchase the Editable Google Doc file: https://jeffsu.gumroad.com/l/DCulQJ\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n📮 A good cover letter complements your resume by telling a story about why you deserve that first round interview. In this video, I share 3 Practical Tips on how to Write an Amazing Cover Letter, and even include a free sample template for you to download.\n\nFor those of you who have never written a cover letter, or perhaps it's been a while since you wrote one, it could be difficult to start, since there are really no standardized template. A cover letter for an internship would be different than that for a full time job. And sometimes, the job application says submitting a cover letter is \"optional\" so should you even bother? 🤔\n\nI walk you through step-by-step on how to write an amazing cover letter and even provide an example cover letter for you to reference:\n\n1️⃣ Hook the reader in by mentioning a connection with the company\n2️⃣ Be purposeful about the information you include in your cover letter body paragraphs\n3️⃣ Use a simple cover letter template\n\nNow that you have an amazing cover letter, check out my video on how to write an incredible resume and best of luck in your job search 😁\n\nTIMESTAMPS\n00:00 Intro\n00:51 Hook the Reader \n03:48 Be Purposeful \n05:32 Use a Simple Template\n06:16 Secret Power Tip\n06:45 Template Download\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Teal - https://get.tealhq.com/jeffsu\n\nRESOURCES I MENTION IN THE VIDEO\nCover Letter Mistakes You MUST Avoid - https://youtu.be/xudcyY06PiI\nBest Informational Interview Questions to ask during Coffee Chat - https://youtu.be/4b2iagdHw8M\nWrite an Incredible Resume video - https://youtu.be/Tt08KmFfIYQ\nG2 Website - https://www.g2.com/\nCapterra Website - https://www.capterra.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#coverletter #jobsearch #success", "Write an Amazing Cover Letter: 3 Golden Rules (Template included)", "cd80b8a5-0ba0-447d-b01a-986b56e4f32a", false, "NUhDP30IRKk", 1, [], 445, false, "https://www.youtube.com/watch?v=NUhDP30IRKk", 145, "/downloads/Jeff Su/2021-06-15 Write an Amazing Cover Letter: 3 Golden Rules (Template included)/Write an Amazing Cover Letter: 3 Golden Rules (Template included) [NUhDP30IRKk].mp4", false, false, 98, ~U[2021-06-15 13:00:25Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=055\n\nPurchase the Editable Google Doc file: https://jeffsu.gumroad.com/l/DCulQJ\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n📮 A good cover letter complements your resume by telling a story about why you deserve that first round interview. In this video, I share 3 Practical Tips on how to Write an Amazing Cover Letter, and even include a free sample template for you to download.\n\nFor those of you who have never written a cover letter, or perhaps it's been a while since you wrote one, it could be difficult to start, since there are really no standardized template. A cover letter for an internship would be different than that for a full time job. And sometimes, the job application says submitting a cover letter is \"optional\" so should you even bother? 🤔\n\nI walk you through step-by-step on how to write an amazing cover letter and even provide an example cover letter for you to reference:\n\n1️⃣ Hook the reader in by mentioning a connection with the company\n2️⃣ Be purposeful about the information you include in your cover letter body paragraphs\n3️⃣ Use a simple cover letter template\n\nNow that you have an amazing cover letter, check out my video on how to write an incredible resume and best of luck in your job search 😁\n\nTIMESTAMPS\n00:00 Intro\n00:51 Hook the Reader \n03:48 Be Purposeful \n05:32 Use a Simple Template\n06:16 Secret Power Tip\n06:45 Template Download\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Teal - https://get.tealhq.com/jeffsu\n\nRESOURCES I MENTION IN THE VIDEO\nCover Letter Mistakes You MUST Avoid - https://youtu.be/xudcyY06PiI\nBest Informational Interview Questions to ask during Coffee Chat - https://youtu.be/4b2iagdHw8M\nWrite an Incredible Resume video - https://youtu.be/Tt08KmFfIYQ\nG2 Website - https://www.g2.com/\nCapterra Website - https://www.capterra.com/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#coverletter #jobsearch #success", "Write an Amazing Cover Letter: 3 Golden Rules (Template included)", "NUhDP30IRKk", 1, 445, false, "https://www.youtube.com/watch?v=NUhDP30IRKk", "/downloads/Jeff Su/2021-06-15 Write an Amazing Cover Letter: 3 Golden Rules (Template included)/Write an Amazing Cover Letter: 3 Golden Rules (Template included) [NUhDP30IRKk].mp4", false, ~U[2021-06-15 13:00:25Z]] 16:58:33.284 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.286 [debug] QUERY OK source="media_items" db=0.9ms idle=7.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-06-08 13:30:00Z], 1] 16:58:33.289 [debug] QUERY OK source="media_items" db=2.2ms idle=7.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🤫 Who knew you could be productive while on YouTube? In this video I share 7 Productivity Secrets for YOUTUBE You Need to Know, including tips like intentionally managing your home feed so YouTube recommends you less \"sticky content.\" \n\nA not-so-secret trick I love to use is to turn on YouTube Incognito Mode using the CMD+SHIFT+N shortcut and watching my guilty pleasures (e.g. Hearthstone gameplay) while eating. I do this since I don't want my regular YouTube recommendations to be skewed.\n\nOther YouTube Tips and Tricks include using the Find Function (CMD+F) with the Transcribe feature to quickly jump to specific segments of YouTube videos. Another tip I use all the time is to copy the video URL at the current time, so when I send it to my colleagues, they can open up the video at that exact time! \n\nFinally, you can even search within YouTube channels for \"subset\" of topics using the magnifying glass on the channel page. With these tips, hopefully you can prove to others that you can still be productive even while on YouTube! \n\nTIMESTAMPS\n00:00 Skit\n00:40 Incognito mode to protect recommendations\n01:20 Intentionally manage your home feed\n02:04 Insert audio clips into presentations\n03:41 Best YouTube keyboard shortcuts\n05:20 Find + Transcribe function\n06:09 Hyperlink video at specific time\n07:04 Perform targeted search\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Drive Tips for Productivity - https://youtu.be/xhEr6ONZF6A\nGoogle Slides Tips for Productivity - https://youtu.be/iU5iweN2IOM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#youtube #productivity #secrets", "7 Productivity Secrets for Watching YouTube Videos!", "757d03fb-19f5-4aa5-ae47-7693be24a093", false, "5wewhjpsO3c", 1, [], 496, false, "https://www.youtube.com/watch?v=5wewhjpsO3c", 146, "/downloads/Jeff Su/2021-06-08 7 Productivity Secrets for Watching YouTube Videos!/7 Productivity Secrets for Watching YouTube Videos! [5wewhjpsO3c].mp4", false, false, 98, ~U[2021-06-08 13:30:00Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "🤫 Who knew you could be productive while on YouTube? In this video I share 7 Productivity Secrets for YOUTUBE You Need to Know, including tips like intentionally managing your home feed so YouTube recommends you less \"sticky content.\" \n\nA not-so-secret trick I love to use is to turn on YouTube Incognito Mode using the CMD+SHIFT+N shortcut and watching my guilty pleasures (e.g. Hearthstone gameplay) while eating. I do this since I don't want my regular YouTube recommendations to be skewed.\n\nOther YouTube Tips and Tricks include using the Find Function (CMD+F) with the Transcribe feature to quickly jump to specific segments of YouTube videos. Another tip I use all the time is to copy the video URL at the current time, so when I send it to my colleagues, they can open up the video at that exact time! \n\nFinally, you can even search within YouTube channels for \"subset\" of topics using the magnifying glass on the channel page. With these tips, hopefully you can prove to others that you can still be productive even while on YouTube! \n\nTIMESTAMPS\n00:00 Skit\n00:40 Incognito mode to protect recommendations\n01:20 Intentionally manage your home feed\n02:04 Insert audio clips into presentations\n03:41 Best YouTube keyboard shortcuts\n05:20 Find + Transcribe function\n06:09 Hyperlink video at specific time\n07:04 Perform targeted search\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Drive Tips for Productivity - https://youtu.be/xhEr6ONZF6A\nGoogle Slides Tips for Productivity - https://youtu.be/iU5iweN2IOM\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#youtube #productivity #secrets", "7 Productivity Secrets for Watching YouTube Videos!", "5wewhjpsO3c", 1, 496, false, "https://www.youtube.com/watch?v=5wewhjpsO3c", "/downloads/Jeff Su/2021-06-08 7 Productivity Secrets for Watching YouTube Videos!/7 Productivity Secrets for Watching YouTube Videos! [5wewhjpsO3c].mp4", false, ~U[2021-06-08 13:30:00Z]] 16:58:33.290 [debug] QUERY OK source="sources" db=0.4ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.291 [debug] QUERY OK source="media_items" db=0.9ms idle=7.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-06-01 13:15:01Z], 1] 16:58:33.294 [debug] QUERY OK source="media_items" db=1.7ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🤯 It's been exactly 1 year since I uploaded my first ever video here on YouTube. Whether you came across my videos today or sometime within the past year...thank you. \n\nI hope you found some sort of value and I promise I'm going to continue making useful content for all of you, so...let's get started 😁\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#youtubeversary #1year #thankyou", "Thank you, for watching", "485e8e9e-1167-40c4-b2be-542a4d62c625", false, "d_IfQJP3aGU", 1, [], 134, false, "https://www.youtube.com/watch?v=d_IfQJP3aGU", 147, "/downloads/Jeff Su/2021-06-01 Thank you, for watching/Thank you, for watching [d_IfQJP3aGU].mp4", false, false, 98, ~U[2021-06-01 13:15:01Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "🤯 It's been exactly 1 year since I uploaded my first ever video here on YouTube. Whether you came across my videos today or sometime within the past year...thank you. \n\nI hope you found some sort of value and I promise I'm going to continue making useful content for all of you, so...let's get started 😁\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#youtubeversary #1year #thankyou", "Thank you, for watching", "d_IfQJP3aGU", 1, 134, false, "https://www.youtube.com/watch?v=d_IfQJP3aGU", "/downloads/Jeff Su/2021-06-01 Thank you, for watching/Thank you, for watching [d_IfQJP3aGU].mp4", false, ~U[2021-06-01 13:15:01Z]] 16:58:33.295 [debug] QUERY OK source="sources" db=0.3ms idle=8.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.296 [debug] QUERY OK source="media_items" db=0.9ms idle=6.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-05-25 14:00:02Z], 1] 16:58:33.299 [debug] QUERY OK source="media_items" db=2.2ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📡 Everyone knows that \"communications\" is an essential soft skill, but what exactly does that actually mean, and how does one get better at it? In this video I share the 1 tip to improve your communication skills at work in order to help you build credibility with clients, peers, and managers.\n\nMultiple studies have shown time and time again that employers value communication skills in their workforce - be it new or experienced hires - since there are real consequences if communications break down in corporate environments.\n\nIn this video I share a realistic situation that most, if not all, working professionals would face at work, and what a strong communicator would do in that situation. The Bottom Line Up Front method is used by management consultants and product marketers alike and now it goes by many other names, like Top Down Communication and The Pyramid Principle. \n\nThis video shows you the power of being a strong, professional communicator at work, share specific examples so you can identify the situations when you encounter them, and the one tip you can use to improve communication skills at work.\n\nTIMESTAMPS\n00:00 Intro\n00:46 Importance of communication skills\n02:02 Realistic example we all face at work\n03:39 Why BLUF is so powerful \n04:22 How you can practice\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nFirm Learning's video on communication - https://youtu.be/ppokRtCeuyI\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#BLUF #communication #productivityatwork", "The 1 Tip to Improve Your Communication Skills at Work", "9c291677-52fd-48c9-92e2-084b478d54dd", false, "8bZGi3yz4qg", 1, [], 400, false, "https://www.youtube.com/watch?v=8bZGi3yz4qg", 148, "/downloads/Jeff Su/2021-05-25 The 1 Tip to Improve Your Communication Skills at Work/The 1 Tip to Improve Your Communication Skills at Work [8bZGi3yz4qg].mp4", false, false, 98, ~U[2021-05-25 14:00:02Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "📡 Everyone knows that \"communications\" is an essential soft skill, but what exactly does that actually mean, and how does one get better at it? In this video I share the 1 tip to improve your communication skills at work in order to help you build credibility with clients, peers, and managers.\n\nMultiple studies have shown time and time again that employers value communication skills in their workforce - be it new or experienced hires - since there are real consequences if communications break down in corporate environments.\n\nIn this video I share a realistic situation that most, if not all, working professionals would face at work, and what a strong communicator would do in that situation. The Bottom Line Up Front method is used by management consultants and product marketers alike and now it goes by many other names, like Top Down Communication and The Pyramid Principle. \n\nThis video shows you the power of being a strong, professional communicator at work, share specific examples so you can identify the situations when you encounter them, and the one tip you can use to improve communication skills at work.\n\nTIMESTAMPS\n00:00 Intro\n00:46 Importance of communication skills\n02:02 Realistic example we all face at work\n03:39 Why BLUF is so powerful \n04:22 How you can practice\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nFirm Learning's video on communication - https://youtu.be/ppokRtCeuyI\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#BLUF #communication #productivityatwork", "The 1 Tip to Improve Your Communication Skills at Work", "8bZGi3yz4qg", 1, 400, false, "https://www.youtube.com/watch?v=8bZGi3yz4qg", "/downloads/Jeff Su/2021-05-25 The 1 Tip to Improve Your Communication Skills at Work/The 1 Tip to Improve Your Communication Skills at Work [8bZGi3yz4qg].mp4", false, ~U[2021-05-25 14:00:02Z]] 16:58:33.300 [debug] QUERY OK source="sources" db=0.3ms idle=8.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.302 [debug] QUERY OK source="media_items" db=0.9ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-05-18 13:00:00Z], 1] 16:58:33.305 [debug] QUERY OK source="media_items" db=2.3ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=051\n\n💡 I basically view Google Keep as a place to store all my \"off-email\" thoughts, ideas and to-do's; so in this video, I share with you the 8 Tips I use to KEEP Track of Things Productively 😉 (you can expect a lot more puns in this video)\n\nThere are no \"right\" or \"wrong\" ways to use Google Keep, but when used effectively, this tool is great for productivity at work. So how do you use Google Keep efficiently? First you want to get familiar with the label, color, and archive feature and functions. \n\nThe most important Google Keep tip: after every single note you take, make sure you label it appropriately (according to your needs) and color-code it to remind yourself what action (if any) you need to take. This is the best way I've found to keep my Google Keep notes clean and organized!\n\nAfter mastering these 8 tips, you're going to be using Google Keep notes like a pro and increase your productivity with this tool like no other! Enjoy 😁\n\nTIMESTAMPS\n00:00 Related Notes\n00:58 My Google Keep Setup\n01:47 Quickly Create Notes or Lists\n02:19 Manage Google Keep Labels\n03:59 Search Notes by Color\n04:46 Easily Access Pinned Notes\n05:33 Manage Checklists\n06:27 Capture and Store Business Cards\n07:29 Make Bulk Edits to Keep Notes\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\n\nRed - https://keep.google.com/u/0/#search/color%3Dred\nYellow - https://keep.google.com/u/0/#search/color%3Dyellow\nBlue - https://keep.google.com/u/0/#search/color%3Dblue\nDark Blue - https://keep.google.com/u/0/#search/color%3Dcerulean\nGray - https://keep.google.com/u/0/#search/color%3Dgray\nTeal - https://keep.google.com/u/0/#search/color%3Dteal\nGreen - https://keep.google.com/u/0/#search/color%3Dgreen\nOrange - https://keep.google.com/u/0/#search/color%3Dorange\nPurple - https://keep.google.com/u/0/#search/color%3Dpurple\nPink - https://keep.google.com/u/0/#search/color%3Dpink\nBrown - https://keep.google.com/u/0/#search/color%3Dbrown\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleKeep #notes #productivityatwork", "8 Tips to KEEP Track of Things Productively!", "36a9cb51-74e7-40ff-92d3-87c7a9cd3ed9", false, "-jCyuBLLcvs", 1, [], 492, false, "https://www.youtube.com/watch?v=-jCyuBLLcvs", 149, "/downloads/Jeff Su/2021-05-18 8 Tips to KEEP Track of Things Productively!/8 Tips to KEEP Track of Things Productively! [-jCyuBLLcvs].mp4", false, false, 98, ~U[2021-05-18 13:00:00Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=051\n\n💡 I basically view Google Keep as a place to store all my \"off-email\" thoughts, ideas and to-do's; so in this video, I share with you the 8 Tips I use to KEEP Track of Things Productively 😉 (you can expect a lot more puns in this video)\n\nThere are no \"right\" or \"wrong\" ways to use Google Keep, but when used effectively, this tool is great for productivity at work. So how do you use Google Keep efficiently? First you want to get familiar with the label, color, and archive feature and functions. \n\nThe most important Google Keep tip: after every single note you take, make sure you label it appropriately (according to your needs) and color-code it to remind yourself what action (if any) you need to take. This is the best way I've found to keep my Google Keep notes clean and organized!\n\nAfter mastering these 8 tips, you're going to be using Google Keep notes like a pro and increase your productivity with this tool like no other! Enjoy 😁\n\nTIMESTAMPS\n00:00 Related Notes\n00:58 My Google Keep Setup\n01:47 Quickly Create Notes or Lists\n02:19 Manage Google Keep Labels\n03:59 Search Notes by Color\n04:46 Easily Access Pinned Notes\n05:33 Manage Checklists\n06:27 Capture and Store Business Cards\n07:29 Make Bulk Edits to Keep Notes\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\n\nRed - https://keep.google.com/u/0/#search/color%3Dred\nYellow - https://keep.google.com/u/0/#search/color%3Dyellow\nBlue - https://keep.google.com/u/0/#search/color%3Dblue\nDark Blue - https://keep.google.com/u/0/#search/color%3Dcerulean\nGray - https://keep.google.com/u/0/#search/color%3Dgray\nTeal - https://keep.google.com/u/0/#search/color%3Dteal\nGreen - https://keep.google.com/u/0/#search/color%3Dgreen\nOrange - https://keep.google.com/u/0/#search/color%3Dorange\nPurple - https://keep.google.com/u/0/#search/color%3Dpurple\nPink - https://keep.google.com/u/0/#search/color%3Dpink\nBrown - https://keep.google.com/u/0/#search/color%3Dbrown\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleKeep #notes #productivityatwork", "8 Tips to KEEP Track of Things Productively!", "-jCyuBLLcvs", 1, 492, (truncated) 16:58:33.306 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [1] 16:58:33.307 [debug] QUERY OK source="media_items" db=0.9ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-05-11 13:15:01Z], 1] 16:58:33.310 [debug] QUERY OK source="media_items" db=2.0ms idle=7.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🎯 Download Todoist for free - https://geni.us/jefftodoist\n\n🧠 Science has shown that at most we can hold 2-4 tasks in our minds at any given time. In this video, I share the Todoist, Notion, and Google Calendar workflow I follow everyday that helps me remember everything I need to do and most importantly, get things done! \n\nSo how do I never forget a single task? Simple. CPR. \n\n1️⃣ Capture: Write down thoughts and ideas the instant they formulate in your mind (I use Todoist, but any to-do app will do) \n\n2️⃣ Process: Place those thoughts and ideas in their corresponding buckets \n\n3️⃣ Review: Figure out which ones to act on, which ones to archive\n\nSince reading David Allen's book Getting Things Done, I have adopted a version of his Getting Things Done (GTD) system that works wonders for me. While I am nowhere close to perfect, I have noticed the only tasks I do forget now are the ones I do not capture down immediately\n\nSo this method definitely works if you are curious on how to be more productive, how to concentrate more (at school or at work). Or you might simply wanted to learn how to use Todoist and Notion, and curious about the Todoist and Notion workflows I use in my GTD system!\n\nTIMESTAMPS\n00:00 Intro\n00:53 Capture \n01:29 Capture example\n03:11 Process\n05:27 Review \n06:40 Summary\n\nRESOURCES I MENTION IN THE VIDEO\nNotion Weekly Agenda Video - https://youtu.be/sZB8OZoSIyU\nTake Notes on Notion Video - https://youtu.be/vYKyTNlUHCo\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎯 Todoist - https://geni.us/jefftodoist\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#GTD #productivity #Todoist", "How I Never Forget a Single Task (Todoist + Notion Workflow)", "202976d2-9724-4259-bd91-1a8f21708f94", false, "bP8wTapHsbc", 1, [], 439, false, "https://www.youtube.com/watch?v=bP8wTapHsbc", 150, "/downloads/Jeff Su/2021-05-11 How I Never Forget a Single Task (Todoist + Notion Workflow)/How I Never Forget a Single Task (Todoist + Notion Workflow) [bP8wTapHsbc].mp4", false, false, 98, ~U[2021-05-11 13:15:01Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n🎯 Download Todoist for free - https://geni.us/jefftodoist\n\n🧠 Science has shown that at most we can hold 2-4 tasks in our minds at any given time. In this video, I share the Todoist, Notion, and Google Calendar workflow I follow everyday that helps me remember everything I need to do and most importantly, get things done! \n\nSo how do I never forget a single task? Simple. CPR. \n\n1️⃣ Capture: Write down thoughts and ideas the instant they formulate in your mind (I use Todoist, but any to-do app will do) \n\n2️⃣ Process: Place those thoughts and ideas in their corresponding buckets \n\n3️⃣ Review: Figure out which ones to act on, which ones to archive\n\nSince reading David Allen's book Getting Things Done, I have adopted a version of his Getting Things Done (GTD) system that works wonders for me. While I am nowhere close to perfect, I have noticed the only tasks I do forget now are the ones I do not capture down immediately\n\nSo this method definitely works if you are curious on how to be more productive, how to concentrate more (at school or at work). Or you might simply wanted to learn how to use Todoist and Notion, and curious about the Todoist and Notion workflows I use in my GTD system!\n\nTIMESTAMPS\n00:00 Intro\n00:53 Capture \n01:29 Capture example\n03:11 Process\n05:27 Review \n06:40 Summary\n\nRESOURCES I MENTION IN THE VIDEO\nNotion Weekly Agenda Video - https://youtu.be/sZB8OZoSIyU\nTake Notes on Notion Video - https://youtu.be/vYKyTNlUHCo\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎯 Todoist - https://geni.us/jefftodoist\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#GTD #productivity #Todoist", "How I Never Forget a Single Task (Todoist + Notion Workflow)", "bP8wTapHsbc", 1, 439, false, "https://www.youtube.com/watch?v=bP8wTapHsbc", "/downloads/Jeff Su/2021-05-11 How I Never Forget a Single Task (Todoist + Notion Workflow)/How I Never Forget a Single Task (Todoist + Notion Workflow) [bP8wTapHsbc].mp4", false, ~U[2021-05-11 13:15:01Z]] 16:58:33.312 [debug] QUERY OK source="sources" db=0.9ms idle=9.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.313 [debug] QUERY OK source="media_items" db=0.9ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-05-04 13:00:22Z], 1] 16:58:33.316 [debug] QUERY OK source="media_items" db=2.0ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Grab my Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=49\n\n🧑🏻\u200D💼 Let's get one thing clear: taking notes for work is not - and should not be - the same as taking notes for personal or academic use. In this note-taking tutorial for professionals, I draw from my experiences as Product Marketer and as a former Management Consultant and share exactly how to take notes for work.\n\nNot only do I share the note-taking technique I developed specifically for work over the past 7 years, I also provide you with templates so you can implement these professional note-taking concepts immediately. Whether you manage projects as a product marketer or management consultant, you are under a lot of time pressure to take accurate notes. \n\nYou will still benefit from this video even if you are a student looking for note-taking techniques on how to study in college because while other YouTube videos teach you how to take pretty notes, the note-taking method in this video is action-oriented, it pushes you to get work done. \n\nLet's dive in ✍️\n\nTIMESTAMPS\n00:00 Intro\n00:09 Why work notes are different\n01:08 Guiding principles\n02:25 Meeting notes for myself\n05:03 Meeting notes for 1 team\n07:52 Meeting notes for multiple teams\n09:15 Download templates\n\nRESOURCES I MENTION IN THE VIDEO\nGrab my Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=49\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#takeNotesForWork #notetaking #productivity", "How to Take Notes for Work | Note-taking Tutorial for Professionals", "4773512b-4486-4d75-8afb-5dae9e98f532", false, "T0qhJdHLJTc", 1, [], 584, false, "https://www.youtube.com/watch?v=T0qhJdHLJTc", 151, "/downloads/Jeff Su/2021-05-04 How to Take Notes for Work | Note-taking Tutorial for Professionals/How to Take Notes for Work | Note-taking Tutorial for Professionals [T0qhJdHLJTc].mp4", false, false, 98, ~U[2021-05-04 13:00:22Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "Grab my Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=49\n\n🧑🏻\u200D💼 Let's get one thing clear: taking notes for work is not - and should not be - the same as taking notes for personal or academic use. In this note-taking tutorial for professionals, I draw from my experiences as Product Marketer and as a former Management Consultant and share exactly how to take notes for work.\n\nNot only do I share the note-taking technique I developed specifically for work over the past 7 years, I also provide you with templates so you can implement these professional note-taking concepts immediately. Whether you manage projects as a product marketer or management consultant, you are under a lot of time pressure to take accurate notes. \n\nYou will still benefit from this video even if you are a student looking for note-taking techniques on how to study in college because while other YouTube videos teach you how to take pretty notes, the note-taking method in this video is action-oriented, it pushes you to get work done. \n\nLet's dive in ✍️\n\nTIMESTAMPS\n00:00 Intro\n00:09 Why work notes are different\n01:08 Guiding principles\n02:25 Meeting notes for myself\n05:03 Meeting notes for 1 team\n07:52 Meeting notes for multiple teams\n09:15 Download templates\n\nRESOURCES I MENTION IN THE VIDEO\nGrab my Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=49\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#takeNotesForWork #notetaking #productivity", "How to Take Notes for Work | Note-taking Tutorial for Professionals", "T0qhJdHLJTc", 1, 584, false, "https://www.youtube.com/watch?v=T0qhJdHLJTc", "/downloads/Jeff Su/2021-05-04 How to Take Notes for Work | Note-taking Tutorial for Professionals/How to Take Notes for Work | Note-taking Tutorial for Professionals [T0qhJdHLJTc].mp4", false, ~U[2021-05-04 13:00:22Z]] 16:58:33.317 [debug] QUERY OK source="sources" db=0.3ms idle=9.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:33.318 [debug] QUERY OK source="media_items" db=0.9ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-04-27 13:00:20Z], 1] 16:58:34.547 [debug] QUERY OK source="media_items" db=1227.0ms idle=7.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=048\n\n👨🏻\u200D💻 If you're anything like me, you love yourself a sexy Google Sheets or Microsoft Excel spreadsheet. In this video I share the Top 10 Google Sheets Tips for Productive Professionals so you can increase your efficiency at work and come off as more professional at the same time!\n\nIf you're trying to increase productivity at work, then getting better at creating, managing, and sharing Google Sheets or Excel spreadsheets should probably be top of mind for you. While you don't have to know crazy advanced formulas and Google Sheets functions to impress others, making sure you get the basics right will allow you utilize more \"fancy\" tips and tricks. For example yes you can create drop-down menus using the Data Validation feature but you can also use \"Insert, Checkboxes\" to upgrade the look and feel of your spreadsheet.\n\nOr if you're pressed for time you can use the \"Organization Chart\" feature to quickly create an org chart directly in Google Sheets and paste the linked image into Google Slides. \n\nHope you enjoy this video made specifically for productive students and professionals and please let me know if you notice an increase in efficiency and/or productivity! 🌟\n\nTIMESTAMPS\n00:00 Create Filtered View\n02:30 Link to Custom Range\n02:54 Protect and Lock Ranges\n03:39 Show Edit History\n04:34 Create Org Chart Quickly\n05:37 Turn Off Notifications\n06:10 Best Formatting Tips\n07:39 Copy Tab Quickly\n08:26 Remove Duplicates\n09:10 Convert Currencies\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Docs Video - https://youtu.be/UDJkGkzTUYw\nGoogle Finance Formula instructions - https://support.google.com/docs/answer/3093281?hl=en\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleSheets #excel #productivity", "Top 10 Google Sheets Tips for Productive Professionals!", "f21dde3b-8a62-4392-9417-67b31d689a89", false, "yCmsOc8JzcY", 1, [], 615, false, "https://www.youtube.com/watch?v=yCmsOc8JzcY", 152, "/downloads/Jeff Su/2021-04-27 Top 10 Google Sheets Tips for Productive Professionals!/Top 10 Google Sheets Tips for Productive Professionals! [yCmsOc8JzcY].mp4", false, false, 98, ~U[2021-04-27 13:00:20Z], ~U[2026-04-23 14:58:33Z], ~U[2026-04-23 14:58:33Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=048\n\n👨🏻\u200D💻 If you're anything like me, you love yourself a sexy Google Sheets or Microsoft Excel spreadsheet. In this video I share the Top 10 Google Sheets Tips for Productive Professionals so you can increase your efficiency at work and come off as more professional at the same time!\n\nIf you're trying to increase productivity at work, then getting better at creating, managing, and sharing Google Sheets or Excel spreadsheets should probably be top of mind for you. While you don't have to know crazy advanced formulas and Google Sheets functions to impress others, making sure you get the basics right will allow you utilize more \"fancy\" tips and tricks. For example yes you can create drop-down menus using the Data Validation feature but you can also use \"Insert, Checkboxes\" to upgrade the look and feel of your spreadsheet.\n\nOr if you're pressed for time you can use the \"Organization Chart\" feature to quickly create an org chart directly in Google Sheets and paste the linked image into Google Slides. \n\nHope you enjoy this video made specifically for productive students and professionals and please let me know if you notice an increase in efficiency and/or productivity! 🌟\n\nTIMESTAMPS\n00:00 Create Filtered View\n02:30 Link to Custom Range\n02:54 Protect and Lock Ranges\n03:39 Show Edit History\n04:34 Create Org Chart Quickly\n05:37 Turn Off Notifications\n06:10 Best Formatting Tips\n07:39 Copy Tab Quickly\n08:26 Remove Duplicates\n09:10 Convert Currencies\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Docs Video - https://youtu.be/UDJkGkzTUYw\nGoogle Finance Formula instructions - https://support.google.com/docs/answer/3093281?hl=en\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleSheets #excel #productivity", "Top 10 Google Sheets Tips for Productive Professionals!", "yCmsOc8JzcY", 1, 615, false, "https://www.youtube.com/watch?v=yCmsOc8JzcY", "/downloads/Jeff Su/2021-04-27 Top 10 Google Sheets Tips for Productive Professionals!/Top 10 Google Sheets Tips for Productive Professionals! [yCmsOc8JzcY].mp4", false, ~U[2021-04-27 13:00:20Z]] 16:58:34.547 [debug] QUERY OK source="sources" db=0.2ms idle=508.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.549 [debug] QUERY OK source="media_items" db=0.9ms idle=194.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-04-20 13:00:20Z], 1] 16:58:34.647 [debug] QUERY OK source="media_items" db=96.7ms idle=195.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=000\n\n📝 The less friction you experience, the more effective the note-taking system - Productivity Nerd Jeff Su\n\nOne of the biggest issues with our default note-taking method is that it's very hard to \"re-surface\" relevant notes when the situation actually calls for it (we've all forgotten about notes we've taken in the past), so in this video I share How to Take Notes Productively and even include a Notion Template I've been using for the past few months that solves this problem! \n\nEffective note-taking systems pass the \"Before,\" \"During,\" and \"After\" tests:\n1️⃣ Before - How easy is it to start taking the note?\n2️⃣ During - How quickly can we get our thoughts down on paper?\n3️⃣ After - Are we able to resurface relevant notes when we need them?\n\nWhile I personally don't think the application itself matters all that much, I've found Notion to have the features that check all 3 of these boxes. Whether you're a student or working professional, this Notion note-taking video (more of a tutorial if I'm being honest) may give you some inspiration on how you can optimize your current note-taking process ✌🏻\n\nTIMESTAMPS\n00:00 Intro\n00:40 Effective note-taking systems\n03:01 My Notion setup\n09:11 Notion template\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nMy Notion notes template: https://www.jeffsu.org/my-note-taking-template-for-notion/\nThomas Frank's note-taking video: https://youtu.be/qj9HeT-IaEg\nBe Productive at Life Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#takingNotes #productivity #Notion", "How to Take Notes Productively (Notion Template Included)", "e83394a9-4528-4d3f-9b09-36062946f14d", false, "vYKyTNlUHCo", 1, [], 628, false, "https://www.youtube.com/watch?v=vYKyTNlUHCo", 153, "/downloads/Jeff Su/2021-04-20 How to Take Notes Productively (Notion Template Included)/How to Take Notes Productively (Notion Template Included) [vYKyTNlUHCo].mp4", false, false, 98, ~U[2021-04-20 13:00:20Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=000\n\n📝 The less friction you experience, the more effective the note-taking system - Productivity Nerd Jeff Su\n\nOne of the biggest issues with our default note-taking method is that it's very hard to \"re-surface\" relevant notes when the situation actually calls for it (we've all forgotten about notes we've taken in the past), so in this video I share How to Take Notes Productively and even include a Notion Template I've been using for the past few months that solves this problem! \n\nEffective note-taking systems pass the \"Before,\" \"During,\" and \"After\" tests:\n1️⃣ Before - How easy is it to start taking the note?\n2️⃣ During - How quickly can we get our thoughts down on paper?\n3️⃣ After - Are we able to resurface relevant notes when we need them?\n\nWhile I personally don't think the application itself matters all that much, I've found Notion to have the features that check all 3 of these boxes. Whether you're a student or working professional, this Notion note-taking video (more of a tutorial if I'm being honest) may give you some inspiration on how you can optimize your current note-taking process ✌🏻\n\nTIMESTAMPS\n00:00 Intro\n00:40 Effective note-taking systems\n03:01 My Notion setup\n09:11 Notion template\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nMy Notion notes template: https://www.jeffsu.org/my-note-taking-template-for-notion/\nThomas Frank's note-taking video: https://youtu.be/qj9HeT-IaEg\nBe Productive at Life Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2zB8GGyTmZdV9yhouquFUBS\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#takingNotes #productivity #Notion", "How to Take Notes Productively (Notion Template Included)", "vYKyTNlUHCo", 1, 628, false, "https://www.youtube.com/watch?v=vYKyTNlUHCo", "/downloads/Jeff Su/2021-04-20 How to Take Notes Productively (Notion Template Included)/How to Take Notes Productively (Notion Template Included) [vYKyTNlUHCo].mp4", false, ~U[2021-04-20 13:00:20Z]] 16:58:34.648 [debug] QUERY OK source="sources" db=0.4ms idle=293.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.649 [debug] QUERY OK source="media_items" db=0.9ms idle=102.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-04-13 13:00:30Z], 1] 16:58:34.653 [debug] QUERY OK source="media_items" db=2.2ms idle=102.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Get a copy of my Google Slides template here 👉🏻 https://www.jeffsu.org/google-slides/\n\n🧑🏻\u200D🏫 A good presentation captures the attention of the audience when the speaker goes on stage. A brilliant presentation knows the process actually begins during the preparation phase. In this video I walk you through 12 of the Best Google Slides Tips for Creating BRILLIANT Presentations, so open up a doc by typing [slides.new](http://slides.new) into your browser and let's begin! \n\nTo make it as realistic as possible, I go through the 3 phases of the Google Slides lifecycle: Creation, Collaboration, and Presentation. I share tips and tricks for each stage and provide relevant examples for each feature and function that I share. \n\nWhether you're a student using Google Slides individually, or using G Suite and Google Workspace as a working professional, I'm sure there might be one or two new Google Slides productivity tips and tricks you can pick up. So let's get started! \n\nTIMESTAMPS\n00:00 Intro\n00:29 Find & Insert Images\n01:20 Crop to Specific Shape\n02:18 Re-Size Textbox\n03:20 Format Paint X2\n03:49 Master Slides\n04:50 Search for Slides Files Only\n05:38 Send Slides in Presentation Mode\n06:20 Make Clean Copy\n07:04 Free Bonus Resource!\n07:16 Skip & Re-Order Slides\n07:46 Navigate to Specific Slide\n08:30 \"L\" for Laser Pointer\n08:43 Include Q&A in Presentation\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGet a copy of my Google Slides template: https://www.jeffsu.org/google-slides/\nGoogle Docs video - https://youtu.be/UDJkGkzTUYw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleSlides #productivity #presentwithConfidence", "TOP 12 Google Slides Tips for Productivity!", "be6137ce-af70-4bec-9b56-2d75fa7b2121", false, "iU5iweN2IOM", 1, [], 588, false, "https://www.youtube.com/watch?v=iU5iweN2IOM", 154, "/downloads/Jeff Su/2021-04-13 TOP 12 Google Slides Tips for Productivity!/TOP 12 Google Slides Tips for Productivity! [iU5iweN2IOM].mp4", false, false, 98, ~U[2021-04-13 13:00:30Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "Get a copy of my Google Slides template here 👉🏻 https://www.jeffsu.org/google-slides/\n\n🧑🏻\u200D🏫 A good presentation captures the attention of the audience when the speaker goes on stage. A brilliant presentation knows the process actually begins during the preparation phase. In this video I walk you through 12 of the Best Google Slides Tips for Creating BRILLIANT Presentations, so open up a doc by typing [slides.new](http://slides.new) into your browser and let's begin! \n\nTo make it as realistic as possible, I go through the 3 phases of the Google Slides lifecycle: Creation, Collaboration, and Presentation. I share tips and tricks for each stage and provide relevant examples for each feature and function that I share. \n\nWhether you're a student using Google Slides individually, or using G Suite and Google Workspace as a working professional, I'm sure there might be one or two new Google Slides productivity tips and tricks you can pick up. So let's get started! \n\nTIMESTAMPS\n00:00 Intro\n00:29 Find & Insert Images\n01:20 Crop to Specific Shape\n02:18 Re-Size Textbox\n03:20 Format Paint X2\n03:49 Master Slides\n04:50 Search for Slides Files Only\n05:38 Send Slides in Presentation Mode\n06:20 Make Clean Copy\n07:04 Free Bonus Resource!\n07:16 Skip & Re-Order Slides\n07:46 Navigate to Specific Slide\n08:30 \"L\" for Laser Pointer\n08:43 Include Q&A in Presentation\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGet a copy of my Google Slides template: https://www.jeffsu.org/google-slides/\nGoogle Docs video - https://youtu.be/UDJkGkzTUYw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleSlides #productivity #presentwithConfidence", "TOP 12 Google Slides Tips for Productivity!", "iU5iweN2IOM", 1, 588, false, "https://www.youtube.com/watch?v=iU5iweN2IOM", "/downloads/Jeff Su/2021-04-13 TOP 12 Google Slides Tips for Productivity!/TOP 12 Google Slides Tips for Productivity! [iU5iweN2IOM].mp4", false, ~U[2021-04-13 13:00:30Z]] 16:58:34.653 [debug] QUERY OK source="sources" db=0.3ms idle=104.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.655 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-04-06 13:00:08Z], 1] 16:58:34.658 [debug] QUERY OK source="media_items" db=2.3ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=046\n\n📑 It's easy to view Google Docs as just an online version of Microsoft Word, when in reality it's so much more! In this video I share the Top 10 Google Doc Tips for Productivity so you can unleash the full potential of this collaboration tool. \n\nBeing productive not only means getting work done faster, but it also means making few to no mistakes. This is why Version History is such a powerful feature since it lets you revert back to an earlier \"saved\" copy of your work. \"Set it and forget it\" functions like changing the default font and auto-replacing text also plays a huge role in speeding up your workflow. \n\n🔑 Of course, a key selling point of Google Docs is the share-ability. Did you know by changing a few words within the URL you could \"force\" others to preview, make a copy, or download the document directly? Talk about user-friendliness! \n\nWhether you're a student 👨🏻\u200D🎓 or working professional 🧑\u200D💻, these top 10 Google Doc tips for productivity will at the very least make the process of using this tool more enjoyable! \n\nTIMESTAMPS\n0:00 Intro\n00:33 Version History\n01:36 Set New Default Font\n02:20 Auto Replace Text\n03:34 Change Capitalization Quickly\n04:04 Visualize Ideas using Drawings\n05:25 Keep Viewers Anonymous\n06:06 Make Copy Directly\n07:03 Download PDF Directly\n07:55 Embed Doc within Email\n08:34 Use Pre-Made Templates\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Calendar video - https://youtu.be/4GqqptRI4Do\nNotion templates - https://www.jeffsu.org/notion/\nMy workout routine template - https://docs.google.com/spreadsheets/d/1n3de5JlZMFej6QexlhYJ37mkuNSlU7jZ_VOiRs4eGog/copy#gid=1808286209\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleDocs #productivity #collaboration", "Top 10 Google Doc Tips for Productivity!", "d2ceeb02-300d-444b-9def-38f32a40f8de", false, "UDJkGkzTUYw", 1, [], 563, false, "https://www.youtube.com/watch?v=UDJkGkzTUYw", 155, "/downloads/Jeff Su/2021-04-06 Top 10 Google Doc Tips for Productivity!/Top 10 Google Doc Tips for Productivity! [UDJkGkzTUYw].mp4", false, false, 98, ~U[2021-04-06 13:00:08Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=046\n\n📑 It's easy to view Google Docs as just an online version of Microsoft Word, when in reality it's so much more! In this video I share the Top 10 Google Doc Tips for Productivity so you can unleash the full potential of this collaboration tool. \n\nBeing productive not only means getting work done faster, but it also means making few to no mistakes. This is why Version History is such a powerful feature since it lets you revert back to an earlier \"saved\" copy of your work. \"Set it and forget it\" functions like changing the default font and auto-replacing text also plays a huge role in speeding up your workflow. \n\n🔑 Of course, a key selling point of Google Docs is the share-ability. Did you know by changing a few words within the URL you could \"force\" others to preview, make a copy, or download the document directly? Talk about user-friendliness! \n\nWhether you're a student 👨🏻\u200D🎓 or working professional 🧑\u200D💻, these top 10 Google Doc tips for productivity will at the very least make the process of using this tool more enjoyable! \n\nTIMESTAMPS\n0:00 Intro\n00:33 Version History\n01:36 Set New Default Font\n02:20 Auto Replace Text\n03:34 Change Capitalization Quickly\n04:04 Visualize Ideas using Drawings\n05:25 Keep Viewers Anonymous\n06:06 Make Copy Directly\n07:03 Download PDF Directly\n07:55 Embed Doc within Email\n08:34 Use Pre-Made Templates\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nGoogle Calendar video - https://youtu.be/4GqqptRI4Do\nNotion templates - https://www.jeffsu.org/notion/\nMy workout routine template - https://docs.google.com/spreadsheets/d/1n3de5JlZMFej6QexlhYJ37mkuNSlU7jZ_VOiRs4eGog/copy#gid=1808286209\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleDocs #productivity #collaboration", "Top 10 Google Doc Tips for Productivity!", "UDJkGkzTUYw", 1, 563, false, "https://www.youtube.com/watch?v=UDJkGkzTUYw", "/downloads/Jeff Su/2021-04-06 Top 10 Google Doc Tips for Productivity!/Top 10 Google Doc Tips for Productivity! [UDJkGkzTUYw].mp4", false, ~U[2021-04-06 13:00:08Z]] 16:58:34.660 [debug] QUERY OK source="sources" db=0.9ms idle=9.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.661 [debug] QUERY OK source="media_items" db=0.9ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-30 13:00:16Z], 1] 16:58:34.664 [debug] QUERY OK source="media_items" db=1.7ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["💼 Come with me on my first ever business trip of 2021! I travel to Beijing for an offline event (for those of you unfamiliar with the term, \"offline\" is when people actually come together and meet each other in person) and I was glad to be able to see clients, partners, and of course, my lovely colleagues 😁\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nTrip Template: https://www.jeffsu.org/notion/\nTravel like a Product Marketer: https://geni.us/mytravel\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#vlog #businesstrip #travel", "A Productive Business Trip to Beijing (as a Product Marketer)", "370bf982-de47-4206-9f23-c116be1dfd59", false, "oeiCU99kujo", 1, [], 427, false, "https://www.youtube.com/watch?v=oeiCU99kujo", 156, "/downloads/Jeff Su/2021-03-30 A Productive Business Trip to Beijing (as a Product Marketer)/A Productive Business Trip to Beijing (as a Product Marketer) [oeiCU99kujo].mp4", false, false, 98, ~U[2021-03-30 13:00:16Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "💼 Come with me on my first ever business trip of 2021! I travel to Beijing for an offline event (for those of you unfamiliar with the term, \"offline\" is when people actually come together and meet each other in person) and I was glad to be able to see clients, partners, and of course, my lovely colleagues 😁\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nTrip Template: https://www.jeffsu.org/notion/\nTravel like a Product Marketer: https://geni.us/mytravel\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#vlog #businesstrip #travel", "A Productive Business Trip to Beijing (as a Product Marketer)", "oeiCU99kujo", 1, 427, false, "https://www.youtube.com/watch?v=oeiCU99kujo", "/downloads/Jeff Su/2021-03-30 A Productive Business Trip to Beijing (as a Product Marketer)/A Productive Business Trip to Beijing (as a Product Marketer) [oeiCU99kujo].mp4", false, ~U[2021-03-30 13:00:16Z]] 16:58:34.664 [debug] QUERY OK source="sources" db=0.3ms idle=9.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.666 [debug] QUERY OK source="media_items" db=0.8ms idle=7.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-23 14:00:10Z], 1] 16:58:34.674 [debug] QUERY OK source="media_items" db=7.8ms idle=6.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The compliment I receive the most at work - other than my charming smile 😉 - is how I'm able to navigate my work laptop almost entirely using my keyboard. In this video, I share the Best Keyboard Shortcuts for Productivity that you can (and should) use as a student or working professional! \n\n⌨️ Learning little-known, rarely used, keyboard shortcuts is not very helpful. So not only do I go through common (i.e. impactful) Mac keyboard shortcuts application across platforms, but also app-specific ones in Gmail, Google Docs, Sheets, Slides, and Chrome! \n\nGetting used to these keyboard combinations should take a week or less and once you're familiar with all the shortcuts from how to hyperlink to add rows and columns in Google Sheets, you'll be impressing your colleagues in no time with these seemingly crazy computer hacks and tricks 🤯\n\nTIMESTAMPS\n00:00 Intro\n00:48 Keyboard Shortcuts for All Applications\n03:25 Google Docs Shortcuts\n04:45 Gmail Shortcuts\n07:14 Google Sheets Shortcuts\n08:36 Google Slides Shortcuts\n08:55 Google Chrome Shortcuts\n09:58 Software & Hardware\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\nAlfred App - https://geni.us/alfred-app\nMagic Trackpad 2 - https://geni.us/desk-apple-trackpad-2\nMX Master 3 - https://geni.us/office-mxmaster3\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#keyboardshortcuts #productivity", "Best MacBook Keyboard Shortcuts for Productivity!", "ccb20492-4a51-49c4-b4a8-e89a3aa0fe2c", false, "gCnSozvvMMM", 1, [], 720, false, "https://www.youtube.com/watch?v=gCnSozvvMMM", 157, "/downloads/Jeff Su/2021-03-23 Best MacBook Keyboard Shortcuts for Productivity!/Best MacBook Keyboard Shortcuts for Productivity! [gCnSozvvMMM].mp4", false, false, 98, ~U[2021-03-23 14:00:10Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "The compliment I receive the most at work - other than my charming smile 😉 - is how I'm able to navigate my work laptop almost entirely using my keyboard. In this video, I share the Best Keyboard Shortcuts for Productivity that you can (and should) use as a student or working professional! \n\n⌨️ Learning little-known, rarely used, keyboard shortcuts is not very helpful. So not only do I go through common (i.e. impactful) Mac keyboard shortcuts application across platforms, but also app-specific ones in Gmail, Google Docs, Sheets, Slides, and Chrome! \n\nGetting used to these keyboard combinations should take a week or less and once you're familiar with all the shortcuts from how to hyperlink to add rows and columns in Google Sheets, you'll be impressing your colleagues in no time with these seemingly crazy computer hacks and tricks 🤯\n\nTIMESTAMPS\n00:00 Intro\n00:48 Keyboard Shortcuts for All Applications\n03:25 Google Docs Shortcuts\n04:45 Gmail Shortcuts\n07:14 Google Sheets Shortcuts\n08:36 Google Slides Shortcuts\n08:55 Google Chrome Shortcuts\n09:58 Software & Hardware\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\nAlfred App - https://geni.us/alfred-app\nMagic Trackpad 2 - https://geni.us/desk-apple-trackpad-2\nMX Master 3 - https://geni.us/office-mxmaster3\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#keyboardshortcuts #productivity", "Best MacBook Keyboard Shortcuts for Productivity!", "gCnSozvvMMM", 1, 720, false, "https://www.youtube.com/watch?v=gCnSozvvMMM", "/downloads/Jeff Su/2021-03-23 Best MacBook Keyboard Shortcuts for Productivity!/Best MacBook Keyboard Shortcuts for Productivity! [gCnSozvvMMM].mp4", false, ~U[2021-03-23 14:00:10Z]] 16:58:34.675 [debug] QUERY OK source="sources" db=0.3ms idle=14.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.676 [debug] QUERY OK source="media_items" db=0.9ms idle=12.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-16 13:00:19Z], 1] 16:58:34.680 [debug] QUERY OK source="media_items" db=2.2ms idle=12.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=042\n\n☁️ If you currently only use Google Drive as an online file management system, you have yet to unlock 90% of what this powerful tool can offer! In this video, not only do I share the Top 9 Google Drive Tips for Productivity, but I also walk you through common yet frustrating scenarios you probably run into on a daily basis at school or at work. \n\n💡 Being productive on Google Drive means you find your file faster, and more importantly, you find the right files in a more efficient way. Tips and tricks like dragging to create a file duplicate means you can share files while keeping your own Drive organized, searching in your Drive directly from your browser's address bar means you never have to wait for Drive to load and open again, and pulling out text from images and PDFs cuts down on a massive amount of potential workload \n\nThese are the 9 Top Productivity Tips for Google Drive that I personally think every user must know when working with this amazing tool! Let's get productive!\n\nTIMESTAMPS\n00:00 Intro\n00:10 Drag to create shortcut\n01:22 Search from address bar\n02:32 Use \"Search Within\" function\n03:20 Use Advance Search\n04:05 Pull out text\n04:49 Enable offline sync\n05:25 3 Keyboard shortcuts\n06:59 Change default apps\n07:29 Star documents the right way\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🔎 Google Drive Search string: https://drive.google.com/drive/u/0/search?q=%s\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleDrive #productivity #productivityatwork", "Top 9 Google Drive Tips for Productivity!", "7a29db1d-fae9-4f75-97c6-51b682a1666a", false, "xhEr6ONZF6A", 1, [], 526, false, "https://www.youtube.com/watch?v=xhEr6ONZF6A", 158, "/downloads/Jeff Su/2021-03-16 Top 9 Google Drive Tips for Productivity!/Top 9 Google Drive Tips for Productivity! [xhEr6ONZF6A].mp4", false, false, 98, ~U[2021-03-16 13:00:19Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=042\n\n☁️ If you currently only use Google Drive as an online file management system, you have yet to unlock 90% of what this powerful tool can offer! In this video, not only do I share the Top 9 Google Drive Tips for Productivity, but I also walk you through common yet frustrating scenarios you probably run into on a daily basis at school or at work. \n\n💡 Being productive on Google Drive means you find your file faster, and more importantly, you find the right files in a more efficient way. Tips and tricks like dragging to create a file duplicate means you can share files while keeping your own Drive organized, searching in your Drive directly from your browser's address bar means you never have to wait for Drive to load and open again, and pulling out text from images and PDFs cuts down on a massive amount of potential workload \n\nThese are the 9 Top Productivity Tips for Google Drive that I personally think every user must know when working with this amazing tool! Let's get productive!\n\nTIMESTAMPS\n00:00 Intro\n00:10 Drag to create shortcut\n01:22 Search from address bar\n02:32 Use \"Search Within\" function\n03:20 Use Advance Search\n04:05 Pull out text\n04:49 Enable offline sync\n05:25 3 Keyboard shortcuts\n06:59 Change default apps\n07:29 Star documents the right way\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🔎 Google Drive Search string: https://drive.google.com/drive/u/0/search?q=%s\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#googleDrive #productivity #productivityatwork", "Top 9 Google Drive Tips for Productivity!", "xhEr6ONZF6A", 1, 526, false, "https://www.youtube.com/watch?v=xhEr6ONZF6A", "/downloads/Jeff Su/2021-03-16 Top 9 Google Drive Tips for Productivity!/Top 9 Google Drive Tips for Productivity! [xhEr6ONZF6A].mp4", false, ~U[2021-03-16 13:00:19Z]] 16:58:34.681 [debug] QUERY OK source="sources" db=0.3ms idle=14.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.683 [debug] QUERY OK source="media_items" db=0.9ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-09 13:00:14Z], 1] 16:58:34.686 [debug] QUERY OK source="media_items" db=2.3ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=000\n\n📔 My Agenda Planner Template: https://www.jeffsu.org/plan-a-productive-day-on-notion/\n\nEver since I started using this agenda planner on Notion every morning, I've been able to start to day more focused, with a clearer idea of the things I need to do throughout the day. In this video I share how to Plan a Productive Day using Notion and I also share my Free Template so you can follow along as well 🤓\n\nAs nerdy as it sounds, because this Notion template looks so pretty and organized (spoiler: I stole the original design from Notion Templates Library) I actually look forward to inputting my to-do's and action items at the beginning of every day. Checking off each to-do as I complete them throughout the day also brings me quite a bit of satisfaction, no matter how \"small\" the task! \n\nMy agenda planner is roughly split into 3 sections:\n1. I write down the \"Highlight\" of the day (a concept I learned from reading \"Make Time\"), something I'm grateful for, and something I want to let go of \n2. A high-level overview of my work-streams, so I can see at a glance what milestones I need to hit throughout the week\n3. Where I actually write down my daily and weekly to-do's and action items, and I check in periodically throughout the day to make sure I'm on track to finishing those tasks each day\n\nTIMESTAMPS\n00:00 Intro\n01:07 Agenda Master Page\n02:14 Current Week Agenda\n02:53 \"Make Time\" Section\n04:13 Each Day of the Week\n04:44 Workstream Section\n05:48 Input & Review Section\n\nRESOURCES I MENTION IN THE VIDEO\n📔 My Agenda Planner Template: https://www.jeffsu.org/plan-a-productive-day-on-notion/\n💌 Gmail Filters video: https://youtu.be/_vhfAn0wb10\n📽 Ali's Notion video: https://youtu.be/uJgv0XQOehs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\n\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notion #agendaplanner #productivity", "Plan a Productive Day using Notion (Free Template)!", "4ccb842d-1fc3-43d1-ad4e-3db96e53429d", false, "sZB8OZoSIyU", 1, [], 459, false, "https://www.youtube.com/watch?v=sZB8OZoSIyU", 159, "/downloads/Jeff Su/2021-03-09 Plan a Productive Day using Notion (Free Template)!/Plan a Productive Day using Notion (Free Template)! [sZB8OZoSIyU].mp4", false, false, 98, ~U[2021-03-09 13:00:14Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "My free Notion Toolkit: https://academy.jeffsu.org/notion-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=000\n\n📔 My Agenda Planner Template: https://www.jeffsu.org/plan-a-productive-day-on-notion/\n\nEver since I started using this agenda planner on Notion every morning, I've been able to start to day more focused, with a clearer idea of the things I need to do throughout the day. In this video I share how to Plan a Productive Day using Notion and I also share my Free Template so you can follow along as well 🤓\n\nAs nerdy as it sounds, because this Notion template looks so pretty and organized (spoiler: I stole the original design from Notion Templates Library) I actually look forward to inputting my to-do's and action items at the beginning of every day. Checking off each to-do as I complete them throughout the day also brings me quite a bit of satisfaction, no matter how \"small\" the task! \n\nMy agenda planner is roughly split into 3 sections:\n1. I write down the \"Highlight\" of the day (a concept I learned from reading \"Make Time\"), something I'm grateful for, and something I want to let go of \n2. A high-level overview of my work-streams, so I can see at a glance what milestones I need to hit throughout the week\n3. Where I actually write down my daily and weekly to-do's and action items, and I check in periodically throughout the day to make sure I'm on track to finishing those tasks each day\n\nTIMESTAMPS\n00:00 Intro\n01:07 Agenda Master Page\n02:14 Current Week Agenda\n02:53 \"Make Time\" Section\n04:13 Each Day of the Week\n04:44 Workstream Section\n05:48 Input & Review Section\n\nRESOURCES I MENTION IN THE VIDEO\n📔 My Agenda Planner Template: https://www.jeffsu.org/plan-a-productive-day-on-notion/\n💌 Gmail Filters video: https://youtu.be/_vhfAn0wb10\n📽 Ali's Notion video: https://youtu.be/uJgv0XQOehs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\n\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#notion #agendaplanner #productivity", "Plan a Productive Day using Notion (Free Template)!", "sZB8OZoSIyU", 1, 459, false, "https://www.youtube.com/watch?v=sZB8OZoSIyU", "/downloads/Jeff Su/2021-03-09 Plan a Productive Day using Notion (Free Template)!/Plan a Productive Day using Notion (Free Template)! [sZB8OZoSIyU].mp4", false, ~U[2021-03-09 13:00:14Z]] 16:58:34.687 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:34.688 [debug] QUERY OK source="media_items" db=0.9ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-03-03 01:00:10Z], 1] 16:58:34.691 [debug] QUERY OK source="media_items" db=2.2ms idle=7.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=040\n\n📩 In an age of distractions, we should control what emails get surfaced in our gmail inbox, and which ones should be de-prioritized. In this video I share 6 of the BEST Gmail Filters for Productivity at work, with tips ranging from simple calendar notification filters to advanced tricks like combining filters with gmail templates\n\nAdopting these hacks will help you become more productive at work since it only takes a one-time setup but the benefits will continue, well, forever. Find out how to color-code your gmail inbox using labels combined with filters, and how to use the \"*\" search operator as a wildcard. \n\nUsing these gmail rules and filters will not just help you become more efficient at work and school, but will also help you make fewer mistakes since it takes the manual labor out of the equation. Let's become (even) more productive together 🙌\n\nTIMESTAMPS\n00:00 Intro\n00:41 Filter Comments from Google Drive\n02:14 Combine Filters & Templates\n04:36 Archive Calendar Notifications\n05:26 Filter Out Spam\n07:22 Color Code Your Inbox\n07:55 Transfer Filters \n08:27 Surprise Gift\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋 Get my Gmail filters - https://www.jeffsu.org/gmail/\n\nInbox Zero Tutorial - https://youtu.be/9ql1CQfxWxQ\nIncrease Your Productivity at Work Playlist - https://youtube.com/playlist?list=PLo-kPya_Ww2y8zKNUJLVbxEoLUHYk6k2i\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #filters #productivity #work", "Top 6 Gmail Filters for Productivity!", "9c0e7bb5-324d-4e96-98fc-9d35582ed697", false, "_vhfAn0wb10", 1, [], 539, false, "https://www.youtube.com/watch?v=_vhfAn0wb10", 160, "/downloads/Jeff Su/2021-03-03 Top 6 Gmail Filters for Productivity!/Top 6 Gmail Filters for Productivity! [_vhfAn0wb10].mp4", false, false, 98, ~U[2021-03-03 01:00:10Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=040\n\n📩 In an age of distractions, we should control what emails get surfaced in our gmail inbox, and which ones should be de-prioritized. In this video I share 6 of the BEST Gmail Filters for Productivity at work, with tips ranging from simple calendar notification filters to advanced tricks like combining filters with gmail templates\n\nAdopting these hacks will help you become more productive at work since it only takes a one-time setup but the benefits will continue, well, forever. Find out how to color-code your gmail inbox using labels combined with filters, and how to use the \"*\" search operator as a wildcard. \n\nUsing these gmail rules and filters will not just help you become more efficient at work and school, but will also help you make fewer mistakes since it takes the manual labor out of the equation. Let's become (even) more productive together 🙌\n\nTIMESTAMPS\n00:00 Intro\n00:41 Filter Comments from Google Drive\n02:14 Combine Filters & Templates\n04:36 Archive Calendar Notifications\n05:26 Filter Out Spam\n07:22 Color Code Your Inbox\n07:55 Transfer Filters \n08:27 Surprise Gift\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋 Get my Gmail filters - https://www.jeffsu.org/gmail/\n\nInbox Zero Tutorial - https://youtu.be/9ql1CQfxWxQ\nIncrease Your Productivity at Work Playlist - https://youtube.com/playlist?list=PLo-kPya_Ww2y8zKNUJLVbxEoLUHYk6k2i\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #filters #productivity #work", "Top 6 Gmail Filters for Productivity!", "_vhfAn0wb10", 1, 539, false, "https://www.youtube.com/watch?v=_vhfAn0wb10", "/downloads/Jeff Su/2021-03-03 Top 6 Gmail Filters for Productivity!/Top 6 Gmail Filters for Productivity! [_vhfAn0wb10].mp4", false, ~U[2021-03-03 01:00:10Z]] 16:58:34.693 [debug] QUERY OK source="sources" db=0.9ms queue=0.5ms idle=9.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.694 [debug] QUERY OK source="media_items" db=0.9ms idle=7.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-24 00:00:02Z], 1] 16:58:34.698 [debug] QUERY OK source="media_items" db=2.2ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=039\n\n📧 Gmail is a powerhouse of a tool so in this video I share my Top 7 Gmail Tips for Productivity that will help you get things done faster while make fewer mistakes\n\nWhether you're a student using gmail for school, or working professional using gmail for work, there are many productivity tips and tricks for gmail that you are able to leverage 💡\n\n\"Good\" Gmail productivity hacks should focus on helping you achieve your objectives in a timely and efficient manner. For example using the \"Schedule Send\" function to recap your conversations while the content is still fresh in your mind but schedule it to send for the day after\n\nOther new gmail features include \"templates\" and using the plus \"+\" sign to create infinite gmail aliases; all these tips and tricks are designed to increase your productivity when using gmail! \n\nSo open up your gmail account, start this video, and let's be more productive together 😁\n\nTIMESTAMPS\n00:00 Intro\n00:39 Use \"Schedule Send\" Productively\n01:38 Use * as Search Operator\n02:35 Show Labels Only When Unread\n03:07 Easy Way to Create Filters\n04:01 Create Infinite Aliases\n05:11 Gmail Templates\n05:44 Search Another Person's Gmail\n06:50 Bonus Tip!\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero | Step-by-step Instructions - https://youtu.be/9ql1CQfxWxQ\n8 Google Calendar Tips for Productivity - https://youtu.be/4GqqptRI4Do\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #productivity #career", "Top 7 Gmail Tips for Productivity 📧", "e9c75b3a-1741-4189-9574-121e861ecf5a", false, "DPWVEL4UNi0", 1, [], 462, false, "https://www.youtube.com/watch?v=DPWVEL4UNi0", 161, "/downloads/Jeff Su/2021-02-24 Top 7 Gmail Tips for Productivity 📧/Top 7 Gmail Tips for Productivity 📧 [DPWVEL4UNi0].mp4", false, false, 98, ~U[2021-02-24 00:00:02Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=039\n\n📧 Gmail is a powerhouse of a tool so in this video I share my Top 7 Gmail Tips for Productivity that will help you get things done faster while make fewer mistakes\n\nWhether you're a student using gmail for school, or working professional using gmail for work, there are many productivity tips and tricks for gmail that you are able to leverage 💡\n\n\"Good\" Gmail productivity hacks should focus on helping you achieve your objectives in a timely and efficient manner. For example using the \"Schedule Send\" function to recap your conversations while the content is still fresh in your mind but schedule it to send for the day after\n\nOther new gmail features include \"templates\" and using the plus \"+\" sign to create infinite gmail aliases; all these tips and tricks are designed to increase your productivity when using gmail! \n\nSo open up your gmail account, start this video, and let's be more productive together 😁\n\nTIMESTAMPS\n00:00 Intro\n00:39 Use \"Schedule Send\" Productively\n01:38 Use * as Search Operator\n02:35 Show Labels Only When Unread\n03:07 Easy Way to Create Filters\n04:01 Create Infinite Aliases\n05:11 Gmail Templates\n05:44 Search Another Person's Gmail\n06:50 Bonus Tip!\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero | Step-by-step Instructions - https://youtu.be/9ql1CQfxWxQ\n8 Google Calendar Tips for Productivity - https://youtu.be/4GqqptRI4Do\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gmail #productivity #career", "Top 7 Gmail Tips for Productivity 📧", "DPWVEL4UNi0", 1, 462, false, "https://www.youtube.com/watch?v=DPWVEL4UNi0", "/downloads/Jeff Su/2021-02-24 Top 7 Gmail Tips for Productivity 📧/Top 7 Gmail Tips for Productivity 📧 [DPWVEL4UNi0].mp4", false, ~U[2021-02-24 00:00:02Z]] 16:58:34.699 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.700 [debug] QUERY OK source="media_items" db=0.9ms idle=8.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-15 01:00:02Z], 1] 16:58:34.703 [debug] QUERY OK source="media_items" db=1.9ms idle=7.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Apparently adding \"productive\" in video titles is a thing now so here is my Productive Two Days in the life vlog: Chinese New Year Edition! 🧧\n\n❄️ But because I still want to be a special snowflake I decided to film TWO days instead of one. And for those of you celebrating outside of China, Happy Lunar New Year as well! \n\nThis is the first time in many years where I wasn't able to see my family during Chinese New Year's but I was extremely lucky to be temporarily \"adopted\" by some friends so I wouldn't be all alone during this festive holiday. \n\nI had a fun time chatting with family Chinese New Year's Eve, and hanging out with friends and colleagues in the evenings. \n\nFor those of you celebrating this holiday I hope you had fun, and everyone else - You're missing out on Red Packets 😉\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#CNY", "Productive TWO DAYS In The Life: Chinese New Year Edition", "d2288774-b707-4c4c-bd26-4e110f99887b", false, "Qhtz_BX625Q", 1, [], 332, false, "https://www.youtube.com/watch?v=Qhtz_BX625Q", 162, "/downloads/Jeff Su/2021-02-15 Productive TWO DAYS In The Life: Chinese New Year Edition/Productive TWO DAYS In The Life: Chinese New Year Edition [Qhtz_BX625Q].mp4", false, false, 98, ~U[2021-02-15 01:00:02Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "Apparently adding \"productive\" in video titles is a thing now so here is my Productive Two Days in the life vlog: Chinese New Year Edition! 🧧\n\n❄️ But because I still want to be a special snowflake I decided to film TWO days instead of one. And for those of you celebrating outside of China, Happy Lunar New Year as well! \n\nThis is the first time in many years where I wasn't able to see my family during Chinese New Year's but I was extremely lucky to be temporarily \"adopted\" by some friends so I wouldn't be all alone during this festive holiday. \n\nI had a fun time chatting with family Chinese New Year's Eve, and hanging out with friends and colleagues in the evenings. \n\nFor those of you celebrating this holiday I hope you had fun, and everyone else - You're missing out on Red Packets 😉\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#CNY", "Productive TWO DAYS In The Life: Chinese New Year Edition", "Qhtz_BX625Q", 1, 332, false, "https://www.youtube.com/watch?v=Qhtz_BX625Q", "/downloads/Jeff Su/2021-02-15 Productive TWO DAYS In The Life: Chinese New Year Edition/Productive TWO DAYS In The Life: Chinese New Year Edition [Qhtz_BX625Q].mp4", false, ~U[2021-02-15 01:00:02Z]] 16:58:34.703 [debug] QUERY OK source="sources" db=0.4ms idle=8.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.705 [debug] QUERY OK source="media_items" db=0.9ms idle=6.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-10 01:00:03Z], 1] 16:58:34.709 [debug] QUERY OK source="media_items" db=2.6ms idle=6.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=037\n\nGet my Consulting Resume template: https://www.jeffsu.org/consulting-resume/\n\n🌟 Most resume advice from the internet is subjective since there is no \"one-size-fits-all.\" But using Austin Belcak's analysis of 125,484 resumes, I share 5 Golden Rules on how to Write an Incredible Resume in 2021.\n\nWhether you're making a resume for your first job, or improving upon a good resume you already have been using for years, it's very important to get the basics principles right before moving on to fancier resume writing tips. \n\n🤔 So how do write a resume or make a strong CV? Make sure your LinkedIn profile is added to your resume, match relevant keywords by using a Word Cloud on the job description, include measurable results to differentiate yourself from others, keep your resume between 475-600 words in length, and avoid buzzwords at all costs! Who knew writing a good resume would be so simple? 😉\n\nAll jokes aside, this video contains practical resume writing tips following each one of Austin's findings, and I walk you through each of the 5 Golden Rules so you know the do's and dont's about writing a resume 💯\n\nTIMESTAMPS\n00:00 Intro\n00:57 Quick Disclaimer\n01:06 The 5 Key Learnings\n01:59 Add LinkedIn Profile\n03:21 Include the \"Right\" Keywords\n04:41 Add Measurable Results\n06:02 The Right Length\n07:05 Buzzwords and Clichés\n07:55 Quick Summary\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Teal - https://get.tealhq.com/jeffsu\n\nRESOURCES I MENTION IN THE VIDEO\nMy LinkedIn Tips & Tricks Playlist - https://www.youtube.com/watch?v=BcfGWi8Qywk&list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nAustin's Study - https://cultivatedculture.com/resume-statistics/\nUdemy Report - https://business.udemy.com/resources/5-workplace-learning-trends-2020/\nCNBC Summary of Soft Skills - https://www.cnbc.com/2019/11/21/10-top-soft-skills-to-master-for-2020-if-you-want-a-raise-promotion-or-new-job.html\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#resumeTips #incredibleResume #jeffsu", "Write an Incredible Resume: 5 Golden Rules!", "2d1a1087-87a3-44c4-8f26-f304268500a4", false, "Tt08KmFfIYQ", 1, [], 517, false, "https://www.youtube.com/watch?v=Tt08KmFfIYQ", 163, "/downloads/Jeff Su/2021-02-10 Write an Incredible Resume: 5 Golden Rules!/Write an Incredible Resume: 5 Golden Rules! [Tt08KmFfIYQ].mp4", false, false, 98, ~U[2021-02-10 01:00:03Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=037\n\nGet my Consulting Resume template: https://www.jeffsu.org/consulting-resume/\n\n🌟 Most resume advice from the internet is subjective since there is no \"one-size-fits-all.\" But using Austin Belcak's analysis of 125,484 resumes, I share 5 Golden Rules on how to Write an Incredible Resume in 2021.\n\nWhether you're making a resume for your first job, or improving upon a good resume you already have been using for years, it's very important to get the basics principles right before moving on to fancier resume writing tips. \n\n🤔 So how do write a resume or make a strong CV? Make sure your LinkedIn profile is added to your resume, match relevant keywords by using a Word Cloud on the job description, include measurable results to differentiate yourself from others, keep your resume between 475-600 words in length, and avoid buzzwords at all costs! Who knew writing a good resume would be so simple? 😉\n\nAll jokes aside, this video contains practical resume writing tips following each one of Austin's findings, and I walk you through each of the 5 Golden Rules so you know the do's and dont's about writing a resume 💯\n\nTIMESTAMPS\n00:00 Intro\n00:57 Quick Disclaimer\n01:06 The 5 Key Learnings\n01:59 Add LinkedIn Profile\n03:21 Include the \"Right\" Keywords\n04:41 Add Measurable Results\n06:02 The Right Length\n07:05 Buzzwords and Clichés\n07:55 Quick Summary\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Teal - https://get.tealhq.com/jeffsu\n\nRESOURCES I MENTION IN THE VIDEO\nMy LinkedIn Tips & Tricks Playlist - https://www.youtube.com/watch?v=BcfGWi8Qywk&list=PLo-kPya_Ww2zqOZVXMNQCJeTNAaan8GcW\nAustin's Study - https://cultivatedculture.com/resume-statistics/\nUdemy Report - https://business.udemy.com/resources/5-workplace-learning-trends-2020/\nCNBC Summary of Soft Skills - https://www.cnbc.com/2019/11/21/10-top-soft-skills-to-master-for-2020-if-you-want-a-raise-promotion-or-new-job.html\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#resumeTips #incredibleResume #jeffsu", "Write an Incredible Resume: 5 Golden Rules!", "Tt08KmFfIYQ", 1, 517, false, "https://www.youtube.com/watch?v=Tt08KmFfIYQ", "/downloads/Jeff Su/2021-02-10 Write an Incredible Resume: 5 Golden Rules!/Write an Incredible Resume: 5 Golden Rules! [Tt08KmFfIYQ].mp4", false, ~U[2021-02-10 01:00:03Z]] 16:58:34.710 [debug] QUERY OK source="sources" db=0.3ms idle=9.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.712 [debug] QUERY OK source="media_items" db=1.1ms idle=8.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-02-02 01:15:04Z], 1] 16:58:34.715 [debug] QUERY OK source="media_items" db=2.2ms idle=8.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nTaking control of interview questions is not something job seekers are comfortable with, so in this video, I share 3 advanced tips to do just that for the interview question Tell Me About a Time You Failed along with a strong Sample Answer 💪\n\n💡 Tell Me About a Time You Failed, or Tell Me About a time You Made a Mistake, are both trying to figure out how self-aware you are, whether you're able to admit to mistakes, and your willingness to improve. However, many candidates fail to see that \"failure\" or \"mistakes\" are extremely ambiguous, it's often up to the interviewees themselves to define what a failure or mistake means to THEM \n\nI also share a real example from when I joined the Product Marketing team so you can see how I would answer \"tell me about a time you failed\" in real life. As you will see in my example mistake, I am very honest about what transpired, I take full responsibility, and most importantly, I share learnings and what I would do next time in a similar situation ✅\n\nTIMESTAMPS\n00:00 Intro\n00:43 The Basics\n01:20 Pro Tip #1 - Define Failure\n02:27 Pro Tip #2 - Focus on One Thing\n03:15 Pro Tip #3 - End with a Learning\n04:02 Sample Answer\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nCARL Interview Method - https://youtu.be/gZ2354BH0a0\nCommon Interview Questions and Answers - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#failure #interviewtips #jobSearch", "Tell Me About a Time You Failed (Sample Answer included)", "c7a2d0ff-93bb-4b7f-89f2-b0b367d0099c", false, "yidXECtZCOg", 1, [], 381, false, "https://www.youtube.com/watch?v=yidXECtZCOg", 164, "/downloads/Jeff Su/2021-02-02 Tell Me About a Time You Failed (Sample Answer included)/Tell Me About a Time You Failed (Sample Answer included) [yidXECtZCOg].mp4", false, false, 98, ~U[2021-02-02 01:15:04Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "My Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nTaking control of interview questions is not something job seekers are comfortable with, so in this video, I share 3 advanced tips to do just that for the interview question Tell Me About a Time You Failed along with a strong Sample Answer 💪\n\n💡 Tell Me About a Time You Failed, or Tell Me About a time You Made a Mistake, are both trying to figure out how self-aware you are, whether you're able to admit to mistakes, and your willingness to improve. However, many candidates fail to see that \"failure\" or \"mistakes\" are extremely ambiguous, it's often up to the interviewees themselves to define what a failure or mistake means to THEM \n\nI also share a real example from when I joined the Product Marketing team so you can see how I would answer \"tell me about a time you failed\" in real life. As you will see in my example mistake, I am very honest about what transpired, I take full responsibility, and most importantly, I share learnings and what I would do next time in a similar situation ✅\n\nTIMESTAMPS\n00:00 Intro\n00:43 The Basics\n01:20 Pro Tip #1 - Define Failure\n02:27 Pro Tip #2 - Focus on One Thing\n03:15 Pro Tip #3 - End with a Learning\n04:02 Sample Answer\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nCARL Interview Method - https://youtu.be/gZ2354BH0a0\nCommon Interview Questions and Answers - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#failure #interviewtips #jobSearch", "Tell Me About a Time You Failed (Sample Answer included)", "yidXECtZCOg", 1, 381, false, "https://www.youtube.com/watch?v=yidXECtZCOg", "/downloads/Jeff Su/2021-02-02 Tell Me About a Time You Failed (Sample Answer included)/Tell Me About a Time You Failed (Sample Answer included) [yidXECtZCOg].mp4", false, ~U[2021-02-02 01:15:04Z]] 16:58:34.716 [debug] QUERY OK source="sources" db=1.0ms idle=10.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.717 [debug] QUERY OK source="media_items" db=0.9ms idle=8.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-01-27 01:00:12Z], 1] 16:58:34.720 [debug] QUERY OK source="media_items" db=1.8ms idle=8.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Join me in a day in the life of a Product Marketer: Work From Home Edition! Today I take you through how a typical WFH day looks like for me in Shanghai, China. While I am extremely lucky to have the option to go back to the office, there are days where working from home feels like the right thing to do!\n\nIn this casual vlog, I share some of the work I do as a Product Marketing Manager (PMM), my journey to building bigger pecs, and how strong our salespeople really are at influencing others 😉. \n\nCome for the VLOG, stay for the humor! Enjoy 🙌🏻\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#dayInTheLife #WFH #ProductMarketer", "A Day in the Life of a Product Marketer (Work From Home Edition)", "5cae71b9-591c-41e0-8433-b8d760b999c2", false, "k3tk9IbLJok", 1, [], 482, false, "https://www.youtube.com/watch?v=k3tk9IbLJok", 165, "/downloads/Jeff Su/2021-01-27 A Day in the Life of a Product Marketer (Work From Home Edition)/A Day in the Life of a Product Marketer (Work From Home Edition) [k3tk9IbLJok].mp4", false, false, 98, ~U[2021-01-27 01:00:12Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "Join me in a day in the life of a Product Marketer: Work From Home Edition! Today I take you through how a typical WFH day looks like for me in Shanghai, China. While I am extremely lucky to have the option to go back to the office, there are days where working from home feels like the right thing to do!\n\nIn this casual vlog, I share some of the work I do as a Product Marketing Manager (PMM), my journey to building bigger pecs, and how strong our salespeople really are at influencing others 😉. \n\nCome for the VLOG, stay for the humor! Enjoy 🙌🏻\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#dayInTheLife #WFH #ProductMarketer", "A Day in the Life of a Product Marketer (Work From Home Edition)", "k3tk9IbLJok", 1, 482, false, "https://www.youtube.com/watch?v=k3tk9IbLJok", "/downloads/Jeff Su/2021-01-27 A Day in the Life of a Product Marketer (Work From Home Edition)/A Day in the Life of a Product Marketer (Work From Home Edition) [k3tk9IbLJok].mp4", false, ~U[2021-01-27 01:00:12Z]] 16:58:34.721 [debug] QUERY OK source="sources" db=0.3ms idle=9.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.723 [debug] QUERY OK source="media_items" db=0.9ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-01-20 01:00:00Z], 1] 16:58:34.726 [debug] QUERY OK source="media_items" db=2.2ms idle=6.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=010\n\n99% of us use Google Calendar in some way or fashion. But are we using it as productively as possible? In this video I share 8 Google Calendar Tips for Productivity for intermediate and advanced users of this amazing tool.\n\nThere are so many gCal tips and little-known features suited for various scenarios that only a productivity nerd like me would be able to uncover, and share, them all 😇. Not only will I go through how to use some of these google calendar features for specific situations, but I'll also go through keyboard shortcuts that will save you tons of time in the long run. \n\nYou'll learn simple setting tweaks such as display the World Clock and Secondary Time Zones on Google Calendar, as well as more advanced settings such as how to combine Gmail filters with invisible calendar events to make sure you never miss an important action item again! \n\nTIMESTAMPS\n00:00 Intro\n00:40 Tip 1 - Create new event quickly\n01:20 Tip 2 - Change default reminder time\n02:02 Tip 3 - Grant modify rights by default\n02:50 Tip 4 - Display multiple time zones\n03:49 Tip 5 - Add Invisible Events\n04:21 Tip 6 - Gmail filters with Calendar events\n05:29 Tip 7 - Receive daily agenda \n05:59 Tip 8 - Advanced Calendar search\n06:53 Bonus Tip!\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\nEmojipedia - https://emojipedia.org/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gCal #productivity #productivitytips #calendar #timemanagement", "8 Google Calendar Settings Everyone Must Turn ON!", "f2c4785f-f83d-497c-a6ce-1bcd813fdc36", false, "4GqqptRI4Do", 1, [], 499, false, "https://www.youtube.com/watch?v=4GqqptRI4Do", 166, "/downloads/Jeff Su/2021-01-20 8 Google Calendar Settings Everyone Must Turn ON!/8 Google Calendar Settings Everyone Must Turn ON! [4GqqptRI4Do].mp4", false, false, 98, ~U[2021-01-20 01:00:00Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🔩 Grab my free Workspace Toolkit: https://academy.jeffsu.org/?utm_source=youtube&utm_medium=video&utm_campaign=010\n\n99% of us use Google Calendar in some way or fashion. But are we using it as productively as possible? In this video I share 8 Google Calendar Tips for Productivity for intermediate and advanced users of this amazing tool.\n\nThere are so many gCal tips and little-known features suited for various scenarios that only a productivity nerd like me would be able to uncover, and share, them all 😇. Not only will I go through how to use some of these google calendar features for specific situations, but I'll also go through keyboard shortcuts that will save you tons of time in the long run. \n\nYou'll learn simple setting tweaks such as display the World Clock and Secondary Time Zones on Google Calendar, as well as more advanced settings such as how to combine Gmail filters with invisible calendar events to make sure you never miss an important action item again! \n\nTIMESTAMPS\n00:00 Intro\n00:40 Tip 1 - Create new event quickly\n01:20 Tip 2 - Change default reminder time\n02:02 Tip 3 - Grant modify rights by default\n02:50 Tip 4 - Display multiple time zones\n03:49 Tip 5 - Add Invisible Events\n04:21 Tip 6 - Gmail filters with Calendar events\n05:29 Tip 7 - Receive daily agenda \n05:59 Tip 8 - Advanced Calendar search\n06:53 Bonus Tip!\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nInbox Zero Video - https://youtu.be/9ql1CQfxWxQ\nEmojipedia - https://emojipedia.org/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#gCal #productivity #productivitytips #calendar #timemanagement", "8 Google Calendar Settings Everyone Must Turn ON!", "4GqqptRI4Do", 1, 499, false, "https://www.youtube.com/watch?v=4GqqptRI4Do", "/downloads/Jeff Su/2021-01-20 8 Google Calendar Settings Everyone Must Turn ON!/8 Google Calendar Settings Everyone Must Turn ON! [4GqqptRI4Do].mp4", false, ~U[2021-01-20 01:00:00Z]] 16:58:34.727 [debug] QUERY OK source="sources" db=0.4ms idle=9.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.728 [debug] QUERY OK source="media_items" db=0.9ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-01-13 01:00:00Z], 1] 16:58:34.732 [debug] QUERY OK source="media_items" db=2.4ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=033\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nContrary to popular belief, a \"fairy tale ending\" is NOT what interviewers are looking for when they ask you \"Tell me a time You Handled a Difficult Situation.\" Even if you talk about how you resolved a conflict perfectly (which rarely happens), interviewers will often follow up with probing questions in order to find out your thought process. \n\nIn order to provide a meaningful answer to \"tell me about a time you handled a difficult situation, conflict, or challenge,\" you want to make sure you highlight the following two things in your answer:\n\n(1) You are able to listen to, and accept, other people’s point of views even if you have already formed your own opinion and;\n\n(2) You are able to put the needs of the business above your own when a conflict does arise in the workplace\n\nWhether you decide to talk about how you handled a workplace conflict, or a difficult situation outside of the professional environment, as long as you touch on those two areas using the CARL method, you will be good to go! This video also includes a full sample answer so you can come back and reference it at any time. \n\nTIMESTAMPS\n00:00 Intro\n00:57 What the interviewer is REALLY looking for\n01:28 Hear everyone else out first\n02:36 Put needs of business above your own\n03:21 How to structure your answer\n04:28 Full sample answer\n06:29 Summary and Recap\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWhy CARL is better than STAR Method - https://youtu.be/gZ2354BH0a0\nCommon Interview Questions and Answers - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\nHarvard Business Review Study - https://hbr.org/2017/09/the-best-senior-teams-thrive-on-disagreement\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewTips #newJob #success #jeffsu", "Tell me a time You Handled a Difficult Situation (Interview Question)", "8c03dee9-8525-4cef-894a-fd8cc4eb3b08", false, "-7OIk2ZXBCg", 1, [], 423, false, "https://www.youtube.com/watch?v=-7OIk2ZXBCg", 167, "/downloads/Jeff Su/2021-01-13 Tell me a time You Handled a Difficult Situation (Interview Question)/Tell me a time You Handled a Difficult Situation (Interview Question) [-7OIk2ZXBCg].mp4", false, false, 98, ~U[2021-01-13 01:00:00Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=033\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nContrary to popular belief, a \"fairy tale ending\" is NOT what interviewers are looking for when they ask you \"Tell me a time You Handled a Difficult Situation.\" Even if you talk about how you resolved a conflict perfectly (which rarely happens), interviewers will often follow up with probing questions in order to find out your thought process. \n\nIn order to provide a meaningful answer to \"tell me about a time you handled a difficult situation, conflict, or challenge,\" you want to make sure you highlight the following two things in your answer:\n\n(1) You are able to listen to, and accept, other people’s point of views even if you have already formed your own opinion and;\n\n(2) You are able to put the needs of the business above your own when a conflict does arise in the workplace\n\nWhether you decide to talk about how you handled a workplace conflict, or a difficult situation outside of the professional environment, as long as you touch on those two areas using the CARL method, you will be good to go! This video also includes a full sample answer so you can come back and reference it at any time. \n\nTIMESTAMPS\n00:00 Intro\n00:57 What the interviewer is REALLY looking for\n01:28 Hear everyone else out first\n02:36 Put needs of business above your own\n03:21 How to structure your answer\n04:28 Full sample answer\n06:29 Summary and Recap\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWhy CARL is better than STAR Method - https://youtu.be/gZ2354BH0a0\nCommon Interview Questions and Answers - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\nHarvard Business Review Study - https://hbr.org/2017/09/the-best-senior-teams-thrive-on-disagreement\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewTips #newJob #success #jeffsu", "Tell me a time You Handled a Difficult Situation (Interview Question)", "-7OIk2ZXBCg", 1, 423, false, "https://www.youtube.com/watch?v=-7OIk2ZXBCg", "/downloads/Jeff Su/2021-01-13 Tell me a time You Handled a Difficult Situation (Interview Question)/Tell me a time Yo (truncated) 16:58:34.733 [debug] QUERY OK source="sources" db=0.3ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.734 [debug] QUERY OK source="media_items" db=0.9ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-01-06 04:00:02Z], 1] 16:58:34.738 [debug] QUERY OK source="media_items" db=2.5ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=032\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nToo honest and they won't hire you. Too vague and they'll not believe you. In this video I show you how to answer the dreaded interview question \"Why are you Leaving your Current Job?\" by providing healthy, positive, yet honest reasons as to why you might be leaving a job. \n\nFirst, you want to prepare 1-2 sentences ahead of time that answers the why are you leaving your job question up front. Don't hide or avoid it, interviewers are wise to those tactics already. Make sure you stick with 2 sentences maximum because it's easy to start ranting and go off on a tangent during the heat of the moment (especially if you're having a particularly negative experience with your current employer).\n\nThen you want to show you're not making stuff up by giving a concrete example as to why you are leaving your current job, then smoothly transition into talking about the new role you're applying for.\n\nFinally, you talk about how the problems you might be facing at your current job will be a non-issue at the new role because you have already done your research and you know what to expect in the new job. A combination of these will give you the best answer to why did you leave your current job or variations such as why did you leave your last job.\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n00:49 What \"ETP\" Stands For\n01:28 How to Structure \"E\"\n02:55 Sample Answer for \"E\"\n03:09 How to Structure \"T\"\n03:35 Sample Answer for \"T\"\n04:31 How to Structure \"P\"\n05:04 Full Sample Answer using \"ETP\"\n06:46 Summary\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Research Before an Interview - https://youtu.be/8MYHrih6syw\nCommon Interview Questions and Answers Playlist - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewTips #whyAreYouLeaving #jobsearch", "Why Are You Leaving Your Current Job? How to Answer Correctly", "a2af7bc1-d2ed-4370-b3f4-2026319396a1", false, "QSPGdAvnUv4", 1, [], 436, false, "https://www.youtube.com/watch?v=QSPGdAvnUv4", 168, "/downloads/Jeff Su/2021-01-06 Why Are You Leaving Your Current Job? How to Answer Correctly/Why Are You Leaving Your Current Job? How to Answer Correctly [QSPGdAvnUv4].mp4", false, false, 98, ~U[2021-01-06 04:00:02Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=032\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nToo honest and they won't hire you. Too vague and they'll not believe you. In this video I show you how to answer the dreaded interview question \"Why are you Leaving your Current Job?\" by providing healthy, positive, yet honest reasons as to why you might be leaving a job. \n\nFirst, you want to prepare 1-2 sentences ahead of time that answers the why are you leaving your job question up front. Don't hide or avoid it, interviewers are wise to those tactics already. Make sure you stick with 2 sentences maximum because it's easy to start ranting and go off on a tangent during the heat of the moment (especially if you're having a particularly negative experience with your current employer).\n\nThen you want to show you're not making stuff up by giving a concrete example as to why you are leaving your current job, then smoothly transition into talking about the new role you're applying for.\n\nFinally, you talk about how the problems you might be facing at your current job will be a non-issue at the new role because you have already done your research and you know what to expect in the new job. A combination of these will give you the best answer to why did you leave your current job or variations such as why did you leave your last job.\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n00:49 What \"ETP\" Stands For\n01:28 How to Structure \"E\"\n02:55 Sample Answer for \"E\"\n03:09 How to Structure \"T\"\n03:35 Sample Answer for \"T\"\n04:31 How to Structure \"P\"\n05:04 Full Sample Answer using \"ETP\"\n06:46 Summary\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Research Before an Interview - https://youtu.be/8MYHrih6syw\nCommon Interview Questions and Answers Playlist - https://youtu.be/es7XtrloDIQ?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewTips #whyAreYouLeaving #jobsearch", "Why Are You Leaving Your Current Job? How to Answer Correctly", "QSPGdAvnUv4", 1, 436, false, "https://www.youtube.com/watch?v=QSPGdAvnUv4", "/downloads/Jeff Su/2021 (truncated) 16:58:34.739 [debug] QUERY OK source="sources" db=0.4ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.741 [debug] QUERY OK source="media_items" db=1.2ms idle=8.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-12-17 08:30:08Z], 1] 16:58:34.744 [debug] QUERY OK source="media_items" db=2.1ms idle=8.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's been 6 months since I uploaded my first ever YouTube video on June 3rd, 2020. It's been an extremely fun journey so far and I wanted to first thank each and every single one of you for your support - you really have no idea how much it means to a small creator like myself.\n\nI've recently reflected on some of the key takeaways I've had from uploading 1 video a week for 6 months, and thought the learnings might be useful for some of you!\n\nFirst, I'll share 3 things I learned for video creation specifically: (1) How to define your target audience and add value, (2) The bare minimum hardware that you need, and (3) My own personal opinion on upload frequency\n\nThen, I'll share a few learnings that were surprisingly applicable to my day job as a Product Marketer at Google - it was sort of like a virtuous cycle in that skills I developed as a marketer enabled me to make better videos and learnings from making videos made me a better marketer. \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n00:53 Who I'm Trying to Help (Learning #1)\n02:18 Importance of Lighting and Audio (Learning #2)\n03:13 Incremental Improvements (Learning #3)\n05:01 Time Management (Learning #4)\n06:08 Acting On Feedback (Learning #5)\n07:32 How these learnings applied to my day job\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#NewTuber #Learnings #Growth #Reflection", "6 Months on YouTube | What I've Learned", "33643cf0-9b06-4645-98d5-71189e22d859", false, "opAitsO3o90", 1, [], 567, false, "https://www.youtube.com/watch?v=opAitsO3o90", 169, "/downloads/Jeff Su/2020-12-17 6 Months on YouTube | What I've Learned/6 Months on YouTube | What I've Learned [opAitsO3o90].mp4", false, false, 98, ~U[2020-12-17 08:30:08Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "It's been 6 months since I uploaded my first ever YouTube video on June 3rd, 2020. It's been an extremely fun journey so far and I wanted to first thank each and every single one of you for your support - you really have no idea how much it means to a small creator like myself.\n\nI've recently reflected on some of the key takeaways I've had from uploading 1 video a week for 6 months, and thought the learnings might be useful for some of you!\n\nFirst, I'll share 3 things I learned for video creation specifically: (1) How to define your target audience and add value, (2) The bare minimum hardware that you need, and (3) My own personal opinion on upload frequency\n\nThen, I'll share a few learnings that were surprisingly applicable to my day job as a Product Marketer at Google - it was sort of like a virtuous cycle in that skills I developed as a marketer enabled me to make better videos and learnings from making videos made me a better marketer. \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n00:53 Who I'm Trying to Help (Learning #1)\n02:18 Importance of Lighting and Audio (Learning #2)\n03:13 Incremental Improvements (Learning #3)\n05:01 Time Management (Learning #4)\n06:08 Acting On Feedback (Learning #5)\n07:32 How these learnings applied to my day job\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#NewTuber #Learnings #Growth #Reflection", "6 Months on YouTube | What I've Learned", "opAitsO3o90", 1, 567, false, "https://www.youtube.com/watch?v=opAitsO3o90", "/downloads/Jeff Su/2020-12-17 6 Months on YouTube | What I've Learned/6 Months on YouTube | What I've Learned [opAitsO3o90].mp4", false, ~U[2020-12-17 08:30:08Z]] 16:58:34.746 [debug] QUERY OK source="sources" db=1.2ms idle=10.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.747 [debug] QUERY OK source="media_items" db=0.9ms idle=8.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-12-09 07:00:06Z], 1] 16:58:34.757 [debug] QUERY OK source="media_items" db=8.3ms idle=8.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=028\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n\"Confidence comes not from extroversion, but from passion and dedication.\" This quote from Simon Sinek changed the way I, a huge introvert, looked at building relationships and I have summarized my learnings here in this video: the introvert's guide to networking (for business). \n\nWe introverts can play to our natural strengths and make great relationships right from behind our computer screen! By consistently putting in the effort and leaving thoughtful comments on LinkedIn posts, we are able to incrementally build meaningful relationships with professionals and this is a great way to network for introverts who might not feel comfortable going to many in-person events. \n\nSince we also lose energy from being around others, we also want to be very purposeful regarding who we choose to network with. To do this we need to first prioritize those who have direct influence over the end goal we're trying to achieve (i.e. decision makers) and chat with them on our own terms (whatever is comfortable for us). \n\nFinally, we don't have to make drastic changes to how we currently do things to network well. Consistency is key so as long as we adhere to a schedule (one thoughtful comment a week for example), we will slowly but surely grow and build successful professional networks!\n\nTake it from me that as your network grows, so will your confidence, leading to an endless positive cycle 😉\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n01:07 Key Takeaway from Video \n01:25 Add Value from Behind a Computer Screen\n02:23 Connecting with Ali Abdaal (Example 1)\n03:18 Be Selective about who you Network With\n04:05 Find Decision Makers (Example 2)\n05:09 Set Achievable Goals\n06:07 Quote from Simon Sinek\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nAdvanced LinkedIn Search Tips - https://youtu.be/93exwIKifcw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\n#introverts #networking \n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "The Introvert's Guide to Networking (for Business)", "e0a80545-4025-4085-a83a-94878aba5e47", false, "k1DEWUcifPo", 1, [], 422, false, "https://www.youtube.com/watch?v=k1DEWUcifPo", 170, "/downloads/Jeff Su/2020-12-09 The Introvert's Guide to Networking (for Business)/The Introvert's Guide to Networking (for Business) [k1DEWUcifPo].mp4", false, false, 98, ~U[2020-12-09 07:00:06Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=028\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n\"Confidence comes not from extroversion, but from passion and dedication.\" This quote from Simon Sinek changed the way I, a huge introvert, looked at building relationships and I have summarized my learnings here in this video: the introvert's guide to networking (for business). \n\nWe introverts can play to our natural strengths and make great relationships right from behind our computer screen! By consistently putting in the effort and leaving thoughtful comments on LinkedIn posts, we are able to incrementally build meaningful relationships with professionals and this is a great way to network for introverts who might not feel comfortable going to many in-person events. \n\nSince we also lose energy from being around others, we also want to be very purposeful regarding who we choose to network with. To do this we need to first prioritize those who have direct influence over the end goal we're trying to achieve (i.e. decision makers) and chat with them on our own terms (whatever is comfortable for us). \n\nFinally, we don't have to make drastic changes to how we currently do things to network well. Consistency is key so as long as we adhere to a schedule (one thoughtful comment a week for example), we will slowly but surely grow and build successful professional networks!\n\nTake it from me that as your network grows, so will your confidence, leading to an endless positive cycle 😉\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n01:07 Key Takeaway from Video \n01:25 Add Value from Behind a Computer Screen\n02:23 Connecting with Ali Abdaal (Example 1)\n03:18 Be Selective about who you Network With\n04:05 Find Decision Makers (Example 2)\n05:09 Set Achievable Goals\n06:07 Quote from Simon Sinek\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nAdvanced LinkedIn Search Tips - https://youtu.be/93exwIKifcw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\n#introverts #networking \n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "The Introvert's Guide to Networking (for Business)", "k1DEWUcifPo", 1, 422, false, "https://www.youtube.com/watch?v=k1DE (truncated) 16:58:34.758 [debug] QUERY OK source="sources" db=0.4ms idle=16.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.759 [debug] QUERY OK source="media_items" db=0.9ms idle=14.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-12-01 08:00:02Z], 1] 16:58:34.763 [debug] QUERY OK source="media_items" db=2.4ms idle=14.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["It's hard to stand out on LinkedIn if you're using the same \"basic profile tips\" everyone else is following. Here is a video on 3 Advanced LinkedIn Tips for Young Professionals and job seekers!\n\nFirst advanced LinkedIn Tip - Use Google Search Operators to find relevant 2nd degree connections quickly and easily. For example you can type in \"Apple\" AND \"Product Manager\", filter by 2nd degree connections, to find 1st degree connections who can introduce you and help you connect on LinkedIn!\n\nSecond advanced LinkedIn Tip - Publish an article and feature it so it stays \"pinned\" to your LinkedIn profile! This provides you with an easy way to expand on your experiences while keeping your experiences section bullet points clean and to the point. This also allows recruiters and potential hiring managers to find you and read up on your contributions in a complete manner. \n\nThird advanced LinkedIn Tip - Find out whether your profile was restricted by LinkedIn. Basically if you have to input the connection's email address whenever you send a connection request, there's a decent chance you got \"restricted\" by LinkedIn. To fix this, reach out to their support center and ask for forgiveness!\n\nThese are 3 advanced LinkedIn hacks and features that will hopefully bring your LinkedIn game to the next level. Get creative with it!\n\nTIMESTAMPS\n00:00 Intro\n00:58 Use Search Operators to Increase Efficiency\n02:37 Publish LinkedIn Posts and Feature it on Profile\n03:51 Why You Should Publish LinkedIn Posts\n04:56 Find Out if your Profile is Restricted\n06:04 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nGoogle Search Operators - https://moz.com/learn/seo/search-operators#:~:text=Google search operators are special,research to technical SEO audits.\n\nKinsta Study - https://kinsta.com/blog/linkedin-statistics/\nLinkedIn Help Center - https://www.linkedin.com/help/linkedin/solve/contact\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\n#LinkedInTips #youngProfessionals #advancedTips\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "Top 3 Tips to STAND OUT on LinkedIn!", "e3d3205d-f59a-42a2-bc89-f0cc434c3b85", false, "93exwIKifcw", 1, [], 396, false, "https://www.youtube.com/watch?v=93exwIKifcw", 171, "/downloads/Jeff Su/2020-12-01 Top 3 Tips to STAND OUT on LinkedIn!/Top 3 Tips to STAND OUT on LinkedIn! [93exwIKifcw].mp4", false, false, 98, ~U[2020-12-01 08:00:02Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "It's hard to stand out on LinkedIn if you're using the same \"basic profile tips\" everyone else is following. Here is a video on 3 Advanced LinkedIn Tips for Young Professionals and job seekers!\n\nFirst advanced LinkedIn Tip - Use Google Search Operators to find relevant 2nd degree connections quickly and easily. For example you can type in \"Apple\" AND \"Product Manager\", filter by 2nd degree connections, to find 1st degree connections who can introduce you and help you connect on LinkedIn!\n\nSecond advanced LinkedIn Tip - Publish an article and feature it so it stays \"pinned\" to your LinkedIn profile! This provides you with an easy way to expand on your experiences while keeping your experiences section bullet points clean and to the point. This also allows recruiters and potential hiring managers to find you and read up on your contributions in a complete manner. \n\nThird advanced LinkedIn Tip - Find out whether your profile was restricted by LinkedIn. Basically if you have to input the connection's email address whenever you send a connection request, there's a decent chance you got \"restricted\" by LinkedIn. To fix this, reach out to their support center and ask for forgiveness!\n\nThese are 3 advanced LinkedIn hacks and features that will hopefully bring your LinkedIn game to the next level. Get creative with it!\n\nTIMESTAMPS\n00:00 Intro\n00:58 Use Search Operators to Increase Efficiency\n02:37 Publish LinkedIn Posts and Feature it on Profile\n03:51 Why You Should Publish LinkedIn Posts\n04:56 Find Out if your Profile is Restricted\n06:04 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nGoogle Search Operators - https://moz.com/learn/seo/search-operators#:~:text=Google search operators are special,research to technical SEO audits.\n\nKinsta Study - https://kinsta.com/blog/linkedin-statistics/\nLinkedIn Help Center - https://www.linkedin.com/help/linkedin/solve/contact\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\n#LinkedInTips #youngProfessionals #advancedTips\n\nDisclaimer: My opinions are my own and may not reflect that of my employer", "Top 3 Tips to STAND OUT on LinkedIn!", "93exwIKifcw", 1, 396, false, "https://www.youtube.com/watch?v=93exwIKifcw", "/downloads/Jeff Su/2020-12-01 Top 3 Tips to STAND OUT on LinkedIn!/Top 3 Tips to STA (truncated) 16:58:34.764 [debug] QUERY OK source="sources" db=0.3ms idle=16.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.765 [debug] QUERY OK source="media_items" db=0.9ms idle=8.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-11-25 07:00:12Z], 1] 16:58:34.768 [debug] QUERY OK source="media_items" db=2.2ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The fewer mistakes you make on your first job, the better others perceive you and the faster your career progresses. In this video I share the 3 things I wish I knew when it came to common first job mistakes and talk about the things I would have done differently to avoid these professional blunders.\n\nFirst of all, if you dive into the work without first fully grasping the objective of the project, there's a good chance your final deliverable will not be what your supervisor asked for in the first place. It's best to spend 15-20 extra minutes clarifying the objective than wasting hours if not days on something completely incorrect.\n\nSecondly, another common mistake young professionals make is not taking ownership of their work by focusing only on the responsibilities given to them. To combat this, it's best to think about how your work is related to the broader objective and figure out what you can do to contribute.\n\nFinally, the one with the biggest personal consequences is making the mistake of not taking the lead on actively finding opportunities for personal development. Large corporations especially have amazing (and free!) resources for employees and you're basically missing out if you don't take advantage of them.\n\nThese are some of the things I wish I knew coming out of college; had I known these common first job mistakes, I might have been able to avoid some embarrassing experiences during my time as young management consultant. \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n01:17 Mistake #1 \n02:11 Solution \n02:55 Real Case Study\n04:01 Mistake #2 \n05:02 Solution\n06:10 Mistake #3 \n06:42 Real Story\n07:15 Overlooked resource\n08:07 Summary\n08:32 Practical benefits of avoiding these mistakes\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#realtalk #careertips #learnfrommymistakes", "3 Mistakes to AVOID at Work!", "311a0838-3ae5-4c16-b11a-5cbd5db72210", false, "czGaqnHQyyk", 1, [], 541, false, "https://www.youtube.com/watch?v=czGaqnHQyyk", 172, "/downloads/Jeff Su/2020-11-25 3 Mistakes to AVOID at Work!/3 Mistakes to AVOID at Work! [czGaqnHQyyk].mp4", false, false, 98, ~U[2020-11-25 07:00:12Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "The fewer mistakes you make on your first job, the better others perceive you and the faster your career progresses. In this video I share the 3 things I wish I knew when it came to common first job mistakes and talk about the things I would have done differently to avoid these professional blunders.\n\nFirst of all, if you dive into the work without first fully grasping the objective of the project, there's a good chance your final deliverable will not be what your supervisor asked for in the first place. It's best to spend 15-20 extra minutes clarifying the objective than wasting hours if not days on something completely incorrect.\n\nSecondly, another common mistake young professionals make is not taking ownership of their work by focusing only on the responsibilities given to them. To combat this, it's best to think about how your work is related to the broader objective and figure out what you can do to contribute.\n\nFinally, the one with the biggest personal consequences is making the mistake of not taking the lead on actively finding opportunities for personal development. Large corporations especially have amazing (and free!) resources for employees and you're basically missing out if you don't take advantage of them.\n\nThese are some of the things I wish I knew coming out of college; had I known these common first job mistakes, I might have been able to avoid some embarrassing experiences during my time as young management consultant. \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nTIMESTAMPS\n00:00 Intro\n01:17 Mistake #1 \n02:11 Solution \n02:55 Real Case Study\n04:01 Mistake #2 \n05:02 Solution\n06:10 Mistake #3 \n06:42 Real Story\n07:15 Overlooked resource\n08:07 Summary\n08:32 Practical benefits of avoiding these mistakes\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#realtalk #careertips #learnfrommymistakes", "3 Mistakes to AVOID at Work!", "czGaqnHQyyk", 1, 541, false, "https://www.youtube.com/watch?v=czGaqnHQyyk", "/downloads/Jeff Su/2020-11-25 3 Mistakes to AVOID at Work!/3 Mistakes to AVOID at Work! [czGaqnHQyyk].mp4", false, ~U[2020-11-25 07:00:12Z]] 16:58:34.769 [debug] QUERY OK source="sources" db=0.3ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.771 [debug] QUERY OK source="media_items" db=1.0ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-11-18 08:00:11Z], 1] 16:58:34.774 [debug] QUERY OK source="media_items" db=2.4ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=025\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nWhen done INCORRECTLY, informational interviews actually harms your chances of landing a job at your target company. In this video, I share 5 informational interview mistakes you must avoid at all costs, walk you through the exact wording I would use to come off as composed and confident, and give you a free networking template I made on Google Sheets. \n\nOther than preparing strong informational interview questions for your coffee chats, you want to clarify the time and topic in your initial request for an exploratory interview email. So when they receive your request, they're able to prepare ahead of time as well. After the informational interview, not only do you want to send a thank you note, you also want to make sure you follow up regularly with 3 professionals that are working in fields you are extremely interested in. Most people do not do this (it's a very common mistake) and yet this is a huge mistake you want to avoid. \n\nSo the next time you conduct an informational interview (or coffee chat), make sure you brush up on the etiquette mentioned in this video and review the dos and don'ts! \n\nTIMESTAMPS\n00:00 Intro\n01:03 Not Clarifying Time and Topic\n02:36 Putting up with Lengthy Answers\n03:48 Not Taking Notes\n04:57 Not Following Up Regularly\n07:17 Having a Weak Ending\n08:01 Strong Questions to Ask \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to do Research Video: https://youtu.be/8MYHrih6syw\nBest Questions to Ask during Informational Interviews: https://youtu.be/4b2iagdHw8M\nNetworking Template (on Google Sheets): https://www.jeffsu.org/networking-spreadsheet/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#networking #success #careertips", "5 Informational Interview Mistakes to Avoid!", "aa5c516e-f17c-49c7-acca-ddfc1664a344", false, "V_L2aWCdO4A", 1, [], 515, false, "https://www.youtube.com/watch?v=V_L2aWCdO4A", 173, "/downloads/Jeff Su/2020-11-18 5 Informational Interview Mistakes to Avoid!/5 Informational Interview Mistakes to Avoid! [V_L2aWCdO4A].mp4", false, false, 98, ~U[2020-11-18 08:00:11Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=025\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nWhen done INCORRECTLY, informational interviews actually harms your chances of landing a job at your target company. In this video, I share 5 informational interview mistakes you must avoid at all costs, walk you through the exact wording I would use to come off as composed and confident, and give you a free networking template I made on Google Sheets. \n\nOther than preparing strong informational interview questions for your coffee chats, you want to clarify the time and topic in your initial request for an exploratory interview email. So when they receive your request, they're able to prepare ahead of time as well. After the informational interview, not only do you want to send a thank you note, you also want to make sure you follow up regularly with 3 professionals that are working in fields you are extremely interested in. Most people do not do this (it's a very common mistake) and yet this is a huge mistake you want to avoid. \n\nSo the next time you conduct an informational interview (or coffee chat), make sure you brush up on the etiquette mentioned in this video and review the dos and don'ts! \n\nTIMESTAMPS\n00:00 Intro\n01:03 Not Clarifying Time and Topic\n02:36 Putting up with Lengthy Answers\n03:48 Not Taking Notes\n04:57 Not Following Up Regularly\n07:17 Having a Weak Ending\n08:01 Strong Questions to Ask \n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to do Research Video: https://youtu.be/8MYHrih6syw\nBest Questions to Ask during Informational Interviews: https://youtu.be/4b2iagdHw8M\nNetworking Template (on Google Sheets): https://www.jeffsu.org/networking-spreadsheet/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#networking #success #careertips", "5 Informational Interview Mistakes to Avoid!", "V_L2aWCdO4A", 1, 515, false, "https://www.youtube.com/watch?v=V_L2aWCdO4A", "/downloads/Jeff Su/2020-11-18 5 Informational Interview Mistakes to Avoid!/5 Informational Interview Mistakes to Avoid! [V_L2aWCdO4A].mp4", false, ~U[2020-11-18 08:00:11Z]] 16:58:34.775 [debug] QUERY OK source="sources" db=0.3ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.777 [debug] QUERY OK source="media_items" db=0.8ms idle=8.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-11-11 07:00:01Z], 1] 16:58:34.780 [debug] QUERY OK source="media_items" db=2.3ms idle=8.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=024\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n61% of people miss out on higher pay, so in this video, I'm going to share my 5 tips on how to negotiate salary after receiving a job offer and help you get over that mental barrier stopping you from salary negotiation in the first place.\n\nIn order to negotiate a salary offer effectively, you would preferably not do it over email, but rather face-to-face or over the phone. Then, imagine you are negotiating the job offer on behalf of a friend, since this helps you get into the confident and assertive mindset.\n\nYou want to give a specific salary figure when you're countering a job offer since the other party will assume you have done extensive homework into your market value. \n\nYou want to also have a walk away point (a worst case scenario) BEFORE you even begin negotiating your job offer because you definitely don't want to accept something that's way too low. \n\nFinally, when countering a job offer or countering a salary package, you want to rely on facts instead of feelings because you want to help your counterpart understand exactly why you deserve what you're asking for.\n\nThose 5 practical tips are will help you negotiate for a higher salary after a job offer! \n\nTIMESTAMPS\n00:00 Intro\n01:39 3 Practical Consequences\n03:01 Imagine you are negotiating for a friend\n03:41 Give a specific salary figure\n04:21 Have a walk away point\n04:56 Use facts, not feelings\n06:14 Negotiate ethically\n06:57 Bonus tip\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nSALARY RESEARCH WEBSITES:\ncollegegrad.com\nGlassdoor.com\nmonster.com/salary\nlivecareer.com/salary\nhttp://salary.com and Payscale.com\nonetonline.org\nCost of Living calculator\nmoney.cnn.com/calculator/pf/cost-of-living/\n\nRESEARCH I REFERENCED:\nRobert Half study: https://www.cnbc.com/2018/02/08/only-39-percent-of-workers-negotiated-their-salary-at-their-last-job-offer.html\nColumbia Business School study: https://www.sciencedirect.com/science/article/abs/pii/S0022103113000401\n📖 Teal - https://get.tealhq.com/jeffsu\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#careertips #salarynegotiation #knowyourworth #jeffsu", "How to Negotiate Salary after Job Offer | 5 Practical Tips", "85294e20-f0f0-4fce-937e-89deef9dd9bb", false, "J30wmYgzVXM", 1, [], 461, false, "https://www.youtube.com/watch?v=J30wmYgzVXM", 174, "/downloads/Jeff Su/2020-11-11 How to Negotiate Salary after Job Offer | 5 Practical Tips/How to Negotiate Salary after Job Offer | 5 Practical Tips [J30wmYgzVXM].mp4", false, false, 98, ~U[2020-11-11 07:00:01Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=024\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n61% of people miss out on higher pay, so in this video, I'm going to share my 5 tips on how to negotiate salary after receiving a job offer and help you get over that mental barrier stopping you from salary negotiation in the first place.\n\nIn order to negotiate a salary offer effectively, you would preferably not do it over email, but rather face-to-face or over the phone. Then, imagine you are negotiating the job offer on behalf of a friend, since this helps you get into the confident and assertive mindset.\n\nYou want to give a specific salary figure when you're countering a job offer since the other party will assume you have done extensive homework into your market value. \n\nYou want to also have a walk away point (a worst case scenario) BEFORE you even begin negotiating your job offer because you definitely don't want to accept something that's way too low. \n\nFinally, when countering a job offer or countering a salary package, you want to rely on facts instead of feelings because you want to help your counterpart understand exactly why you deserve what you're asking for.\n\nThose 5 practical tips are will help you negotiate for a higher salary after a job offer! \n\nTIMESTAMPS\n00:00 Intro\n01:39 3 Practical Consequences\n03:01 Imagine you are negotiating for a friend\n03:41 Give a specific salary figure\n04:21 Have a walk away point\n04:56 Use facts, not feelings\n06:14 Negotiate ethically\n06:57 Bonus tip\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖\u00A0Readwise - https://readwise.io/jeffsu/\n\nSALARY RESEARCH WEBSITES:\ncollegegrad.com\nGlassdoor.com\nmonster.com/salary\nlivecareer.com/salary\nhttp://salary.com and Payscale.com\nonetonline.org\nCost of Living calculator\nmoney.cnn.com/calculator/pf/cost-of-living/\n\nRESEARCH I REFERENCED:\nRobert Half study: https://www.cnbc.com/2018/02/08/only-39-percent-of-workers-negotiated-their-salary-at-their-last-job-offer.html\nColumbia Business School study: https://www.sciencedirect.com/science/article/abs/pii/S0022103113000401\n📖 Teal - https://get.tealhq.com/jeffsu\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#careertips #salarynegotiation #knowyourworth #jeffsu", "How to Negotiate Salary after Job Offer | 5 Practical Tips", "J30wmYgzVXM", 1, 461, false, "https://www.youtube.com/watch?v=J30wmYgzVXM", "/downloads/Jeff Su/2020-11-11 How to Negotiate Salary after Job Offer | 5 Practical Tips/How to Negotiate Salary after Job Offer | 5 Practical Tips [J30wmYgzVXM].mp4", false, ~U[2020-11-11 07:00:01Z]] 16:58:34.781 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:34.782 [debug] QUERY OK source="media_items" db=0.9ms idle=7.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-11-04 07:00:04Z], 1] 16:58:34.786 [debug] QUERY OK source="media_items" db=2.5ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=023\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nThe \"What are your greatest strengths\" interview question is supposed to be an easy question to answer, yet most people can't find the balance between modesty and arrogance. \n\nWalking into the job interview knowing what your biggest strengths are is one thing, but clearly articulating your greatest strengths in a cohesive and structured answer is a whole other thing altogether. \n\nIn this video, I share with you the 3 mistakes to avoid when answering the \"what are your greatest strengths\" question, the 3 correct things to do instead, and share with you my own sample answer from a few years ago that actually included some of these mistakes!\n\nTIMESTAMPS\n00:00 Intro\n00:56 Don't mention a technical skill\n01:56 Do this instead\n02:29 Bonus resource\n02:44 Don't say an irrelevant strength\n03:10 Say this instead\n04:30 Do not rely only on STAR format\n04:57 Include \"Learnings\" as part of your story\n05:14 My real answer with mistakes\n06:51 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020\nSTAR vs. CARL Behavioral Interview Methods - https://youtu.be/gZ2354BH0a0\nHow to Connect on LinkedIn (the right way) - https://youtu.be/9BdbGZtnFnQ\nInformational Interview Questions to ask - https://youtu.be/4b2iagdHw8M\nPlaylist on common interview questions - https://www.youtube.com/playlist?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\n💪 LIST OF STRENGTHS: \n- Action-oriented/entrepreneurial\n- Attentive/detail-oriented\n- Collaborative\n- Committed/dedicated\n- Creative\n- Determined\n- Disciplined/focused\n- Empathetic\n- Enthusiastic/passionate/driven\n- Flexible/versatile\n- Honest\n- Innovative\n- Patient\n- Respectful\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewtips #greateststrengths #behavioralinterview", "What are Your Greatest Strengths - 3 Mistakes to Avoid!", "1b282744-a88e-430c-bcae-56d397c63313", false, "jSjOO0ekQ20", 1, [], 439, false, "https://www.youtube.com/watch?v=jSjOO0ekQ20", 175, "/downloads/Jeff Su/2020-11-04 What are Your Greatest Strengths - 3 Mistakes to Avoid!/What are Your Greatest Strengths - 3 Mistakes to Avoid! [jSjOO0ekQ20].mp4", false, false, 98, ~U[2020-11-04 07:00:04Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=023\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nThe \"What are your greatest strengths\" interview question is supposed to be an easy question to answer, yet most people can't find the balance between modesty and arrogance. \n\nWalking into the job interview knowing what your biggest strengths are is one thing, but clearly articulating your greatest strengths in a cohesive and structured answer is a whole other thing altogether. \n\nIn this video, I share with you the 3 mistakes to avoid when answering the \"what are your greatest strengths\" question, the 3 correct things to do instead, and share with you my own sample answer from a few years ago that actually included some of these mistakes!\n\nTIMESTAMPS\n00:00 Intro\n00:56 Don't mention a technical skill\n01:56 Do this instead\n02:29 Bonus resource\n02:44 Don't say an irrelevant strength\n03:10 Say this instead\n04:30 Do not rely only on STAR format\n04:57 Include \"Learnings\" as part of your story\n05:14 My real answer with mistakes\n06:51 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020\nSTAR vs. CARL Behavioral Interview Methods - https://youtu.be/gZ2354BH0a0\nHow to Connect on LinkedIn (the right way) - https://youtu.be/9BdbGZtnFnQ\nInformational Interview Questions to ask - https://youtu.be/4b2iagdHw8M\nPlaylist on common interview questions - https://www.youtube.com/playlist?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\n💪 LIST OF STRENGTHS: \n- Action-oriented/entrepreneurial\n- Attentive/detail-oriented\n- Collaborative\n- Committed/dedicated\n- Creative\n- Determined\n- Disciplined/focused\n- Empathetic\n- Enthusiastic/passionate/driven\n- Flexible/versatile\n- Honest\n- Innovative\n- Patient\n- Respectful\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewtips #greateststrengths #behavioralinterview", "What are Your Greatest Strengths - 3 Mistakes to Avoid!", "jSjOO0ekQ20", 1, 439, false, "https://www.youtube.com/watch?v=jSjOO0ekQ20", "/downloads/Jeff Su/2020-11-04 What are Your Greatest Strengths - 3 Mistakes to Avoid!/What are Your Greatest Strengths - 3 Mistakes to Avoid! [jSjOO0ekQ20].mp4", false, ~U[2020-11-04 07:00:04Z]] 16:58:34.787 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:34.789 [debug] QUERY OK source="media_items" db=1.4ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-10-28 07:00:06Z], 1] 16:58:34.792 [debug] QUERY OK source="media_items" db=2.2ms idle=8.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["STAR vs. CARL: What's the best behavioral interview method? In this video I compare the popular STAR answer method with the more comprehensive CARL answer format, share sample behavioral interview questions and answers, and end with a recommendation on when to use each method.\n\nThe STAR behavioral interview method suffers from 2 limitations: (1) It allocates too much time for background information and not enough on your accomplishments, and (2) Doesn’t naturally incorporate your learnings as part of the answer prompts. Therefore, many interviewers find the STAR technique of interviewing a little bit robotic as candidates just seem to memorize answers and spit them out during the interview.\n\nWith the CARL interview method, the “L” stands for “Learning” so you should really allocate more time on reflecting what your actions and results meant for future use cases (i.e. what if you faced a similar situation again, what would you do next time?) This is where the CARL interview framework really shines.\n\nTIMESTAMPS\n00:00 Intro\n01:10 What is CARL?\n01:52 Sample answer #1\n02:54 Why “Learnings” help you stand out\n03:26 What to say for “Learnings”\n04:04 Sample answer #2\n06:20 When to use STAR\n06:55 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWrite an Incredible Resume - https://youtu.be/-Q1aIA1qMzs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#STAR #CARL #BehavioralInterviewQuestions #InterviewTips", "Don't Use STAR in Your Next Interview (Do This Instead)!", "734ffd97-61aa-46ce-aed2-ea995a7944d2", false, "gZ2354BH0a0", 1, [], 446, false, "https://www.youtube.com/watch?v=gZ2354BH0a0", 176, "/downloads/Jeff Su/2020-10-28 Don't Use STAR in Your Next Interview (Do This Instead)!/Don't Use STAR in Your Next Interview (Do This Instead)! [gZ2354BH0a0].mp4", false, false, 98, ~U[2020-10-28 07:00:06Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "STAR vs. CARL: What's the best behavioral interview method? In this video I compare the popular STAR answer method with the more comprehensive CARL answer format, share sample behavioral interview questions and answers, and end with a recommendation on when to use each method.\n\nThe STAR behavioral interview method suffers from 2 limitations: (1) It allocates too much time for background information and not enough on your accomplishments, and (2) Doesn’t naturally incorporate your learnings as part of the answer prompts. Therefore, many interviewers find the STAR technique of interviewing a little bit robotic as candidates just seem to memorize answers and spit them out during the interview.\n\nWith the CARL interview method, the “L” stands for “Learning” so you should really allocate more time on reflecting what your actions and results meant for future use cases (i.e. what if you faced a similar situation again, what would you do next time?) This is where the CARL interview framework really shines.\n\nTIMESTAMPS\n00:00 Intro\n01:10 What is CARL?\n01:52 Sample answer #1\n02:54 Why “Learnings” help you stand out\n03:26 What to say for “Learnings”\n04:04 Sample answer #2\n06:20 When to use STAR\n06:55 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWrite an Incredible Resume - https://youtu.be/-Q1aIA1qMzs\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#STAR #CARL #BehavioralInterviewQuestions #InterviewTips", "Don't Use STAR in Your Next Interview (Do This Instead)!", "gZ2354BH0a0", 1, 446, false, "https://www.youtube.com/watch?v=gZ2354BH0a0", "/downloads/Jeff Su/2020-10-28 Don't Use STAR in Your Next Interview (Do This Instead)!/Don't Use STAR in Your Next Interview (Do This Instead)! [gZ2354BH0a0].mp4", false, ~U[2020-10-28 07:00:06Z]] 16:58:34.793 [debug] QUERY OK source="sources" db=0.3ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.794 [debug] QUERY OK source="media_items" db=0.9ms idle=7.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-10-21 07:00:01Z], 1] 16:58:34.797 [debug] QUERY OK source="media_items" db=2.3ms idle=7.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=021\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nWhere Do You See Yourself In 5 Years is honestly like a trick question. How do you answer this question when most likely you won't be sticking around for that long? In this video I'll show you a formula that will let you answer this question in an honest manner without having to spend too much time figuring out \"where DO I see myself in 5 years?\"\n\nYes, this question is asking about your career goals; more specifically, your long term career goals. But too many people get caught up by trying to literally answer \"where do you see yourself in 5 YEARS?\" when they should be simply focusing on talking about the overall direction they see themselves heading towards within the company they're interviewing for.\n\nNot only do I share the formula that will help you come up with your own answer, but my example answer should give you a good idea of how you can adapt the the formula for your own needs. It's a painless strategy that you can use next time you're facing this tricky where do you see yourself in 5 years interview question!\n\nTIMESTAMPS\n\n00:00 Intro\n01:03 Uncertainty of staying for 5 years\n01:21 The Formula\n03:03 Example Answer\n04:31 Example Answer Breakdown\n05:21 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n🗣️ Common Interview Questions Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewtips #career #wheredoyouseeyourselfin5years #realanswers", "Where Do You See Yourself in 5 Years - How to Answer", "6f8435f8-3a98-48ab-ab90-c2713f7cfe77", false, "ClmHniKlt6k", 1, [], 370, false, "https://www.youtube.com/watch?v=ClmHniKlt6k", 177, "/downloads/Jeff Su/2020-10-21 Where Do You See Yourself in 5 Years - How to Answer/Where Do You See Yourself in 5 Years - How to Answer [ClmHniKlt6k].mp4", false, false, 98, ~U[2020-10-21 07:00:01Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=021\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nWhere Do You See Yourself In 5 Years is honestly like a trick question. How do you answer this question when most likely you won't be sticking around for that long? In this video I'll show you a formula that will let you answer this question in an honest manner without having to spend too much time figuring out \"where DO I see myself in 5 years?\"\n\nYes, this question is asking about your career goals; more specifically, your long term career goals. But too many people get caught up by trying to literally answer \"where do you see yourself in 5 YEARS?\" when they should be simply focusing on talking about the overall direction they see themselves heading towards within the company they're interviewing for.\n\nNot only do I share the formula that will help you come up with your own answer, but my example answer should give you a good idea of how you can adapt the the formula for your own needs. It's a painless strategy that you can use next time you're facing this tricky where do you see yourself in 5 years interview question!\n\nTIMESTAMPS\n\n00:00 Intro\n01:03 Uncertainty of staying for 5 years\n01:21 The Formula\n03:03 Example Answer\n04:31 Example Answer Breakdown\n05:21 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n🗣️ Common Interview Questions Playlist: https://www.youtube.com/playlist?list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#interviewtips #career #wheredoyouseeyourselfin5years #realanswers", "Where Do You See Yourself in 5 Years - How to Answer", "ClmHniKlt6k", 1, 370, false, "https://www.youtube.com/watch?v=ClmHniKlt6k", "/downloads/Jeff Su/2020-10-21 Where Do You See Yourself in 5 Years - How to Answer/Where Do You See Yourself in 5 Years - How to Answer [ClmHniKlt6k].mp4", false, ~U[2020-10-21 07:00:01Z]] 16:58:34.799 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=9.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.800 [debug] QUERY OK source="media_items" db=0.9ms idle=8.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-10-14 07:00:01Z], 1] 16:58:34.804 [debug] QUERY OK source="media_items" db=2.2ms decode=0.3ms idle=8.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=020\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nQuestions you ask in an informational interview (or coffee chat) can make or break the experience for both of you, so in this video I share some of my best questions to ask during informational interviews. \n\nInformational interview questions should achieve 2 goals: (1) Tease out useful and meaningful insights from the professional you’re chatting with, and (2) Make an impression on them so they’d be more willing to vouch for you in the future.\n\nI share 3 “types” of questions to ask in an informational interview and provide 2-3 examples from each type. Taken together, these 3 categories of questions will show the interviewee you have given a lot of thought on all aspects of the job and company. \n\nSo whether you call it an informational interview, exploratory interview, or simply a coffee chat, these questions will help you make a strong and positive impression that may ultimately lead to more opportunities. \n\nTIMESTAMPS\n00:00 Intro\n00:57 The 3 Types of Questions you need to Ask\n01:20 Sample Tasks and Responsibility Questions\n02:28 Sample Career Path Questions\n03:29 Sample Industry Knowledge Questions\n04:56 Non-Negotiable Question\n05:43 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#informationalinterviews #coffeechats #networking #jobsearch", "Informational Interviews: Best Questions to Ask", "a8fbd019-4fb1-40fb-b8fb-d030640d7e43", false, "4b2iagdHw8M", 1, [], 370, false, "https://www.youtube.com/watch?v=4b2iagdHw8M", 178, "/downloads/Jeff Su/2020-10-14 Informational Interviews: Best Questions to Ask/Informational Interviews: Best Questions to Ask [4b2iagdHw8M].mp4", false, false, 98, ~U[2020-10-14 07:00:01Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=020\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nQuestions you ask in an informational interview (or coffee chat) can make or break the experience for both of you, so in this video I share some of my best questions to ask during informational interviews. \n\nInformational interview questions should achieve 2 goals: (1) Tease out useful and meaningful insights from the professional you’re chatting with, and (2) Make an impression on them so they’d be more willing to vouch for you in the future.\n\nI share 3 “types” of questions to ask in an informational interview and provide 2-3 examples from each type. Taken together, these 3 categories of questions will show the interviewee you have given a lot of thought on all aspects of the job and company. \n\nSo whether you call it an informational interview, exploratory interview, or simply a coffee chat, these questions will help you make a strong and positive impression that may ultimately lead to more opportunities. \n\nTIMESTAMPS\n00:00 Intro\n00:57 The 3 Types of Questions you need to Ask\n01:20 Sample Tasks and Responsibility Questions\n02:28 Sample Career Path Questions\n03:29 Sample Industry Knowledge Questions\n04:56 Non-Negotiable Question\n05:43 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#informationalinterviews #coffeechats #networking #jobsearch", "Informational Interviews: Best Questions to Ask", "4b2iagdHw8M", 1, 370, false, "https://www.youtube.com/watch?v=4b2iagdHw8M", "/downloads/Jeff Su/2020-10-14 Informational Interviews: Best Questions to Ask/Informational Interviews: Best Questions to Ask [4b2iagdHw8M].mp4", false, ~U[2020-10-14 07:00:01Z]] 16:58:34.805 [debug] QUERY OK source="sources" db=0.4ms idle=10.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.806 [debug] QUERY OK source="media_items" db=0.9ms idle=8.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-10-07 07:00:09Z], 1] 16:58:34.810 [debug] QUERY OK source="media_items" db=2.9ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=019\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIf you have an employment gap of longer than 6 months, you will most likely need to explain that employment gap in a job interview. This video shows you the best way to reframe that question so you’re able to craft a strong, well thought-out answer when faced with skeptical interviewers who are curious about your career and job gaps. \n\nThere are plenty of valid reasons for gaps in employment; school, taking care of loved ones, market factors outside of your control. So when interviewers are asking about your employment gaps on the resume, you want to be upfront, but also focus on the skills you learned during that break in employment. \n\nThere’s no need to focus too much on the employment gap reasons, but rather on your learnings and takeaways from the unemployed period. Once you shift your own mindset away from the employment gaps on the resume, you’ll see the skills you learned, the character traits you’ve built, are all very applicable to the role you’re interviewing for. \n\nTIMESTAMPS\n00:00 Intro\n00:38 Why Employment Gaps Matter\n01:04 The Strategy\n02:05 Personal Reason Example\n03:43 Professional Scenario Example\n04:14 Sample Answer\n05:09 Last Few Pointers\n06:05 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nCommon Interview Questions Playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP&ab_channel=JeffSu\nWhy Do You Want to Work Here video - https://youtu.be/x-4MewJpaso\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#EmploymentGap #ResumeGaps #CareerAndInterviewTips", "Explain an Employment Gap in a Job Interview", "e1d61764-25ce-4811-9d8b-755c7bcdca91", false, "cr6ptEK-Mgs", 1, [], 388, false, "https://www.youtube.com/watch?v=cr6ptEK-Mgs", 179, "/downloads/Jeff Su/2020-10-07 Explain an Employment Gap in a Job Interview/Explain an Employment Gap in a Job Interview [cr6ptEK-Mgs].mp4", false, false, 98, ~U[2020-10-07 07:00:09Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=019\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIf you have an employment gap of longer than 6 months, you will most likely need to explain that employment gap in a job interview. This video shows you the best way to reframe that question so you’re able to craft a strong, well thought-out answer when faced with skeptical interviewers who are curious about your career and job gaps. \n\nThere are plenty of valid reasons for gaps in employment; school, taking care of loved ones, market factors outside of your control. So when interviewers are asking about your employment gaps on the resume, you want to be upfront, but also focus on the skills you learned during that break in employment. \n\nThere’s no need to focus too much on the employment gap reasons, but rather on your learnings and takeaways from the unemployed period. Once you shift your own mindset away from the employment gaps on the resume, you’ll see the skills you learned, the character traits you’ve built, are all very applicable to the role you’re interviewing for. \n\nTIMESTAMPS\n00:00 Intro\n00:38 Why Employment Gaps Matter\n01:04 The Strategy\n02:05 Personal Reason Example\n03:43 Professional Scenario Example\n04:14 Sample Answer\n05:09 Last Few Pointers\n06:05 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nCommon Interview Questions Playlist - https://www.youtube.com/watch?v=es7XtrloDIQ&list=PLo-kPya_Ww2wLc0USlqpuN_OAtJjc6qoP&ab_channel=JeffSu\nWhy Do You Want to Work Here video - https://youtu.be/x-4MewJpaso\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🐂 WeBull (Get 2 Free Stocks) - https://geni.us/free-stocks\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#EmploymentGap #ResumeGaps #CareerAndInterviewTips", "Explain an Employment Gap in a Job Interview", "cr6ptEK-Mgs", 1, 388, false, "https://www.youtube.com/watch?v=cr6ptEK-Mgs", "/downloads/Jeff Su/2020-10-07 Explain an Employment Gap in a Job Interview/Explain an Employment Gap in a Job Interview [cr6ptEK-Mgs].mp4", false, ~U[2020-10-07 07:00:09Z]] 16:58:34.811 [debug] QUERY OK source="sources" db=0.3ms idle=10.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.813 [debug] QUERY OK source="media_items" db=1.0ms idle=8.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-09-30 07:00:01Z], 1] 16:58:34.816 [debug] QUERY OK source="media_items" db=2.3ms idle=8.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=018\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIn this video, I share 3 practical tools you can use to research a company before going in for an interview. The three tools are all free to use but are rarely used by candidates when they research a company for an interview - super weird!\n\nThe first interview research tool I share is Google Alerts. It’s a simple application that just takes a few minutes to set up and will continue to run automatically. Think of it as a personal research assistant that updates you whenever your target company is mentioned in the news or in popular blog posts. \n\nThe second interview research tool to use when researching a company for an interview is Google Trends. This useful little product shows you user interest for the term you’re searching for and can provide very useful insights for you to bring up during the interview. \n\nThe third interview research tool is the Vault Career Library. While the premium version is accessible mainly to current college students, the free resources they provide include company research worksheets, industry research analyses, and job interview reviews. \n\nSo the next time you research a company before the job interview, make sure to spend some time with these 3 tools and make a strong impression on the interviewer! \n\nTIMESTAMPS\n00:00 Intro\n00:36 When to use research findings\n01:02 Set up Google Alerts\n04:30 Use Google Trends to find user insights\n07:23 Leverage Vault Career Library for exclusive resources\n09:10 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWhy Do You Want to Work Here video - https://youtu.be/x-4MewJpaso\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#InterviewResearch #InterviewTips #BePrepared", "How to Research Before an Interview (3 Practical Tools)", "adeb4ca4-29f2-48c5-a543-3e2eef3ae6f3", false, "8MYHrih6syw", 1, [], 587, false, "https://www.youtube.com/watch?v=8MYHrih6syw", 180, "/downloads/Jeff Su/2020-09-30 How to Research Before an Interview (3 Practical Tools)/How to Research Before an Interview (3 Practical Tools) [8MYHrih6syw].mp4", false, false, 98, ~U[2020-09-30 07:00:01Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=018\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIn this video, I share 3 practical tools you can use to research a company before going in for an interview. The three tools are all free to use but are rarely used by candidates when they research a company for an interview - super weird!\n\nThe first interview research tool I share is Google Alerts. It’s a simple application that just takes a few minutes to set up and will continue to run automatically. Think of it as a personal research assistant that updates you whenever your target company is mentioned in the news or in popular blog posts. \n\nThe second interview research tool to use when researching a company for an interview is Google Trends. This useful little product shows you user interest for the term you’re searching for and can provide very useful insights for you to bring up during the interview. \n\nThe third interview research tool is the Vault Career Library. While the premium version is accessible mainly to current college students, the free resources they provide include company research worksheets, industry research analyses, and job interview reviews. \n\nSo the next time you research a company before the job interview, make sure to spend some time with these 3 tools and make a strong impression on the interviewer! \n\nTIMESTAMPS\n00:00 Intro\n00:36 When to use research findings\n01:02 Set up Google Alerts\n04:30 Use Google Trends to find user insights\n07:23 Leverage Vault Career Library for exclusive resources\n09:10 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nWhy Do You Want to Work Here video - https://youtu.be/x-4MewJpaso\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#InterviewResearch #InterviewTips #BePrepared", "How to Research Before an Interview (3 Practical Tools)", "8MYHrih6syw", 1, 587, false, "https://www.youtube.com/watch?v=8MYHrih6syw", "/downloads/Jeff Su/2020-09-30 How to Research Before an Interview (3 Practical Tools)/How to Research Before an Interview (3 Practical Tools) [8MYHrih6syw].mp4", false, ~U[2020-09-30 07:00:01Z]] 16:58:34.817 [debug] QUERY OK source="sources" db=0.7ms idle=10.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.819 [debug] QUERY OK source="media_items" db=0.9ms idle=7.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-09-23 07:00:08Z], 1] 16:58:34.822 [debug] QUERY OK source="media_items" db=2.4ms idle=8.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=017\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n“Why do you want to work here?” is a tricky interview question since there are 3 implicit things the interviewer is looking for. Variations of this popular interview question include “Why are you interested in this position,” “Why do you want this job?” and “Why do you want to work for us?” But all three of these are asking the same thing. As long as you grasp this concept, you can take the best answer examples from this video and adapt it for your own use case. \n\nIn this video I provide sample answers that address all the implicit questions the interviewer is looking for. These example answers have worked well for me and my community so I’m confident you will find some learnings here. \n\nFirst, the interviewer is trying to figure out whether or not you have a growth mindset. Whether you’re trying to improve yourself so you can benefit their company. Do you want the job because of superficial reasons (like salary, commute, and location) or are in it for the long run?\n\nSecondly, how much research have you done? Are you really interested in working for the company you’re interviewing with? Or is it just a stepping stone to something else?\n\nFinally, how enthusiastic are you about the role? What exactly about the position interests you? Can you provide specific examples that speak to why the role would benefit both the company and you?\n\nTIMESTAMPS\n00:00 Intro\n00:23 What interviewer wants to achieve with this question\n00:50 Do you have a growth mindset?\n03:34 How much research have you done?\n05:44 How enthusiastic are you about the role?\n08:11 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nReach out to Recruiters (the right way) - https://youtu.be/jnzh5QTKbsw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#WhyHere #InterviewTips #TrickyQuestion #JeffSu", "Why Do You Want to Work Here? (Answer this Tricky Question)", "814fb375-0eb0-4c60-85dd-0ec47ec39e1f", false, "x-4MewJpaso", 1, [], 514, false, "https://www.youtube.com/watch?v=x-4MewJpaso", 181, "/downloads/Jeff Su/2020-09-23 Why Do You Want to Work Here? (Answer this Tricky Question)/Why Do You Want to Work Here? (Answer this Tricky Question) [x-4MewJpaso].mp4", false, false, 98, ~U[2020-09-23 07:00:08Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=017\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n“Why do you want to work here?” is a tricky interview question since there are 3 implicit things the interviewer is looking for. Variations of this popular interview question include “Why are you interested in this position,” “Why do you want this job?” and “Why do you want to work for us?” But all three of these are asking the same thing. As long as you grasp this concept, you can take the best answer examples from this video and adapt it for your own use case. \n\nIn this video I provide sample answers that address all the implicit questions the interviewer is looking for. These example answers have worked well for me and my community so I’m confident you will find some learnings here. \n\nFirst, the interviewer is trying to figure out whether or not you have a growth mindset. Whether you’re trying to improve yourself so you can benefit their company. Do you want the job because of superficial reasons (like salary, commute, and location) or are in it for the long run?\n\nSecondly, how much research have you done? Are you really interested in working for the company you’re interviewing with? Or is it just a stepping stone to something else?\n\nFinally, how enthusiastic are you about the role? What exactly about the position interests you? Can you provide specific examples that speak to why the role would benefit both the company and you?\n\nTIMESTAMPS\n00:00 Intro\n00:23 What interviewer wants to achieve with this question\n00:50 Do you have a growth mindset?\n03:34 How much research have you done?\n05:44 How enthusiastic are you about the role?\n08:11 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nReach out to Recruiters (the right way) - https://youtu.be/jnzh5QTKbsw\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#WhyHere #InterviewTips #TrickyQuestion #JeffSu", "Why Do You Want to Work Here? (Answer this Tricky Question)", "x-4MewJpaso", 1, 514, false, "https://www.youtube.com/watch?v=x-4MewJpaso", "/download (truncated) 16:58:34.823 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:34.824 [debug] QUERY OK source="media_items" db=0.9ms idle=7.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-09-16 07:00:06Z], 1] 16:58:34.827 [debug] QUERY OK source="media_items" db=1.8ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=016\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nIn this video you’ll learn the #1 Tip for reaching out to recruiters on LinkedIn. I provide sample messages that have been proven to work when connecting with recruiters on LinkedIn. You will learn how to contact the recruiter after job application or resume submission, so you won’t have to worry about writing those cold messages again!\n\nRecruiters on LinkedIn are usually bombarded with connection requests and messages from hopeful candidates, so how can you stand out when you reach out to recruiters on LinkedIn?\n\nI share the best tip that has worked for me and many people in my community (Facebook group linked below), followed by the 3 steps that’s needed to make it work, as well as sample messages so you can see exactly how I went about it. \n\nSo the next time you connect with or message recruiters on LinkedIn, make sure to write messages using the structure I provide in this video! Whether you’re sending a cold message or sending a follow up note after applying for a job, you’ll be able to get the recruiter’s attention. \n\nTIMESTAMPS\n00:00 Intro\n00:24 The Tip\n00:33 Why it works\n01:24 Additional pro tip\n02:02 Step 1 - Request to connect\n02:55 Step 2 - Ask recruiter for introduction\n03:59 Step 3 - Following up\n05:57 Ending\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nTop 5 LinkedIn Profile Tips video - https://youtu.be/BcfGWi8Qywk\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n#LinkedIn #Recruiter #Network", "Reach out to Recruiters on LinkedIn (the right way!)", "fd4c18f8-e778-4a80-93cd-c5009f18229b", false, "jnzh5QTKbsw", 1, [], 387, false, "https://www.youtube.com/watch?v=jnzh5QTKbsw", 182, "/downloads/Jeff Su/2020-09-16 Reach out to Recruiters on LinkedIn (the right way!)/Reach out to Recruiters on LinkedIn (the right way!) [jnzh5QTKbsw].mp4", false, false, 98, ~U[2020-09-16 07:00:06Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=016\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nIn this video you’ll learn the #1 Tip for reaching out to recruiters on LinkedIn. I provide sample messages that have been proven to work when connecting with recruiters on LinkedIn. You will learn how to contact the recruiter after job application or resume submission, so you won’t have to worry about writing those cold messages again!\n\nRecruiters on LinkedIn are usually bombarded with connection requests and messages from hopeful candidates, so how can you stand out when you reach out to recruiters on LinkedIn?\n\nI share the best tip that has worked for me and many people in my community (Facebook group linked below), followed by the 3 steps that’s needed to make it work, as well as sample messages so you can see exactly how I went about it. \n\nSo the next time you connect with or message recruiters on LinkedIn, make sure to write messages using the structure I provide in this video! Whether you’re sending a cold message or sending a follow up note after applying for a job, you’ll be able to get the recruiter’s attention. \n\nTIMESTAMPS\n00:00 Intro\n00:24 The Tip\n00:33 Why it works\n01:24 Additional pro tip\n02:02 Step 1 - Request to connect\n02:55 Step 2 - Ask recruiter for introduction\n03:59 Step 3 - Following up\n05:57 Ending\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to Connect on LinkedIn video - https://youtu.be/9BdbGZtnFnQ\nTop 5 LinkedIn Profile Tips video - https://youtu.be/BcfGWi8Qywk\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\n#LinkedIn #Recruiter #Network", "Reach out to Recruiters on LinkedIn (the right way!)", "jnzh5QTKbsw", 1, 387, false, "https://www.youtube.com/watch?v=jnzh5QTKbsw", "/downloads/Jeff Su/2020-09-16 Reach out to Recruiters on LinkedIn (the right way!)/Reach out to Recruiters on LinkedIn (the right way!) [jnzh5QTKbsw].mp4", false, ~U[2020-09-16 07:00:06Z]] 16:58:34.828 [debug] QUERY OK source="sources" db=0.3ms idle=9.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.829 [debug] QUERY OK source="media_items" db=0.9ms idle=6.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-09-09 09:00:01Z], 1] 16:58:34.839 [debug] QUERY OK source="media_items" db=8.3ms idle=7.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=015\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIn this video, I show you how to use #LinkedIn to connect like a pro! You’ll see sample LinkedIn connection requests that have impressed even me, and you’ll be able to craft your own request message template. \n\n84% of people find jobs using a “weak” relationship, and in the 21st century, LinkedIn is arguably the most powerful platform to effectively connect with these “weak” connections. \n\nThrough the three tips I mention, you will learn to connect with someone on LinkedIn without knowing the person either for a job, or just to expand your professional network! I’ll teach you how to adhere to LinkedIn connection request etiquette (super important!) and you might even be able to connect on LinkedIn without viewing the profile first! \n\nPeople are often faced with the challenge of connecting with others on LinkedIn without really knowing them beforehand or without a proper introduction; but you will soon see you are able to message someone on LinkedIn who is not a connection (for free) and write custom, thoughtful messages that get an engaged response. \n\nTIMESTAMPS\n00:00 Intro\n01:08 Tip 1 - Use Filter feature to find relevant Alumni\n02:48 Tip 2 - Message anyone on LinkedIn for free\n04:48 Tip 3 - Write custom and thoughtful messages\n06:17 Bonus tip\n07:01 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nLinkedIn Profile video - https://youtu.be/BcfGWi8Qywk\nCareer trajectory video - https://youtu.be/2MAwSCZYoVw\n\nMARK GRANOVETTER’S RESEARCH PAPER\nThe Strength of Weak Ties (full PDF) - https://sociology.stanford.edu/sites/g/files/sbiybj9501/f/publications/the_strength_of_weak_ties_and_exch_w-gans.pdf\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #Professional #Network", "LinkedIn: How to Connect Like a Pro", "5f455f58-ad51-4f43-99a5-d48ab9f444d6", false, "9BdbGZtnFnQ", 1, [], 458, false, "https://www.youtube.com/watch?v=9BdbGZtnFnQ", 183, "/downloads/Jeff Su/2020-09-09 LinkedIn: How to Connect Like a Pro/LinkedIn: How to Connect Like a Pro [9BdbGZtnFnQ].mp4", false, false, 98, ~U[2020-09-09 09:00:01Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=015\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nIn this video, I show you how to use #LinkedIn to connect like a pro! You’ll see sample LinkedIn connection requests that have impressed even me, and you’ll be able to craft your own request message template. \n\n84% of people find jobs using a “weak” relationship, and in the 21st century, LinkedIn is arguably the most powerful platform to effectively connect with these “weak” connections. \n\nThrough the three tips I mention, you will learn to connect with someone on LinkedIn without knowing the person either for a job, or just to expand your professional network! I’ll teach you how to adhere to LinkedIn connection request etiquette (super important!) and you might even be able to connect on LinkedIn without viewing the profile first! \n\nPeople are often faced with the challenge of connecting with others on LinkedIn without really knowing them beforehand or without a proper introduction; but you will soon see you are able to message someone on LinkedIn who is not a connection (for free) and write custom, thoughtful messages that get an engaged response. \n\nTIMESTAMPS\n00:00 Intro\n01:08 Tip 1 - Use Filter feature to find relevant Alumni\n02:48 Tip 2 - Message anyone on LinkedIn for free\n04:48 Tip 3 - Write custom and thoughtful messages\n06:17 Bonus tip\n07:01 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nLinkedIn Profile video - https://youtu.be/BcfGWi8Qywk\nCareer trajectory video - https://youtu.be/2MAwSCZYoVw\n\nMARK GRANOVETTER’S RESEARCH PAPER\nThe Strength of Weak Ties (full PDF) - https://sociology.stanford.edu/sites/g/files/sbiybj9501/f/publications/the_strength_of_weak_ties_and_exch_w-gans.pdf\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #Professional #Network", "LinkedIn: How to Connect Like a Pro", "9BdbGZtnFnQ", 1, 458, false, "https://www.youtube.com/watch?v=9BdbGZtnFnQ", "/downloads/Jeff Su/2020-09-09 LinkedIn: How to Connect Like a Pro/LinkedIn: How to Connect Like a Pro [9BdbGZtnFnQ].mp4", false, ~U[2020-09-09 09:00:01Z]] 16:58:34.840 [debug] QUERY OK source="sources" db=0.3ms idle=15.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.841 [debug] QUERY OK source="media_items" db=0.9ms idle=13.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-09-02 07:00:03Z], 1] 16:58:34.844 [debug] QUERY OK source="media_items" db=2.2ms idle=13.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=014\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n🌟 Updated LinkedIn Profile video 👉🏻 https://youtu.be/B4OhuzwLc9o\n\nIn this video, I share my top 5 tips for creating an amazing LinkedIn profile! These profile tips range from how to have a professional looking profile photo and LinkedIn background banner (using free tools) to how best to complement your resume with your LinkedIn profile.\n\nI also show you how I optimize my LinkedIn account: what to put in the “About” summary section, what to write in your experiences section, and how to get your own LinkedIn custom URL. Nowadays, having a professional, relevant, and searchable LinkedIn profile is more important than ever.\n\nInstead of staying high level (aka vague), I dive into my own LinkedIn profile and show examples of other great profiles and walk you through step by step on how to create a similar look and feel, while highlighting your own character and professional experiences. \n\nTIMESTAMPS\n00:00 Intro\n00:35 Tip 1 - Use free online tools to create an amazing profile picture\n05:27 Tip 2 - LinkedIn Summary should complement your resume\n07:00 Tip 3 - Showcase real work in the “Featured” section\n08:03 Tip 4 - Expand on key achievements in “Experiences” section\n09:30 Tip 5 - Get a custom LinkedIn URL\n10:00 Ending\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nWrite an Incredible Resume: 5 Golden Rules - https://youtu.be/Tt08KmFfIYQ\nLinkedIn has 575M users as of August 2020 - https://kinsta.com/blog/linkedin-statistics/\nLinkedIn has 260M MAU as of August 2020 - https://bit.ly/3gGXp9p\n[Poll] 73% of people prefer to have LinkedIn profile over resume - https://bit.ly/2EFTTPO\nWord Cloud generator: https://monkeylearn.com/word-cloud/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #profiletips #upgrade", "Top 5 LinkedIn Profile Tips!", "b02c5703-b9d5-444c-924d-27c25bdfbe74", false, "BcfGWi8Qywk", 1, [], 623, false, "https://www.youtube.com/watch?v=BcfGWi8Qywk", 184, "/downloads/Jeff Su/2020-09-02 Top 5 LinkedIn Profile Tips!/Top 5 LinkedIn Profile Tips! [BcfGWi8Qywk].mp4", false, false, 98, ~U[2020-09-02 07:00:03Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=014\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\n🌟 Updated LinkedIn Profile video 👉🏻 https://youtu.be/B4OhuzwLc9o\n\nIn this video, I share my top 5 tips for creating an amazing LinkedIn profile! These profile tips range from how to have a professional looking profile photo and LinkedIn background banner (using free tools) to how best to complement your resume with your LinkedIn profile.\n\nI also show you how I optimize my LinkedIn account: what to put in the “About” summary section, what to write in your experiences section, and how to get your own LinkedIn custom URL. Nowadays, having a professional, relevant, and searchable LinkedIn profile is more important than ever.\n\nInstead of staying high level (aka vague), I dive into my own LinkedIn profile and show examples of other great profiles and walk you through step by step on how to create a similar look and feel, while highlighting your own character and professional experiences. \n\nTIMESTAMPS\n00:00 Intro\n00:35 Tip 1 - Use free online tools to create an amazing profile picture\n05:27 Tip 2 - LinkedIn Summary should complement your resume\n07:00 Tip 3 - Showcase real work in the “Featured” section\n08:03 Tip 4 - Expand on key achievements in “Experiences” section\n09:30 Tip 5 - Get a custom LinkedIn URL\n10:00 Ending\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nWrite an Incredible Resume: 5 Golden Rules - https://youtu.be/Tt08KmFfIYQ\nLinkedIn has 575M users as of August 2020 - https://kinsta.com/blog/linkedin-statistics/\nLinkedIn has 260M MAU as of August 2020 - https://bit.ly/3gGXp9p\n[Poll] 73% of people prefer to have LinkedIn profile over resume - https://bit.ly/2EFTTPO\nWord Cloud generator: https://monkeylearn.com/word-cloud/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#LinkedIn #profiletips #upgrade", "Top 5 LinkedIn Profile Tips!", "BcfGWi8Qywk", 1, 623, false, "https://www.youtube.com/watch?v=BcfGWi8Qywk", "/downloads/Jeff Su/2020-09-02 Top 5 LinkedIn Profile Tips!/Top 5 LinkedIn Profile Tips! [BcfGWi8Qywk].mp4", false, ~U[2020-09-02 07:00:03Z]] 16:58:34.846 [debug] QUERY OK source="sources" db=0.4ms idle=15.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.847 [debug] QUERY OK source="media_items" db=1.1ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-08-26 04:00:00Z], 1] 16:58:34.851 [debug] QUERY OK source="media_items" db=2.4ms idle=7.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=013\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nShow the interviewer that you are a good fit for the position. The “Why are you a good fit for this role” interview question has many variations such as “Why should we hire you?” and “Why are you a good candidate?” But they’re all really just trying to figure out (1) What experiences or skills you have that would be applicable for the new position, (2) What you are trying to get out of it, and (3) What special characteristic you have that others do not.\n\nIf you are able to provide strong examples and communicate your unique proposition clearly, the interviewers will make their own mental connections between your background and the open role, and start convincing themselves that they indeed should hire you since your experiences clearly make you a good fit (or even the best fit) for this position. \n\nOther than giving sample answers to this “why are you a good fit” interview question, I also point out the little things to get right, such as limiting your answer length to 2-2.5 minutes maximum (similar to the “tell me about yourself” question). \n\nSo whether you are a fresher / fresh grad looking for a sample answer, or an experienced professional looking for an answer structure, this video is a great resource. You will learn how to apply the concepts here and also avoid common mistakes others make when showing the interviewer why they should hire you. \n\nTIMESTAMPS\n00:00 Intro\n00:53 What can you bring to the role\n03:08 What you want to get out of it\n05:08 What makes you unique\n06:02 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to answer: Tell me about yourself - https://youtu.be/es7XtrloDIQ\nWord Cloud generator: https://monkeylearn.com/word-cloud/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#whyshouldwehireyou #whyyou #interviewtips", "Why Are You a Good Fit for this Role - How to Answer", "bbdc8122-1fd8-4273-8d97-e441c596bb5a", false, "-HfeTdf2gSw", 1, [], 388, false, "https://www.youtube.com/watch?v=-HfeTdf2gSw", 185, "/downloads/Jeff Su/2020-08-26 Why Are You a Good Fit for this Role - How to Answer/Why Are You a Good Fit for this Role - How to Answer [-HfeTdf2gSw].mp4", false, false, 98, ~U[2020-08-26 04:00:00Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=013\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\nShow the interviewer that you are a good fit for the position. The “Why are you a good fit for this role” interview question has many variations such as “Why should we hire you?” and “Why are you a good candidate?” But they’re all really just trying to figure out (1) What experiences or skills you have that would be applicable for the new position, (2) What you are trying to get out of it, and (3) What special characteristic you have that others do not.\n\nIf you are able to provide strong examples and communicate your unique proposition clearly, the interviewers will make their own mental connections between your background and the open role, and start convincing themselves that they indeed should hire you since your experiences clearly make you a good fit (or even the best fit) for this position. \n\nOther than giving sample answers to this “why are you a good fit” interview question, I also point out the little things to get right, such as limiting your answer length to 2-2.5 minutes maximum (similar to the “tell me about yourself” question). \n\nSo whether you are a fresher / fresh grad looking for a sample answer, or an experienced professional looking for an answer structure, this video is a great resource. You will learn how to apply the concepts here and also avoid common mistakes others make when showing the interviewer why they should hire you. \n\nTIMESTAMPS\n00:00 Intro\n00:53 What can you bring to the role\n03:08 What you want to get out of it\n05:08 What makes you unique\n06:02 Summary\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\nHow to answer: Tell me about yourself - https://youtu.be/es7XtrloDIQ\nWord Cloud generator: https://monkeylearn.com/word-cloud/\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n🎨 Canva - https://partner.canva.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#whyshouldwehireyou #whyyou #interviewtips", "Why Are You a Good Fit for this Role - How to Answer", "-HfeTdf2gSw", 1, 388, false, "https://www.youtube.com/watch?v=-HfeTdf2gSw", "/downloads/Jeff Su/2020-08-26 Why Are You a Good Fit for this Role - How to Answer/Why Are You a Good Fit for this Role - How to Answer [-HfeTdf2gSw].mp4", false, ~U[2020-08-26 04:00:00Z]] 16:58:34.852 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=10.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:34.853 [debug] QUERY OK source="media_items" db=0.9ms idle=8.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-08-19 07:00:07Z], 1] 16:58:34.857 [debug] QUERY OK source="media_items" db=2.2ms idle=7.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=012\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nThe “Tell me about yourself” question is by far the most important question to get right because not only will it set the tone for the rest of the interview, but also you will get a huge confidence boost right at the beginning if start off correctly. \n\nToo often candidates tell their life stories when answering “Tell me about yourself” even when that’s going to bore the interviewer at best, and work against you at worst. This video is about how to easily answer the interview question: Tell Me About Yourself. \n\nHere, I teach you the simple steps to structure a strong answer to this common interview question. I skip over all the other more “common advice” you might find in other videos and jump right into (1) The Present, Past, and Future answer structure, (2) The Highlight Method, and (3) Providing a sample answers and examples that have worked for me and many co-workers here at Google.\n\nSo whether you are a fresher / fresh grad looking for a sample answer, or an experienced professional looking for an answer structure, this video is a great resource. You will learn how to apply the concepts here and also avoid common mistakes others make when answering “tell me about yourself.” \n\nThis is a must watch before your next interview, good luck!\n\nTIMESTAMPS\n00:00 Intro\n01:04 Present, Past, Future answer structure\n06:15 The Highlight Method\n06:58 Sample answer\n09:18 Ending\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#tellmeaboutyourself #interviewtips #sampleanswer", "Tell Me About Yourself - Structure a Strong Answer", "bdb984b2-ba93-4b2c-a6b3-de2ac05371a7", false, "es7XtrloDIQ", 1, [], 567, false, "https://www.youtube.com/watch?v=es7XtrloDIQ", 186, "/downloads/Jeff Su/2020-08-19 Tell Me About Yourself - Structure a Strong Answer/Tell Me About Yourself - Structure a Strong Answer [es7XtrloDIQ].mp4", false, false, 98, ~U[2020-08-19 07:00:07Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "🎯 My free Job Search Toolkit: https://academy.jeffsu.org/job-search-toolkit?utm_source=youtube&utm_medium=video&utm_campaign=012\n\nMy Premium Resume Package: https://jeffsu.gumroad.com/l/premium-resume-package\n\n📖 Teal - https://get.tealhq.com/jeffsu\n\nThe “Tell me about yourself” question is by far the most important question to get right because not only will it set the tone for the rest of the interview, but also you will get a huge confidence boost right at the beginning if start off correctly. \n\nToo often candidates tell their life stories when answering “Tell me about yourself” even when that’s going to bore the interviewer at best, and work against you at worst. This video is about how to easily answer the interview question: Tell Me About Yourself. \n\nHere, I teach you the simple steps to structure a strong answer to this common interview question. I skip over all the other more “common advice” you might find in other videos and jump right into (1) The Present, Past, and Future answer structure, (2) The Highlight Method, and (3) Providing a sample answers and examples that have worked for me and many co-workers here at Google.\n\nSo whether you are a fresher / fresh grad looking for a sample answer, or an experienced professional looking for an answer structure, this video is a great resource. You will learn how to apply the concepts here and also avoid common mistakes others make when answering “tell me about yourself.” \n\nThis is a must watch before your next interview, good luck!\n\nTIMESTAMPS\n00:00 Intro\n01:04 Present, Past, Future answer structure\n06:15 The Highlight Method\n06:58 Sample answer\n09:18 Ending\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\n*MY TOP 3 FAVORITE SOFTWARE*\n❎\u00A0CleanShot X - https://geni.us/cleanshotx\n✍️ Skillshare - https://geni.us/skillshare-jeff\n📖 Teal - https://get.tealhq.com/jeffsu\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#tellmeaboutyourself #interviewtips #sampleanswer", "Tell Me About Yourself - Structure a Strong Answer", "es7XtrloDIQ", 1, 567, false, "https://www.youtube.com/watch?v=es7XtrloDIQ", "/downloads/Jeff Su/2020-08-19 Tell Me About Yourself - Structure a Strong Answer/Tell Me About Yourself - Structure a Strong Answer [es7XtrloDIQ].mp4", false, ~U[2020-08-19 07:00:07Z]] 16:58:34.857 [debug] QUERY OK source="sources" db=0.3ms 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" = ?) [1] 16:58:34.859 [debug] QUERY OK source="media_items" db=1.1ms queue=0.5ms idle=7.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-08-12 07:00:00Z], 1] 16:58:36.236 [debug] QUERY OK source="media_items" db=1375.2ms idle=7.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["1,000 subscribers. Wow. Thank you.\n\nI honestly didn’t really have a plan when I started my channel. I just thought it would be cool to make helpful videos that can help students and fresh grads when it came to career and interview advice. \n\nI still remember those super cringey moments when I was job hunting back in the day. All the mistakes, the failures. But the good news is all that lead to learnings, learnings that I can share with you all, so you don’t have to go through the same painful experiences! \n\nAnyways, I hope you enjoy this video, check out the timestamps below and feel free to jump around!\n\nTIMESTAMPS\n00:00 Intro\n01:20 Hardest interview question I’ve given others\n02:38 Moment that changed trajectory of my life\n03:57 How to not be “fake” during interviews\n05:53 Would I still remain friends after becoming KOL\n06:03 Did I get Marketing/PR approval to use Google logo\n06:43 Why Shanghai office and not Hong Kong office\n07:43 Will I throw away my Lululemon pants\n08:34 My long term career plans\n09:46 How to increase the chances of being headhunted\n10:39 How to stay productive balancing work and videos\n11:25 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nTina's egg-tart video: https://youtu.be/Iy1-l8Hoc1g?t=104\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#1000subs #1kcreators #thankyou", "Q & A - 1,000 Subscribers!", "801b45d2-1d09-4358-8b3a-17477de6d086", false, "2MAwSCZYoVw", 1, [], 712, false, "https://www.youtube.com/watch?v=2MAwSCZYoVw", 187, "/downloads/Jeff Su/2020-08-12 Q & A - 1,000 Subscribers!/Q & A - 1,000 Subscribers! [2MAwSCZYoVw].mp4", false, false, 98, ~U[2020-08-12 07:00:00Z], ~U[2026-04-23 14:58:34Z], ~U[2026-04-23 14:58:34Z], "1,000 subscribers. Wow. Thank you.\n\nI honestly didn’t really have a plan when I started my channel. I just thought it would be cool to make helpful videos that can help students and fresh grads when it came to career and interview advice. \n\nI still remember those super cringey moments when I was job hunting back in the day. All the mistakes, the failures. But the good news is all that lead to learnings, learnings that I can share with you all, so you don’t have to go through the same painful experiences! \n\nAnyways, I hope you enjoy this video, check out the timestamps below and feel free to jump around!\n\nTIMESTAMPS\n00:00 Intro\n01:20 Hardest interview question I’ve given others\n02:38 Moment that changed trajectory of my life\n03:57 How to not be “fake” during interviews\n05:53 Would I still remain friends after becoming KOL\n06:03 Did I get Marketing/PR approval to use Google logo\n06:43 Why Shanghai office and not Hong Kong office\n07:43 Will I throw away my Lululemon pants\n08:34 My long term career plans\n09:46 How to increase the chances of being headhunted\n10:39 How to stay productive balancing work and videos\n11:25 Ending\n\n💪 Support this channel by becoming a member: https://www.youtube.com/channel/UCwAnu01qlnVg1Ai2AbtTMaA/join\n\nRESOURCES I MENTION IN THE VIDEO\nTina's egg-tart video: https://youtu.be/Iy1-l8Hoc1g?t=104\n\nMY FAVORITE GEAR\n🎥 My YouTube Gear - https://geni.us/youtube-gear\n🎒 What's In My Bag - https://geni.us/mybag\n💻 What's On My Desk - https://geni.us/mydesk\n🛩 What I Travel With - https://geni.us/mytravel\n\nMY FAVORITE SOFTWARE\n✍️ Skillshare - https://geni.us/skillshare-jeff\n\nBE MY FRIEND:\n📧 Subscribe to my Productivity newsletter - https://www.jeffsu.org/productivity-ping/\n📸 Instagram - https://instagram.com/j.sushie\n🤝 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - https://www.joinclubhouse.com/@jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a full time Product Marketer. In my spare time I like to tinker with tools and create systems that help me get things done faster - or as one of my friends puts it: \"Get better at being lazy\" 😏\nIf you'd like to talk, I'd love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\nPS: Some of the links in this description are affiliate links I get a kickback from 😇\n\nDisclaimer: My opinions are my own and may not reflect that of my employer\n\n#1000subs #1kcreators #thankyou", "Q & A - 1,000 Subscribers!", "2MAwSCZYoVw", 1, 712, false, "https://www.youtube.com/watch?v=2MAwSCZYoVw", "/downloads/Jeff Su/2020-08-12 Q & A - 1,000 Subscribers!/Q & A - 1,000 Subscribers! [2MAwSCZYoVw].mp4", false, ~U[2020-08-12 07:00:00Z]] 16:58:36.237 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1378.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:36.240 [debug] QUERY OK source="media_items" db=2.6ms queue=0.1ms idle=1377.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-06-03 22:45:01Z], 1] 16:58:37.223 [debug] QUERY OK source="media_items" db=982.0ms idle=1199.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["In this video I'll be sharing 3 practical tips for interview preparation with Google! \n\nAnswering \"Tell me about yourself\" is important yes, but you can fully leverage your answer to influence what questions the interviewer asks next. This way, you have strong \"pre-prepared\" answers to those questions as well!\n\nCase interview questions are an integral part of interviews (not just with Google) nowadays. And having a strong synthesis can save an otherwise weak answer. \n\nDoing research is obviously key before any interview. But what are some specific strategies or tools you can use? \n\nTIMESTAMPS\n00:00 Intro\n00:13 How to influence the interviewer\n02:46 How to structure a strong synthesis for case interview questions\n05:19 How to do your research and \"cheat\"\n\nASK ME QUESTIONS DIRECTLY\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n\nRESOURCES I MENTION IN THE VIDEO (no affiliates):\n101 Intro to Case Interview Questions: https://youtu.be/6R5bT4cJh0A\nCase Interview Secrets (book): https://amzn.to/36RV8VA\nCase Interview Secrets (website): https://www.caseinterview.com\nVictor Cheng's Free PDF Download: https://www.caseinterview.com/case_interview_slides.pdf\n📗 Medium Article (7-minute read) - https://bit.ly/3gJwxXA\n\n✅ MY RECOMMENDATIONS*\nSkillshare - Start learning new things with a free trial: http://skillshare.eqcm.net/jeffsu\n\nBE MY FRIEND:\n📸 Instagram - https://instagram.com/j.sushie\n💻 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a Product Marketer at Google. When I’m not busy...Googling answers at work, I make videos that help you pass interviews, accelerate your career, and be more productive! \nIf you’d like to talk, I’d love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\n*These are affiliate links, meaning you are supporting me directly if you sign up or purchase using this link. The price for you stays exactly the same! Thank you so much! \n\nDisclaimer: My opinions are my own and may not reflect those of my employer\n\nVIDEO CONTENT\nTip number 1: Nail the “Tell me about yourself question”\nThis standard opener is designed to ease both of you into the interview.\nYour answer will set the tone for the rest of the conversation yes. More importantly, it gives you an opportunity to influence what the interviewer might ask next\nYou do this by simply focusing on 1 memorable highlight for each experience you bring up. \nLet’s take me for example. I’m in marketing now, I was in sales before, and in management consulting before that. So my answer might sound something like “I’m currently a Product Marketer at Google. A recent project I worked on is called Start on Android, and that drove 200% YoY revenue. When I was an Account Manager in the sales team, I created videos on how to optimize Google Ads accounts to better engage my clients. The quality was horrendous but it got the job done. Before that when I was in consulting, one of the toughest projects I worked on required me to travel for 6 months straight. However, the client was extremely pleased with the outcome and we successfully pitched a follow up engagement\nIn this oversimplified example, you might remember the key highlights I mentioned. The 200% YoY growth, creating crappy but effective YouTube videos. Traveling for 6 months straight but having it pay off. \nSo with all these highlights, the interviewer is very likely to follow up with additional questions. \n“What was your role in SOA?”\nOther than viewership what did you measure?\nTherefore, a rule of thumb is to always start with your current, most relevant experience, and move backwards. \nIf you’re a young working professional, mention highlights from the last 2-3 roles you’ve worked in\nIf you’re still in college, the most recent internships, part time jobs, leadership experiences you’re involved in\n\nTip number 2: Have a strong synthesis for case interview questions\nGoogle, like 90% of tech firms, incorporate some version of the case interview question in their application process. If you’re " <> ..., "Preparing for Interviews: 3 Practical Tips!", "b5ae0db2-d2da-477b-9fef-a3315bab7e83", false, "9OD2HWGTzPA", 1, [], 423, false, "https://www.youtube.com/watch?v=9OD2HWGTzPA", 188, "/downloads/Jeff Su/2020-06-03 Preparing for Interviews: 3 Practical Tips!/Preparing for Interviews: 3 Practical Tips! [9OD2HWGTzPA].mp4", false, false, 98, ~U[2020-06-03 22:45:01Z], ~U[2026-04-23 14:58:36Z], ~U[2026-04-23 14:58:36Z], "In this video I'll be sharing 3 practical tips for interview preparation with Google! \n\nAnswering \"Tell me about yourself\" is important yes, but you can fully leverage your answer to influence what questions the interviewer asks next. This way, you have strong \"pre-prepared\" answers to those questions as well!\n\nCase interview questions are an integral part of interviews (not just with Google) nowadays. And having a strong synthesis can save an otherwise weak answer. \n\nDoing research is obviously key before any interview. But what are some specific strategies or tools you can use? \n\nTIMESTAMPS\n00:00 Intro\n00:13 How to influence the interviewer\n02:46 How to structure a strong synthesis for case interview questions\n05:19 How to do your research and \"cheat\"\n\nASK ME QUESTIONS DIRECTLY\n🙋👦🏻 Facebook Group - https://www.facebook.com/groups/1190183907995020/\n\nRESOURCES I MENTION IN THE VIDEO (no affiliates):\n101 Intro to Case Interview Questions: https://youtu.be/6R5bT4cJh0A\nCase Interview Secrets (book): https://amzn.to/36RV8VA\nCase Interview Secrets (website): https://www.caseinterview.com\nVictor Cheng's Free PDF Download: https://www.caseinterview.com/case_interview_slides.pdf\n📗 Medium Article (7-minute read) - https://bit.ly/3gJwxXA\n\n✅ MY RECOMMENDATIONS*\nSkillshare - Start learning new things with a free trial: http://skillshare.eqcm.net/jeffsu\n\nBE MY FRIEND:\n📸 Instagram - https://instagram.com/j.sushie\n💻 LinkedIn - https://www.linkedin.com/in/jsu05/\n👋🏻 Clubhouse - @jsushie\n\n👨🏻\u200D💻 WHO AM I:\nI'm Jeff, a Product Marketer at Google. When I’m not busy...Googling answers at work, I make videos that help you pass interviews, accelerate your career, and be more productive! \nIf you’d like to talk, I’d love to hear from you. Messaging me on Instagram (@j.sushie) directly will be the quickest way to get a response!\n\n*These are affiliate links, meaning you are supporting me directly if you sign up or purchase using this link. The price for you stays exactly the same! Thank you so much! \n\nDisclaimer: My opinions are my own and may not reflect those of my employer\n\nVIDEO CONTENT\nTip number 1: Nail the “Tell me about yourself question”\nThis standard opener is designed to ease both of you into the interview.\nYour answer will set the tone for the rest of the conversation yes. More importantly, it gives you an opportunity to influence what the interviewer might ask next\nYou do this by simply focusing on 1 memorable highlight for each experience you bring up. \nLet’s take me for example. I’m in marketing now, I was in sales before, and in management consulting before that. So my answer might s (truncated) 16:58:37.224 [debug] QUERY OK source="sources" db=0.3ms idle=988.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.225 [debug] QUERY OK source="media_items" db=0.9ms idle=987.8ms 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 13:15:06Z], 1] 16:58:37.228 [debug] QUERY OK source="media_items" db=1.4ms idle=986.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["3 (more) common #AI terms most people don’t know:\n\nTerm 1: Grounding.\nWithout it, AI answers from memory, which may or may not be correct. Hand it the actual document and say \"answer from this,\" and now the response is grounded in something real. Whenever accuracy matters, give the AI something to reference.\n\nTerm 2: RAG (Retrieval Augmented Generation).\nWithout RAG, the AI writes from memory. With RAG, it goes to the library first, pulls the relevant sources, then generates its answer. The rule of thumb: if an AI tool cites its sources, it most likely uses #RAG. If it doesn't, it's guessing.\n\nTerm 3: Context engineering.\nPrompt engineering focuses on writing a good prompt (task, context, tone). Context engineering focuses on assembling everything the AI needs: background, examples, constraints. Spend your time on the context, not the wording.", "Stop perfecting your prompt. Do this instead", "98050218-6682-497d-8146-146dbae7c37f", false, "jxHIw_OA8_I", 1, [], 57, false, "https://www.youtube.com/shorts/jxHIw_OA8_I", 1, "/downloads/Jeff Su/2026-04-18 Stop perfecting your prompt. Do this instead/Stop perfecting your prompt. Do this instead [jxHIw_OA8_I].mp4", false, true, 98, ~U[2026-04-18 13:15:06Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "3 (more) common #AI terms most people don’t know:\n\nTerm 1: Grounding.\nWithout it, AI answers from memory, which may or may not be correct. Hand it the actual document and say \"answer from this,\" and now the response is grounded in something real. Whenever accuracy matters, give the AI something to reference.\n\nTerm 2: RAG (Retrieval Augmented Generation).\nWithout RAG, the AI writes from memory. With RAG, it goes to the library first, pulls the relevant sources, then generates its answer. The rule of thumb: if an AI tool cites its sources, it most likely uses #RAG. If it doesn't, it's guessing.\n\nTerm 3: Context engineering.\nPrompt engineering focuses on writing a good prompt (task, context, tone). Context engineering focuses on assembling everything the AI needs: background, examples, constraints. Spend your time on the context, not the wording.", "Stop perfecting your prompt. Do this instead", "jxHIw_OA8_I", 1, 57, false, "https://www.youtube.com/shorts/jxHIw_OA8_I", "/downloads/Jeff Su/2026-04-18 Stop perfecting your prompt. Do this instead/Stop perfecting your prompt. Do this instead [jxHIw_OA8_I].mp4", true, ~U[2026-04-18 13:15:06Z]] 16:58:37.228 [debug] QUERY OK source="sources" db=0.2ms idle=183.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.230 [debug] QUERY OK source="media_items" db=0.8ms idle=6.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-10 13:01:29Z], 1] 16:58:37.232 [debug] QUERY OK source="media_items" db=1.3ms idle=6.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#AI hallucination is the flip side of creativity. That's the first of three terms most people misunderstand.\n\nTerm 1: Hallucination. The same mechanism that produces wrong answers is what generates creative writing, ideas, and novel connections. The real question is whether your task needs creativity or accuracy. Turning off web search in #ChatGPT or Claude gives you more creativity. Turning it on gives you more accuracy.\n\nTerm 2: Context window. Think of it as a fixed-size whiteboard. Once it's full, the AI drops older information to fit new input. If your AI starts giving weird answers mid-conversation, just start a new chat.\n\nTerm 3: Tokens. This is why free plans have usage limits. AI breaks your words into chunks called tokens, and every chunk costs usage. Better prompts mean fewer tokens, so you get more out of your plan before hitting the cap.", "Most people get these 3 AI terms wrong", "9947d4b5-ffb6-4be4-9438-89386ca60fd3", false, "gbI7THwqEjk", 1, [], 57, false, "https://www.youtube.com/shorts/gbI7THwqEjk", 2, "/downloads/Jeff Su/2026-04-10 Most people get these 3 AI terms wrong/Most people get these 3 AI terms wrong [gbI7THwqEjk].mp4", false, true, 98, ~U[2026-04-10 13:01:29Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "#AI hallucination is the flip side of creativity. That's the first of three terms most people misunderstand.\n\nTerm 1: Hallucination. The same mechanism that produces wrong answers is what generates creative writing, ideas, and novel connections. The real question is whether your task needs creativity or accuracy. Turning off web search in #ChatGPT or Claude gives you more creativity. Turning it on gives you more accuracy.\n\nTerm 2: Context window. Think of it as a fixed-size whiteboard. Once it's full, the AI drops older information to fit new input. If your AI starts giving weird answers mid-conversation, just start a new chat.\n\nTerm 3: Tokens. This is why free plans have usage limits. AI breaks your words into chunks called tokens, and every chunk costs usage. Better prompts mean fewer tokens, so you get more out of your plan before hitting the cap.", "Most people get these 3 AI terms wrong", "gbI7THwqEjk", 1, 57, false, "https://www.youtube.com/shorts/gbI7THwqEjk", "/downloads/Jeff Su/2026-04-10 Most people get these 3 AI terms wrong/Most people get these 3 AI terms wrong [gbI7THwqEjk].mp4", true, ~U[2026-04-10 13:01:29Z]] 16:58:37.232 [debug] QUERY OK source="sources" db=0.2ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.233 [debug] QUERY OK source="media_items" db=0.8ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-04-02 13:29:33Z], 1] 16:58:37.235 [debug] QUERY OK source="media_items" db=1.2ms idle=5.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#ClaudeCowork is the next level up from #Claude Chat. Here are the 3 biggest shifts in how you work.\n\nShift 1: Claude Chat limits you to 20 files per conversation and 30MB per file, since everything uploads to the cloud. Claude Cowork reads directly from your computer, so there's no file limit and no size cap.\n\nShift 2: Claude Chat has a much smaller context window, meaning it starts compacting your conversation and losing important details way sooner than Claude Cowork.\n\nShift 3: Claude Chat gives you answers in a chat window, so you still have to do something with it yourself. Claude Cowork delivers ready-to-use files directly in your folder. I gave it 100+ receipts and got back a complete expense report in Excel, even flagging rows for me to review.", "#claude Chat vs. Cowork: Biggest 3 differences", "1dba0ad7-09ff-4d47-95af-73319db0fbdc", false, "6PZCZWvNVHc", 1, [], 43, false, "https://www.youtube.com/shorts/6PZCZWvNVHc", 3, "/downloads/Jeff Su/2026-04-02 #claude Chat vs. Cowork: Biggest 3 differences/#claude Chat vs. Cowork: Biggest 3 differences [6PZCZWvNVHc].mp4", false, true, 98, ~U[2026-04-02 13:29:33Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "#ClaudeCowork is the next level up from #Claude Chat. Here are the 3 biggest shifts in how you work.\n\nShift 1: Claude Chat limits you to 20 files per conversation and 30MB per file, since everything uploads to the cloud. Claude Cowork reads directly from your computer, so there's no file limit and no size cap.\n\nShift 2: Claude Chat has a much smaller context window, meaning it starts compacting your conversation and losing important details way sooner than Claude Cowork.\n\nShift 3: Claude Chat gives you answers in a chat window, so you still have to do something with it yourself. Claude Cowork delivers ready-to-use files directly in your folder. I gave it 100+ receipts and got back a complete expense report in Excel, even flagging rows for me to review.", "#claude Chat vs. Cowork: Biggest 3 differences", "6PZCZWvNVHc", 1, 43, false, "https://www.youtube.com/shorts/6PZCZWvNVHc", "/downloads/Jeff Su/2026-04-02 #claude Chat vs. Cowork: Biggest 3 differences/#claude Chat vs. Cowork: Biggest 3 differences [6PZCZWvNVHc].mp4", true, ~U[2026-04-02 13:29:33Z]] 16:58:37.236 [debug] QUERY OK source="sources" db=0.3ms idle=6.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.238 [debug] QUERY OK source="media_items" db=0.9ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 13:00:36Z], 1] 16:58:37.240 [debug] QUERY OK source="media_items" db=1.2ms idle=5.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["If you're prompting #ClaudeCowork the same way you prompt #Claude Chat, you're doing it wrong.\n\nClaude Chat uses task-first language. You guide every step: \"Do this first. Now format it like that.\"\n\nCowork uses outcome-first language. You describe the end result and let it figure out the approach.\n\nFor example, with Claude Chat: \"I have 15 raw thumbnail images. What naming convention would you recommend?\"\n\nYou get a recommendation, then do the work yourself.\n\nWith Claude Cowork on the other hand: \"Rename each photo based on what's in it and sort them into subfolders by type.\"\n\nTwo minutes later, the work is done.\n\nShare this with someone just getting started with Cowork 😁\n\n#AI", "Claude Cowork: The #1 Thing To Know", "5088ebc0-04f6-45e5-ac52-bbd09c7e402f", false, "KS-p0e-KwBA", 1, [], 48, false, "https://www.youtube.com/shorts/KS-p0e-KwBA", 4, "/downloads/Jeff Su/2026-03-26 Claude Cowork: The #1 Thing To Know/Claude Cowork: The #1 Thing To Know [KS-p0e-KwBA].mp4", false, true, 98, ~U[2026-03-26 13:00:36Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "If you're prompting #ClaudeCowork the same way you prompt #Claude Chat, you're doing it wrong.\n\nClaude Chat uses task-first language. You guide every step: \"Do this first. Now format it like that.\"\n\nCowork uses outcome-first language. You describe the end result and let it figure out the approach.\n\nFor example, with Claude Chat: \"I have 15 raw thumbnail images. What naming convention would you recommend?\"\n\nYou get a recommendation, then do the work yourself.\n\nWith Claude Cowork on the other hand: \"Rename each photo based on what's in it and sort them into subfolders by type.\"\n\nTwo minutes later, the work is done.\n\nShare this with someone just getting started with Cowork 😁\n\n#AI", "Claude Cowork: The #1 Thing To Know", "KS-p0e-KwBA", 1, 48, false, "https://www.youtube.com/shorts/KS-p0e-KwBA", "/downloads/Jeff Su/2026-03-26 Claude Cowork: The #1 Thing To Know/Claude Cowork: The #1 Thing To Know [KS-p0e-KwBA].mp4", true, ~U[2026-03-26 13:00:36Z]] 16:58:37.241 [debug] QUERY OK source="sources" db=0.2ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.242 [debug] QUERY OK source="media_items" db=0.8ms idle=5.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-20 14:05:51Z], 1] 16:58:37.244 [debug] QUERY OK source="media_items" db=1.2ms idle=5.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Most of what you upload to #NotebookLM won't make it into your final output. The trick is figuring out what matters without reading everything.\n\nThat's where Mind Maps come in.\n\nInstead of scanning through every source, you generate one map and instantly see every topic and subtopic laid out visually, allowing you to cherry-pick what's relevant and skip the rest.\n\nSince my audience cares a LOT more about practical tips as opposed to technical stuff, I clicked \"11 Practical Techniques\" on the mind map and skipped \"Agentic Toggles API Tips\" entirely.\n\nThis opens a focused chat where I could find the specific subtopics that my viewers would actually appreciate! 😁\n\nTry this next time you're prepping a project with multiple sources.\n\n#AI #productivity", "This NotebookLM feature cuts my workload by 50%", "86c5d345-ee5f-4e51-8a41-daaad9c2c7c8", false, "kCxlQcKsoZg", 1, [], 40, false, "https://www.youtube.com/shorts/kCxlQcKsoZg", 5, "/downloads/Jeff Su/2026-03-20 This NotebookLM feature cuts my workload by 50%/This NotebookLM feature cuts my workload by 50% [kCxlQcKsoZg].mp4", false, true, 98, ~U[2026-03-20 14:05:51Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "Most of what you upload to #NotebookLM won't make it into your final output. The trick is figuring out what matters without reading everything.\n\nThat's where Mind Maps come in.\n\nInstead of scanning through every source, you generate one map and instantly see every topic and subtopic laid out visually, allowing you to cherry-pick what's relevant and skip the rest.\n\nSince my audience cares a LOT more about practical tips as opposed to technical stuff, I clicked \"11 Practical Techniques\" on the mind map and skipped \"Agentic Toggles API Tips\" entirely.\n\nThis opens a focused chat where I could find the specific subtopics that my viewers would actually appreciate! 😁\n\nTry this next time you're prepping a project with multiple sources.\n\n#AI #productivity", "This NotebookLM feature cuts my workload by 50%", "kCxlQcKsoZg", 1, 40, false, "https://www.youtube.com/shorts/kCxlQcKsoZg", "/downloads/Jeff Su/2026-03-20 This NotebookLM feature cuts my workload by 50%/This NotebookLM feature cuts my workload by 50% [kCxlQcKsoZg].mp4", true, ~U[2026-03-20 14:05:51Z]] 16:58:37.244 [debug] QUERY OK source="sources" db=0.3ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.246 [debug] QUERY OK source="media_items" db=0.9ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-11 12:11:32Z], 1] 16:58:37.248 [debug] QUERY OK source="media_items" db=1.0ms idle=5.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#NotebookLM now has more search interest than even Google Gemini.\n\nIts core advantage is the same as before though: you throw in documents across different formats and get a grounded answer instead of hallucinations.\n\nUse it when you know which sources have the answers, those sources are in different formats, and accuracy actually matters.", "NotebookLM is now bigger than Gemini", "4ab8613b-e5bf-408f-a397-3c7997c76420", false, "Nfe5OCLeD38", 1, [], 52, false, "https://www.youtube.com/shorts/Nfe5OCLeD38", 6, "/downloads/Jeff Su/2026-03-11 NotebookLM is now bigger than Gemini/NotebookLM is now bigger than Gemini [Nfe5OCLeD38].mp4", false, true, 98, ~U[2026-03-11 12:11:32Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "#NotebookLM now has more search interest than even Google Gemini.\n\nIts core advantage is the same as before though: you throw in documents across different formats and get a grounded answer instead of hallucinations.\n\nUse it when you know which sources have the answers, those sources are in different formats, and accuracy actually matters.", "NotebookLM is now bigger than Gemini", "Nfe5OCLeD38", 1, 52, false, "https://www.youtube.com/shorts/Nfe5OCLeD38", "/downloads/Jeff Su/2026-03-11 NotebookLM is now bigger than Gemini/NotebookLM is now bigger than Gemini [Nfe5OCLeD38].mp4", true, ~U[2026-03-11 12:11:32Z]] 16:58:37.249 [debug] QUERY OK source="sources" db=0.3ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.250 [debug] QUERY OK source="media_items" db=0.8ms idle=5.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-27 13:01:41Z], 1] 16:58:37.251 [debug] QUERY OK source="media_items" db=1.0ms idle=5.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I use all three AI tools daily. Here's why.\n\nChatGPT follows complex instructions better than anything else. Gemini processes video, audio, and images natively. Claude writes first drafts that barely need editing. They're not interchangeable.\n\nMy actual workflow: ChatGPT and Gemini handle ideation and research. Claude handles the final polish.", "When to use #ChatGPT, #Gemini, and #Claude", "84bff95a-5e3d-48af-ae8b-a54c0335df72", false, "sfwax2dVPvI", 1, [], 57, false, "https://www.youtube.com/shorts/sfwax2dVPvI", 7, "/downloads/Jeff Su/2026-02-27 When to use #ChatGPT, #Gemini, and #Claude/When to use #ChatGPT, #Gemini, and #Claude [sfwax2dVPvI].mp4", false, true, 98, ~U[2026-02-27 13:01:41Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "I use all three AI tools daily. Here's why.\n\nChatGPT follows complex instructions better than anything else. Gemini processes video, audio, and images natively. Claude writes first drafts that barely need editing. They're not interchangeable.\n\nMy actual workflow: ChatGPT and Gemini handle ideation and research. Claude handles the final polish.", "When to use #ChatGPT, #Gemini, and #Claude", "sfwax2dVPvI", 1, 57, false, "https://www.youtube.com/shorts/sfwax2dVPvI", "/downloads/Jeff Su/2026-02-27 When to use #ChatGPT, #Gemini, and #Claude/When to use #ChatGPT, #Gemini, and #Claude [sfwax2dVPvI].mp4", true, ~U[2026-02-27 13:01:41Z]] 16:58:37.252 [debug] QUERY OK source="sources" db=0.2ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.253 [debug] QUERY OK source="media_items" db=0.8ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-02 13:21:27Z], 1] 16:58:37.255 [debug] QUERY OK source="media_items" db=1.0ms idle=5.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["AI feels like extra work when it should be effortless.\n\n❌\u00A0Your phone's share sheet is the problem. By default, AI apps are buried at the bottom.\n\n✅\u00A0Move ChatGPT next to AirDrop on iPhone or pin it to the top on Android.", "The 30-second fix for #AI on mobile", "264be97f-ff84-4517-9d87-aa9cd25e3628", false, "-rWNkgdaYZI", 1, [], 42, false, "https://www.youtube.com/shorts/-rWNkgdaYZI", 8, "/downloads/Jeff Su/2025-10-02 The 30-second fix for #AI on mobile/The 30-second fix for #AI on mobile [-rWNkgdaYZI].mp4", false, true, 98, ~U[2025-10-02 13:21:27Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "AI feels like extra work when it should be effortless.\n\n❌\u00A0Your phone's share sheet is the problem. By default, AI apps are buried at the bottom.\n\n✅\u00A0Move ChatGPT next to AirDrop on iPhone or pin it to the top on Android.", "The 30-second fix for #AI on mobile", "-rWNkgdaYZI", 1, 42, false, "https://www.youtube.com/shorts/-rWNkgdaYZI", "/downloads/Jeff Su/2025-10-02 The 30-second fix for #AI on mobile/The 30-second fix for #AI on mobile [-rWNkgdaYZI].mp4", true, ~U[2025-10-02 13:21:27Z]] 16:58:37.256 [debug] QUERY OK source="sources" db=0.2ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.257 [debug] QUERY OK source="media_items" db=0.8ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-25 12:52:34Z], 1] 16:58:37.259 [debug] QUERY OK source="media_items" db=0.9ms idle=5.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["One iPhone button made me actually use ChatGPT daily.\n\nThe action button launches ChatGPT voice dictation instantly, which means almost no decision fatigue.\n\nI find myself using AI for quick tasks I'd normally skip because it's now effortless.", "Activate ChatGPT with iPhone’s Action Button", "5062a6e8-efb5-49fc-bfad-d3bca12c11a0", false, "H4AbF6JP6J4", 1, [], 49, false, "https://www.youtube.com/shorts/H4AbF6JP6J4", 9, "/downloads/Jeff Su/2025-09-25 Activate ChatGPT with iPhone’s Action Button/Activate ChatGPT with iPhone’s Action Button [H4AbF6JP6J4].mp4", false, true, 98, ~U[2025-09-25 12:52:34Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "One iPhone button made me actually use ChatGPT daily.\n\nThe action button launches ChatGPT voice dictation instantly, which means almost no decision fatigue.\n\nI find myself using AI for quick tasks I'd normally skip because it's now effortless.", "Activate ChatGPT with iPhone’s Action Button", "H4AbF6JP6J4", 1, 49, false, "https://www.youtube.com/shorts/H4AbF6JP6J4", "/downloads/Jeff Su/2025-09-25 Activate ChatGPT with iPhone’s Action Button/Activate ChatGPT with iPhone’s Action Button [H4AbF6JP6J4].mp4", true, ~U[2025-09-25 12:52:34Z]] 16:58:37.259 [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" = ?) [1] 16:58:37.260 [debug] QUERY OK source="media_items" db=0.8ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-17 13:19:53Z], 1] 16:58:37.263 [debug] QUERY OK source="media_items" db=1.0ms idle=5.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Google's Nano Banana has a superpower Midjourney doesn't.\n\n1️⃣\u00A0Midjourney wins at creating beautiful new images from scratch.\n\n2️⃣\u00A0Nano Banana does something completely different: it edits existing photos with perfect integration.\n\nReplace any object while keeping the exact lighting, shadows, and angles of the original photo.\n\nTwo different tools for two different jobs. One creates, one transforms.", "Midjourney vs. Google's Nano Banana", "8f911362-6991-48ef-b2be-b6011aff3c60", false, "XOfuq-EtZ3A", 1, [], 35, false, "https://www.youtube.com/shorts/XOfuq-EtZ3A", 10, "/downloads/Jeff Su/2025-09-17 Midjourney vs. Google's Nano Banana/Midjourney vs. Google's Nano Banana [XOfuq-EtZ3A].mp4", false, true, 98, ~U[2025-09-17 13:19:53Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "Google's Nano Banana has a superpower Midjourney doesn't.\n\n1️⃣\u00A0Midjourney wins at creating beautiful new images from scratch.\n\n2️⃣\u00A0Nano Banana does something completely different: it edits existing photos with perfect integration.\n\nReplace any object while keeping the exact lighting, shadows, and angles of the original photo.\n\nTwo different tools for two different jobs. One creates, one transforms.", "Midjourney vs. Google's Nano Banana", "XOfuq-EtZ3A", 1, 35, false, "https://www.youtube.com/shorts/XOfuq-EtZ3A", "/downloads/Jeff Su/2025-09-17 Midjourney vs. Google's Nano Banana/Midjourney vs. Google's Nano Banana [XOfuq-EtZ3A].mp4", true, ~U[2025-09-17 13:19:53Z]] 16:58:37.263 [debug] QUERY OK source="sources" db=0.2ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.264 [debug] QUERY OK source="media_items" db=0.8ms idle=4.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-10 13:00:02Z], 1] 16:58:37.271 [debug] QUERY OK source="media_items" db=5.1ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["You can drag ANY text, image, or file directly into ChatGPT for instant analysis.\n\nYou can take this a step further with Text Replacement.\n\nTurn your most-used prompts into simple shortcuts that expand automatically.\n\nTakes 30 seconds to set up, saves hours every week.\n\n== PROMPT ==\n\nAnalyze this excerpt. Share the top 5 takeaways and share a clear, concise, and objective summary.\n\n== END ==", "AI Tip for iPhone Users", "0f4f5761-0a6d-41ca-8b75-52620b3293d1", false, "0khAlILG8e4", 1, [], 35, false, "https://www.youtube.com/shorts/0khAlILG8e4", 11, "/downloads/Jeff Su/2025-09-10 AI Tip for iPhone Users/AI Tip for iPhone Users [0khAlILG8e4].mp4", false, true, 98, ~U[2025-09-10 13:00:02Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "You can drag ANY text, image, or file directly into ChatGPT for instant analysis.\n\nYou can take this a step further with Text Replacement.\n\nTurn your most-used prompts into simple shortcuts that expand automatically.\n\nTakes 30 seconds to set up, saves hours every week.\n\n== PROMPT ==\n\nAnalyze this excerpt. Share the top 5 takeaways and share a clear, concise, and objective summary.\n\n== END ==", "AI Tip for iPhone Users", "0khAlILG8e4", 1, 35, false, "https://www.youtube.com/shorts/0khAlILG8e4", "/downloads/Jeff Su/2025-09-10 AI Tip for iPhone Users/AI Tip for iPhone Users [0khAlILG8e4].mp4", true, ~U[2025-09-10 13:00:02Z]] 16:58:37.271 [debug] QUERY OK source="sources" db=0.3ms idle=10.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.272 [debug] QUERY OK source="media_items" db=0.8ms idle=9.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-03 12:51:54Z], 1] 16:58:37.274 [debug] QUERY OK source="media_items" db=0.9ms idle=9.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Scaffolding is a great way to teach yourself AI.\n\nGo to claude.ai/artifacts and view any full chat. You see every prompt, revision, and mistake someone made building their app.\n\nYou don't even have to use Claude, you can just copy and paste the initial prompt into ChatGPT or Gemini (just make sure Canvas is enabled).\n\n@anthropic-ai", "learning ai from strangers on the internet", "2ceaf357-6e33-415e-ab3a-d51c754818fd", false, "ppmuBefe48g", 1, [], 39, false, "https://www.youtube.com/shorts/ppmuBefe48g", 12, "/downloads/Jeff Su/2025-09-03 learning ai from strangers on the internet/learning ai from strangers on the internet [ppmuBefe48g].mp4", false, true, 98, ~U[2025-09-03 12:51:54Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "Scaffolding is a great way to teach yourself AI.\n\nGo to claude.ai/artifacts and view any full chat. You see every prompt, revision, and mistake someone made building their app.\n\nYou don't even have to use Claude, you can just copy and paste the initial prompt into ChatGPT or Gemini (just make sure Canvas is enabled).\n\n@anthropic-ai", "learning ai from strangers on the internet", "ppmuBefe48g", 1, 39, false, "https://www.youtube.com/shorts/ppmuBefe48g", "/downloads/Jeff Su/2025-09-03 learning ai from strangers on the internet/learning ai from strangers on the internet [ppmuBefe48g].mp4", true, ~U[2025-09-03 12:51:54Z]] 16:58:37.275 [debug] QUERY OK source="sources" db=0.3ms idle=10.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.276 [debug] QUERY OK source="media_items" db=0.9ms idle=4.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-30 13:01:34Z], 1] 16:58:37.278 [debug] QUERY OK source="media_items" db=1.0ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Your Google apps have secret AI features you're ignoring.\n\nType @ai in Docs for instant summaries.\nRight-click Drive folders to see what's inside without opening files.\nReference multiple documents in Gemini sidebar with @file tags.", "Google AI Features Nobody Knows About", "33e8b6e9-e433-4ffe-81e6-3a1d19ab4e34", false, "ngYTfihHCNQ", 1, [], 40, false, "https://www.youtube.com/shorts/ngYTfihHCNQ", 13, "/downloads/Jeff Su/2025-08-30 Google AI Features Nobody Knows About/Google AI Features Nobody Knows About [ngYTfihHCNQ].mp4", false, true, 98, ~U[2025-08-30 13:01:34Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "Your Google apps have secret AI features you're ignoring.\n\nType @ai in Docs for instant summaries.\nRight-click Drive folders to see what's inside without opening files.\nReference multiple documents in Gemini sidebar with @file tags.", "Google AI Features Nobody Knows About", "ngYTfihHCNQ", 1, 40, false, "https://www.youtube.com/shorts/ngYTfihHCNQ", "/downloads/Jeff Su/2025-08-30 Google AI Features Nobody Knows About/Google AI Features Nobody Knows About [ngYTfihHCNQ].mp4", true, ~U[2025-08-30 13:01:34Z]] 16:58:37.279 [debug] QUERY OK source="sources" db=0.3ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.280 [debug] QUERY OK source="media_items" db=0.8ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-20 13:00:29Z], 1] 16:58:37.282 [debug] QUERY OK source="media_items" db=1.1ms idle=5.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["ChatGPT just turned me into a fake developer.\n\nAsked it to write Google Apps Script code to save newsletter emails automatically to a Doc. It gave me everything: code plus instructions.\n\nCopy, paste, run. Done. Now every newsletter saves itself without me lifting a finger.\n\n== FULL PROMPT ==\n\nAct as an automation expert with knowledge of Google Apps Scripts.\n\nCreate a working Apps Script that saves all Gmail emails from a specified sender into a single Google Doc, and explain the setup in beginner-friendly, step-by-step instructions.\n\n== END ==", "Here’s how to code…without coding", "e247850b-e6b8-4133-bac1-49fee32927d7", false, "i1a5MQCvonQ", 1, [], 40, false, "https://www.youtube.com/shorts/i1a5MQCvonQ", 14, "/downloads/Jeff Su/2025-08-20 Here’s how to code…without coding/Here’s how to code…without coding [i1a5MQCvonQ].mp4", false, true, 98, ~U[2025-08-20 13:00:29Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "ChatGPT just turned me into a fake developer.\n\nAsked it to write Google Apps Script code to save newsletter emails automatically to a Doc. It gave me everything: code plus instructions.\n\nCopy, paste, run. Done. Now every newsletter saves itself without me lifting a finger.\n\n== FULL PROMPT ==\n\nAct as an automation expert with knowledge of Google Apps Scripts.\n\nCreate a working Apps Script that saves all Gmail emails from a specified sender into a single Google Doc, and explain the setup in beginner-friendly, step-by-step instructions.\n\n== END ==", "Here’s how to code…without coding", "i1a5MQCvonQ", 1, 40, false, "https://www.youtube.com/shorts/i1a5MQCvonQ", "/downloads/Jeff Su/2025-08-20 Here’s how to code…without coding/Here’s how to code…without coding [i1a5MQCvonQ].mp4", true, ~U[2025-08-20 13:00:29Z]] 16:58:37.283 [debug] QUERY OK source="sources" db=0.7ms 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" = ?) [1] 16:58:37.284 [debug] QUERY OK source="media_items" db=1.0ms idle=4.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-14 13:00:29Z], 1] 16:58:37.286 [debug] QUERY OK source="media_items" db=0.9ms idle=5.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Hallucination is just creativity in disguise.\n\nNotebookLM stays grounded for accuracy - perfect for medical reports.\n\nGemini hallucinates more, making it ideal for brainstorming and marketing copy.\n\nWhich Google AI are you using for the wrong tasks?", "Why I Want My AI to Hallucinate", "9453308e-f24c-450f-bf03-1f63533d0e82", false, "L-VSz47BoBM", 1, [], 43, false, "https://www.youtube.com/shorts/L-VSz47BoBM", 15, "/downloads/Jeff Su/2025-08-14 Why I Want My AI to Hallucinate/Why I Want My AI to Hallucinate [L-VSz47BoBM].mp4", false, true, 98, ~U[2025-08-14 13:00:29Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "Hallucination is just creativity in disguise.\n\nNotebookLM stays grounded for accuracy - perfect for medical reports.\n\nGemini hallucinates more, making it ideal for brainstorming and marketing copy.\n\nWhich Google AI are you using for the wrong tasks?", "Why I Want My AI to Hallucinate", "L-VSz47BoBM", 1, 43, false, "https://www.youtube.com/shorts/L-VSz47BoBM", "/downloads/Jeff Su/2025-08-14 Why I Want My AI to Hallucinate/Why I Want My AI to Hallucinate [L-VSz47BoBM].mp4", true, ~U[2025-08-14 13:00:29Z]] 16:58:37.287 [debug] QUERY OK source="sources" db=0.3ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.288 [debug] QUERY OK source="media_items" db=0.8ms idle=5.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-06 14:42:32Z], 1] 16:58:37.290 [debug] QUERY OK source="media_items" db=1.1ms idle=5.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["I pasted the job descriptions for a few roles I'm interested in into a Google Doc.\n\nYour task is to create and populate a table with the following columns:\n\n1. Role title\n2. Quarter the role is posted (YYYYQQ)\n3. Status of my application (Not Started, Researching, Applying. Interviewing, Offer, Rejected,\nDeclined)\n4. Application link (leave blank)\n5. Years of experience needed\n6. Keywords for that role (up to 5)\n\nLet me download the table in .csv format.", "#AI tip for Job Seekers", "be2c6c79-e0cc-4864-ad8c-6fd47d53a9cd", false, "6jvw6dAFR-M", 1, [], 38, false, "https://www.youtube.com/shorts/6jvw6dAFR-M", 16, "/downloads/Jeff Su/2025-08-06 #AI tip for Job Seekers/#AI tip for Job Seekers [6jvw6dAFR-M].mp4", false, true, 98, ~U[2025-08-06 14:42:32Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "I pasted the job descriptions for a few roles I'm interested in into a Google Doc.\n\nYour task is to create and populate a table with the following columns:\n\n1. Role title\n2. Quarter the role is posted (YYYYQQ)\n3. Status of my application (Not Started, Researching, Applying. Interviewing, Offer, Rejected,\nDeclined)\n4. Application link (leave blank)\n5. Years of experience needed\n6. Keywords for that role (up to 5)\n\nLet me download the table in .csv format.", "#AI tip for Job Seekers", "6jvw6dAFR-M", 1, 38, false, "https://www.youtube.com/shorts/6jvw6dAFR-M", "/downloads/Jeff Su/2025-08-06 #AI tip for Job Seekers/#AI tip for Job Seekers [6jvw6dAFR-M].mp4", true, ~U[2025-08-06 14:42:32Z]] 16:58:37.292 [debug] QUERY OK source="sources" db=1.9ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.294 [debug] QUERY OK source="media_items" db=1.1ms queue=0.5ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-30 12:35:36Z], 1] 16:58:37.296 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=7.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Just because we can use AI for something, doesn't mean we should. 🤔\n\nWhile creating a task in Gemini's web app is slow, I often use the mobile app to create notes and calendar events with my voice.\n\nWhy? Because speaking is faster than typing. It's about knowing the right tool for the job.", "don’t use #ai for everything", "e8437dbe-6e35-4386-ba77-e84e6446671a", false, "jhfiHxChn5Y", 1, [], 30, false, "https://www.youtube.com/shorts/jhfiHxChn5Y", 17, "/downloads/Jeff Su/2025-07-30 don’t use #ai for everything/don’t use #ai for everything [jhfiHxChn5Y].mp4", false, true, 98, ~U[2025-07-30 12:35:36Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "Just because we can use AI for something, doesn't mean we should. 🤔\n\nWhile creating a task in Gemini's web app is slow, I often use the mobile app to create notes and calendar events with my voice.\n\nWhy? Because speaking is faster than typing. It's about knowing the right tool for the job.", "don’t use #ai for everything", "jhfiHxChn5Y", 1, 30, false, "https://www.youtube.com/shorts/jhfiHxChn5Y", "/downloads/Jeff Su/2025-07-30 don’t use #ai for everything/don’t use #ai for everything [jhfiHxChn5Y].mp4", true, ~U[2025-07-30 12:35:36Z]] 16:58:37.297 [debug] QUERY OK source="sources" db=0.4ms idle=8.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.299 [debug] QUERY OK source="media_items" db=1.2ms idle=8.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-23 13:58:23Z], 1] 16:58:37.300 [debug] QUERY OK source="media_items" db=0.8ms idle=7.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My favorite @Google Gemini tip", "bfa05580-aa36-495b-9067-5a26ffdece32", false, "sAuNzDQW7Zg", 1, [], 36, false, "https://www.youtube.com/shorts/sAuNzDQW7Zg", 18, "/downloads/Jeff Su/2025-07-23 My favorite @Google Gemini tip/My favorite @Google Gemini tip [sAuNzDQW7Zg].mp4", false, true, 98, ~U[2025-07-23 13:58:23Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "My favorite @Google Gemini tip", "sAuNzDQW7Zg", 1, 36, false, "https://www.youtube.com/shorts/sAuNzDQW7Zg", "/downloads/Jeff Su/2025-07-23 My favorite @Google Gemini tip/My favorite @Google Gemini tip [sAuNzDQW7Zg].mp4", true, ~U[2025-07-23 13:58:23Z]] 16:58:37.301 [debug] QUERY OK source="sources" db=0.3ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.302 [debug] QUERY OK source="media_items" db=0.8ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-08 12:39:25Z], 1] 16:58:37.304 [debug] QUERY OK source="media_items" db=0.7ms idle=6.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Which ChatGPT model should you use?", "b36190ba-165a-4722-9c6e-2631a21754c9", false, "N9pgfFAddxc", 1, [], 39, false, "https://www.youtube.com/shorts/N9pgfFAddxc", 19, "/downloads/Jeff Su/2025-07-08 Which ChatGPT model should you use?/Which ChatGPT model should you use? [N9pgfFAddxc].mp4", false, true, 98, ~U[2025-07-08 12:39:25Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "Which ChatGPT model should you use?", "N9pgfFAddxc", 1, 39, false, "https://www.youtube.com/shorts/N9pgfFAddxc", "/downloads/Jeff Su/2025-07-08 Which ChatGPT model should you use?/Which ChatGPT model should you use? [N9pgfFAddxc].mp4", true, ~U[2025-07-08 12:39:25Z]] 16:58:37.305 [debug] QUERY OK source="sources" db=0.2ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.306 [debug] QUERY OK source="media_items" db=0.8ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-03 13:25:18Z], 1] 16:58:37.307 [debug] QUERY OK source="media_items" db=0.8ms idle=5.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["my top 3 #chatgpt commands", "583d6548-a447-46d3-8596-e2cf95b9ca33", false, "GcvfazVDKdM", 1, [], 35, false, "https://www.youtube.com/shorts/GcvfazVDKdM", 20, "/downloads/Jeff Su/2025-07-03 my top 3 #chatgpt commands/my top 3 #chatgpt commands [GcvfazVDKdM].mp4", false, true, 98, ~U[2025-07-03 13:25:18Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "my top 3 #chatgpt commands", "GcvfazVDKdM", 1, 35, false, "https://www.youtube.com/shorts/GcvfazVDKdM", "/downloads/Jeff Su/2025-07-03 my top 3 #chatgpt commands/my top 3 #chatgpt commands [GcvfazVDKdM].mp4", true, ~U[2025-07-03 13:25:18Z]] 16:58:37.308 [debug] QUERY OK source="sources" db=0.3ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.309 [debug] QUERY OK source="media_items" db=0.8ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-12 13:31:02Z], 1] 16:58:37.311 [debug] QUERY OK source="media_items" db=0.9ms idle=4.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["XX", "Feeling behind with AI", "4ab1800a-38a0-40f9-a054-baa1920452e3", false, "zDgKTKp1000", 1, [], 39, false, "https://www.youtube.com/shorts/zDgKTKp1000", 21, "/downloads/Jeff Su/2025-06-12 Feeling behind with AI/Feeling behind with AI [zDgKTKp1000].mp4", false, true, 98, ~U[2025-06-12 13:31:02Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "XX", "Feeling behind with AI", "zDgKTKp1000", 1, 39, false, "https://www.youtube.com/shorts/zDgKTKp1000", "/downloads/Jeff Su/2025-06-12 Feeling behind with AI/Feeling behind with AI [zDgKTKp1000].mp4", true, ~U[2025-06-12 13:31:02Z]] 16:58:37.312 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.313 [debug] QUERY OK source="media_items" db=0.8ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-04 13:30:12Z], 1] 16:58:37.315 [debug] QUERY OK source="media_items" db=0.8ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["my last day at google (leaked footage)", "8350b0fa-f915-42f7-b906-03bb74f428a2", false, "IartOwWmymg", 1, [], 83, false, "https://www.youtube.com/shorts/IartOwWmymg", 22, "/downloads/Jeff Su/2025-06-04 my last day at google (leaked footage)/my last day at google (leaked footage) [IartOwWmymg].mp4", false, true, 98, ~U[2025-06-04 13:30:12Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "my last day at google (leaked footage)", "IartOwWmymg", 1, 83, false, "https://www.youtube.com/shorts/IartOwWmymg", "/downloads/Jeff Su/2025-06-04 my last day at google (leaked footage)/my last day at google (leaked footage) [IartOwWmymg].mp4", true, ~U[2025-06-04 13:30:12Z]] 16:58:37.315 [debug] QUERY OK source="sources" db=0.2ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.316 [debug] QUERY OK source="media_items" db=0.8ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-28 14:30:20Z], 1] 16:58:37.318 [debug] QUERY OK source="media_items" db=0.7ms idle=4.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Problem with Learning #AI", "1e0d21aa-c577-45bd-8b76-480bc502d177", false, "YteEA_W9XGc", 1, [], 35, false, "https://www.youtube.com/shorts/YteEA_W9XGc", 23, "/downloads/Jeff Su/2025-05-28 The Problem with Learning #AI/The Problem with Learning #AI [YteEA_W9XGc].mp4", false, true, 98, ~U[2025-05-28 14:30:20Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "The Problem with Learning #AI", "YteEA_W9XGc", 1, 35, false, "https://www.youtube.com/shorts/YteEA_W9XGc", "/downloads/Jeff Su/2025-05-28 The Problem with Learning #AI/The Problem with Learning #AI [YteEA_W9XGc].mp4", true, ~U[2025-05-28 14:30:20Z]] 16:58:37.319 [debug] QUERY OK source="sources" db=0.3ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.320 [debug] QUERY OK source="media_items" db=0.8ms idle=4.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-22 13:15:07Z], 1] 16:58:37.321 [debug] QUERY OK source="media_items" db=0.7ms idle=4.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Second Brain, #Simplified", "14c21c9c-bd71-415f-bc90-46f733255d41", false, "PimcgZvyw_Y", 1, [], 53, false, "https://www.youtube.com/shorts/PimcgZvyw_Y", 24, "/downloads/Jeff Su/2025-05-22 Second Brain, #Simplified/Second Brain, #Simplified [PimcgZvyw_Y].mp4", false, true, 98, ~U[2025-05-22 13:15:07Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "Second Brain, #Simplified", "PimcgZvyw_Y", 1, 53, false, "https://www.youtube.com/shorts/PimcgZvyw_Y", "/downloads/Jeff Su/2025-05-22 Second Brain, #Simplified/Second Brain, #Simplified [PimcgZvyw_Y].mp4", true, ~U[2025-05-22 13:15:07Z]] 16:58:37.322 [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" = ?) [1] 16:58:37.323 [debug] QUERY OK source="media_items" db=0.8ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-11 13:01:13Z], 1] 16:58:37.324 [debug] QUERY OK source="media_items" db=0.7ms idle=4.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How working at Google is really like 🙃", "b52afbea-70e4-4f21-957d-b14da3d9c564", false, "jdeYy1STk5M", 1, [], 46, false, "https://www.youtube.com/shorts/jdeYy1STk5M", 25, "/downloads/Jeff Su/2025-05-11 How working at Google is really like 🙃/How working at Google is really like 🙃 [jdeYy1STk5M].mp4", false, true, 98, ~U[2025-05-11 13:01:13Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "How working at Google is really like 🙃", "jdeYy1STk5M", 1, 46, false, "https://www.youtube.com/shorts/jdeYy1STk5M", "/downloads/Jeff Su/2025-05-11 How working at Google is really like 🙃/How working at Google is really like 🙃 [jdeYy1STk5M].mp4", true, ~U[2025-05-11 13:01:13Z]] 16:58:37.325 [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" = ?) [1] 16:58:37.327 [debug] QUERY OK source="media_items" db=0.9ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-08 13:18:56Z], 1] 16:58:37.342 [debug] QUERY OK source="media_items" db=14.8ms idle=4.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["AI Agents explained in 3 steps", "65471ab9-24a9-4baf-ae38-46ff3c3854c5", false, "BF2k_fKuCVM", 1, [], 52, false, "https://www.youtube.com/shorts/BF2k_fKuCVM", 26, "/downloads/Jeff Su/2025-05-08 AI Agents explained in 3 steps/AI Agents explained in 3 steps [BF2k_fKuCVM].mp4", false, true, 98, ~U[2025-05-08 13:18:56Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "AI Agents explained in 3 steps", "BF2k_fKuCVM", 1, 52, false, "https://www.youtube.com/shorts/BF2k_fKuCVM", "/downloads/Jeff Su/2025-05-08 AI Agents explained in 3 steps/AI Agents explained in 3 steps [BF2k_fKuCVM].mp4", true, ~U[2025-05-08 13:18:56Z]] 16:58:37.343 [debug] QUERY OK source="sources" db=0.4ms idle=19.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.344 [debug] QUERY OK source="media_items" db=0.9ms idle=19.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-21 13:00:20Z], 1] 16:58:37.346 [debug] QUERY OK source="media_items" db=0.7ms idle=19.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["XX", "Why @Google Tasks gets so much hate", "1d83c586-5a2f-406c-aaaa-02013bc5fee1", false, "IXIpqUjNKvM", 1, [], 39, false, "https://www.youtube.com/shorts/IXIpqUjNKvM", 27, "/downloads/Jeff Su/2025-03-21 Why @Google Tasks gets so much hate/Why @Google Tasks gets so much hate [IXIpqUjNKvM].mp4", false, true, 98, ~U[2025-03-21 13:00:20Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "XX", "Why @Google Tasks gets so much hate", "IXIpqUjNKvM", 1, 39, false, "https://www.youtube.com/shorts/IXIpqUjNKvM", "/downloads/Jeff Su/2025-03-21 Why @Google Tasks gets so much hate/Why @Google Tasks gets so much hate [IXIpqUjNKvM].mp4", true, ~U[2025-03-21 13:00:20Z]] 16:58:37.346 [debug] QUERY OK source="sources" db=0.3ms 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" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.348 [debug] QUERY OK source="media_items" db=1.0ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-13 13:08:12Z], 1] 16:58:37.350 [debug] QUERY OK source="media_items" db=0.9ms idle=5.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "Here's my favorite #claude feature", "6018bdd0-310b-48ca-b851-895eabe68052", false, "7SN1O1Lh8BA", 1, [], 33, false, "https://www.youtube.com/shorts/7SN1O1Lh8BA", 28, "/downloads/Jeff Su/2025-03-13 Here's my favorite #claude feature/Here's my favorite #claude feature [7SN1O1Lh8BA].mp4", false, true, 98, ~U[2025-03-13 13:08:12Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "Here's my favorite #claude feature", "7SN1O1Lh8BA", 1, 33, false, "https://www.youtube.com/shorts/7SN1O1Lh8BA", "/downloads/Jeff Su/2025-03-13 Here's my favorite #claude feature/Here's my favorite #claude feature [7SN1O1Lh8BA].mp4", true, ~U[2025-03-13 13:08:12Z]] 16:58:37.350 [debug] QUERY OK source="sources" db=0.2ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.352 [debug] QUERY OK source="media_items" db=0.9ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-24 17:00:11Z], 1] 16:58:37.353 [debug] QUERY OK source="media_items" db=0.8ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "Always always always #negotiate your salary!", "874fc3ab-6f32-4aa2-a847-9e8e4a5d06ee", false, "4o7s8leryo0", 1, [], 46, false, "https://www.youtube.com/shorts/4o7s8leryo0", 29, "/downloads/Jeff Su/2025-02-24 Always always always #negotiate your salary!/Always always always #negotiate your salary! [4o7s8leryo0].mp4", false, true, 98, ~U[2025-02-24 17:00:11Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "Always always always #negotiate your salary!", "4o7s8leryo0", 1, 46, false, "https://www.youtube.com/shorts/4o7s8leryo0", "/downloads/Jeff Su/2025-02-24 Always always always #negotiate your salary!/Always always always #negotiate your salary! [4o7s8leryo0].mp4", true, ~U[2025-02-24 17:00:11Z]] 16:58:37.354 [debug] QUERY OK source="sources" db=0.2ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.355 [debug] QUERY OK source="media_items" db=0.8ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-12 14:02:12Z], 1] 16:58:37.357 [debug] QUERY OK source="media_items" db=0.7ms idle=5.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Stop #spam texts on your iPhone", "ce45073f-f541-4ce4-8005-569f0a11e7fb", false, "-YkoRmaj0zI", 1, [], 55, false, "https://www.youtube.com/shorts/-YkoRmaj0zI", 30, "/downloads/Jeff Su/2025-01-12 Stop #spam texts on your iPhone/Stop #spam texts on your iPhone [-YkoRmaj0zI].mp4", false, true, 98, ~U[2025-01-12 14:02:12Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "Stop #spam texts on your iPhone", "-YkoRmaj0zI", 1, 55, false, "https://www.youtube.com/shorts/-YkoRmaj0zI", "/downloads/Jeff Su/2025-01-12 Stop #spam texts on your iPhone/Stop #spam texts on your iPhone [-YkoRmaj0zI].mp4", true, ~U[2025-01-12 14:02:12Z]] 16:58:37.357 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.358 [debug] QUERY OK source="media_items" db=0.9ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-06 13:37:39Z], 1] 16:58:37.360 [debug] QUERY OK source="media_items" db=0.8ms idle=5.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Daily Morning Routine", "8e470930-2786-4e35-a624-a9c5e1ec4831", false, "uk1KFbEVPao", 1, [], 22, false, "https://www.youtube.com/shorts/uk1KFbEVPao", 31, "/downloads/Jeff Su/2025-01-06 My Daily Morning Routine/My Daily Morning Routine [uk1KFbEVPao].mp4", false, true, 98, ~U[2025-01-06 13:37:39Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "My Daily Morning Routine", "uk1KFbEVPao", 1, 22, false, "https://www.youtube.com/shorts/uk1KFbEVPao", "/downloads/Jeff Su/2025-01-06 My Daily Morning Routine/My Daily Morning Routine [uk1KFbEVPao].mp4", true, ~U[2025-01-06 13:37:39Z]] 16:58:37.361 [debug] QUERY OK source="sources" db=0.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.362 [debug] QUERY OK source="media_items" db=0.9ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-29 13:15:03Z], 1] 16:58:37.364 [debug] QUERY OK source="media_items" db=0.7ms idle=5.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["There are 3 types of #ai tools", "4d2b2c0f-8f97-4398-854c-7ea8393a6bdd", false, "UraKnngFnsw", 1, [], 39, false, "https://www.youtube.com/shorts/UraKnngFnsw", 32, "/downloads/Jeff Su/2024-12-29 There are 3 types of #ai tools/There are 3 types of #ai tools [UraKnngFnsw].mp4", false, true, 98, ~U[2024-12-29 13:15:03Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "There are 3 types of #ai tools", "UraKnngFnsw", 1, 39, false, "https://www.youtube.com/shorts/UraKnngFnsw", "/downloads/Jeff Su/2024-12-29 There are 3 types of #ai tools/There are 3 types of #ai tools [UraKnngFnsw].mp4", true, ~U[2024-12-29 13:15:03Z]] 16:58:37.365 [debug] QUERY OK source="sources" db=0.4ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.366 [debug] QUERY OK source="media_items" db=0.9ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-20 13:51:02Z], 1] 16:58:37.368 [debug] QUERY OK source="media_items" db=0.8ms idle=5.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "Underrated Feature in Outlook and Gmail", "791285e5-8150-48af-aac2-6be8ece2b1d8", false, "k3SoWrEnALM", 1, [], 29, false, "https://www.youtube.com/shorts/k3SoWrEnALM", 33, "/downloads/Jeff Su/2024-12-20 Underrated Feature in Outlook and Gmail/Underrated Feature in Outlook and Gmail [k3SoWrEnALM].mp4", false, true, 98, ~U[2024-12-20 13:51:02Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "Underrated Feature in Outlook and Gmail", "k3SoWrEnALM", 1, 29, false, "https://www.youtube.com/shorts/k3SoWrEnALM", "/downloads/Jeff Su/2024-12-20 Underrated Feature in Outlook and Gmail/Underrated Feature in Outlook and Gmail [k3SoWrEnALM].mp4", true, ~U[2024-12-20 13:51:02Z]] 16:58:37.368 [debug] QUERY OK source="sources" db=0.2ms idle=6.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.370 [debug] QUERY OK source="media_items" db=0.8ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-02 12:58:53Z], 1] 16:58:37.371 [debug] QUERY OK source="media_items" db=0.7ms idle=5.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#LinkedIn Headline for Job Seekers", "ee8fbb22-76c3-4aac-b632-23edaa425b66", false, "WeE3YRGFsFk", 1, [], 34, false, "https://www.youtube.com/shorts/WeE3YRGFsFk", 34, "/downloads/Jeff Su/2024-12-02 #LinkedIn Headline for Job Seekers/#LinkedIn Headline for Job Seekers [WeE3YRGFsFk].mp4", false, true, 98, ~U[2024-12-02 12:58:53Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "#LinkedIn Headline for Job Seekers", "WeE3YRGFsFk", 1, 34, false, "https://www.youtube.com/shorts/WeE3YRGFsFk", "/downloads/Jeff Su/2024-12-02 #LinkedIn Headline for Job Seekers/#LinkedIn Headline for Job Seekers [WeE3YRGFsFk].mp4", true, ~U[2024-12-02 12:58:53Z]] 16:58:37.374 [debug] QUERY OK source="sources" db=1.0ms queue=0.7ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.375 [debug] QUERY OK source="media_items" db=0.9ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-27 12:46:36Z], 1] 16:58:37.377 [debug] QUERY OK source="media_items" db=1.1ms idle=7.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Productivity for Normal People #productivity", "a5549dad-f7d6-41bf-a560-af4822b552b1", false, "_1sYgJEbAiQ", 1, [], 42, false, "https://www.youtube.com/shorts/_1sYgJEbAiQ", 35, "/downloads/Jeff Su/2024-11-27 Productivity for Normal People #productivity/Productivity for Normal People #productivity [_1sYgJEbAiQ].mp4", false, true, 98, ~U[2024-11-27 12:46:36Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "Productivity for Normal People #productivity", "_1sYgJEbAiQ", 1, 42, false, "https://www.youtube.com/shorts/_1sYgJEbAiQ", "/downloads/Jeff Su/2024-11-27 Productivity for Normal People #productivity/Productivity for Normal People #productivity [_1sYgJEbAiQ].mp4", true, ~U[2024-11-27 12:46:36Z]] 16:58:37.378 [debug] QUERY OK source="sources" db=0.3ms idle=7.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.379 [debug] QUERY OK source="media_items" db=0.8ms idle=7.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-19 13:05:37Z], 1] 16:58:37.380 [debug] QUERY OK source="media_items" db=0.8ms idle=5.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Struggling to keep your colleagues attention while presenting? \n\nHere’s a simple way to make them more eye-catching, no design knowledge needed.", "Easy Design Tip for non-Creative Professionals", "f91c2f53-68c8-49fc-883e-6a4e31b1cc49", false, "U-zAeXr80J8", 1, [], 37, false, "https://www.youtube.com/shorts/U-zAeXr80J8", 36, "/downloads/Jeff Su/2024-11-19 Easy Design Tip for non-Creative Professionals/Easy Design Tip for non-Creative Professionals [U-zAeXr80J8].mp4", false, true, 98, ~U[2024-11-19 13:05:37Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "Struggling to keep your colleagues attention while presenting? \n\nHere’s a simple way to make them more eye-catching, no design knowledge needed.", "Easy Design Tip for non-Creative Professionals", "U-zAeXr80J8", 1, 37, false, "https://www.youtube.com/shorts/U-zAeXr80J8", "/downloads/Jeff Su/2024-11-19 Easy Design Tip for non-Creative Professionals/Easy Design Tip for non-Creative Professionals [U-zAeXr80J8].mp4", true, ~U[2024-11-19 13:05:37Z]] 16:58:37.381 [debug] QUERY OK source="sources" db=0.4ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.382 [debug] QUERY OK source="media_items" db=0.8ms idle=4.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-17 13:00:26Z], 1] 16:58:37.385 [debug] QUERY OK source="media_items" db=1.2ms idle=5.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Ever had this scenario happen to you? \n\nYou sit down at your desk, ready to start your work day, and pull up your to-do list. The first task reads: \n\n“Work project” \n\nBut you can’t quite remember what the first step will be, where to find the information, or frankly what the work project deliverables even are?! \n\nThis happens all too often with to-do lists and can quite literally waste your time, which is the opposite of what we’re aiming for. \n\nI have good news - there’s a really simple fix. \n\nWhen you have a new task to do, make sure to make note of it with a simple action verb. Tell your future self what \n\nAnd this is not just a hack for work tasks, but for life stuff too. \n\nFor example, using an action verb would turn: \n\n“Present Mom” \n\ninto…\n\n“Pack present for Mom before HK offsite on Wednesday” \n\nYour future self will thank you. Make sure to follow for more instantly actionable tips 💡", "Golden Rule for Task Management #productivity", "50554447-2bb1-4896-b07a-8c875216332e", false, "GrJA5lYGk_k", 1, [], 38, false, "https://www.youtube.com/shorts/GrJA5lYGk_k", 37, "/downloads/Jeff Su/2024-11-17 Golden Rule for Task Management #productivity/Golden Rule for Task Management #productivity [GrJA5lYGk_k].mp4", false, true, 98, ~U[2024-11-17 13:00:26Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "Ever had this scenario happen to you? \n\nYou sit down at your desk, ready to start your work day, and pull up your to-do list. The first task reads: \n\n“Work project” \n\nBut you can’t quite remember what the first step will be, where to find the information, or frankly what the work project deliverables even are?! \n\nThis happens all too often with to-do lists and can quite literally waste your time, which is the opposite of what we’re aiming for. \n\nI have good news - there’s a really simple fix. \n\nWhen you have a new task to do, make sure to make note of it with a simple action verb. Tell your future self what \n\nAnd this is not just a hack for work tasks, but for life stuff too. \n\nFor example, using an action verb would turn: \n\n“Present Mom” \n\ninto…\n\n“Pack present for Mom before HK offsite on Wednesday” \n\nYour future self will thank you. Make sure to follow for more instantly actionable tips 💡", "Golden Rule for Task Management #productivity", "GrJA5lYGk_k", 1, 38, false, "https://www.youtube.com/shorts/GrJA5lYGk_k", "/downloads/Jeff Su/2024-11-17 Golden Rule for Task Management #productivity/Golden Rule for Task Management #productivity [GrJA5lYGk_k].mp4", true, ~U[2024-11-17 13:00:26Z]] 16:58:37.385 [debug] QUERY OK source="sources" db=0.3ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.387 [debug] QUERY OK source="media_items" db=0.8ms idle=5.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-09 13:49:58Z], 1] 16:58:37.388 [debug] QUERY OK source="media_items" db=0.7ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Search #googledrive like a pro!", "d6aede99-09a9-4764-8a26-c4c1d3a61015", false, "Z6vurIsNnRs", 1, [], 37, false, "https://www.youtube.com/shorts/Z6vurIsNnRs", 38, "/downloads/Jeff Su/2024-10-09 Search #googledrive like a pro!/Search #googledrive like a pro! [Z6vurIsNnRs].mp4", false, true, 98, ~U[2024-10-09 13:49:58Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "Search #googledrive like a pro!", "Z6vurIsNnRs", 1, 37, false, "https://www.youtube.com/shorts/Z6vurIsNnRs", "/downloads/Jeff Su/2024-10-09 Search #googledrive like a pro!/Search #googledrive like a pro! [Z6vurIsNnRs].mp4", true, ~U[2024-10-09 13:49:58Z]] 16:58:37.388 [debug] QUERY OK source="sources" db=0.2ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.390 [debug] QUERY OK source="media_items" db=0.9ms idle=4.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-04 14:25:18Z], 1] 16:58:37.391 [debug] QUERY OK source="media_items" db=0.7ms idle=5.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Windows users can use CTRL 😇", "53a2099f-2c3b-433b-bc03-caaf1cde4042", false, "vSC7JzXUecA", 1, [], 27, false, "https://www.youtube.com/shorts/vSC7JzXUecA", 39, "/downloads/Jeff Su/2024-10-04 Windows users can use CTRL 😇/Windows users can use CTRL 😇 [vSC7JzXUecA].mp4", false, true, 98, ~U[2024-10-04 14:25:18Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "Windows users can use CTRL 😇", "vSC7JzXUecA", 1, 27, false, "https://www.youtube.com/shorts/vSC7JzXUecA", "/downloads/Jeff Su/2024-10-04 Windows users can use CTRL 😇/Windows users can use CTRL 😇 [vSC7JzXUecA].mp4", true, ~U[2024-10-04 14:25:18Z]] 16:58:37.392 [debug] QUERY OK source="sources" db=0.3ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.394 [debug] QUERY OK source="media_items" db=0.9ms idle=4.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-29 12:53:39Z], 1] 16:58:37.395 [debug] QUERY OK source="media_items" db=0.7ms idle=5.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Formatting tip for #googleslides", "0b69d644-f57e-452d-b1f4-e85c4a3069b7", false, "mcTlcUVvOGk", 1, [], 20, false, "https://www.youtube.com/shorts/mcTlcUVvOGk", 40, "/downloads/Jeff Su/2024-09-29 Formatting tip for #googleslides/Formatting tip for #googleslides [mcTlcUVvOGk].mp4", false, true, 98, ~U[2024-09-29 12:53:39Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "Formatting tip for #googleslides", "mcTlcUVvOGk", 1, 20, false, "https://www.youtube.com/shorts/mcTlcUVvOGk", "/downloads/Jeff Su/2024-09-29 Formatting tip for #googleslides/Formatting tip for #googleslides [mcTlcUVvOGk].mp4", true, ~U[2024-09-29 12:53:39Z]] 16:58:37.395 [debug] QUERY OK source="sources" db=0.2ms idle=4.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.397 [debug] QUERY OK source="media_items" db=0.9ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-10 12:48:41Z], 1] 16:58:37.398 [debug] QUERY OK source="media_items" db=0.7ms idle=4.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Crazy #Gmail tip", "07b612de-6fde-46fd-9c6d-e77839d22d36", false, "3niwhXYYTK0", 1, [], 56, false, "https://www.youtube.com/shorts/3niwhXYYTK0", 41, "/downloads/Jeff Su/2024-09-10 Crazy #Gmail tip/Crazy #Gmail tip [3niwhXYYTK0].mp4", false, true, 98, ~U[2024-09-10 12:48:41Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "Crazy #Gmail tip", "3niwhXYYTK0", 1, 56, false, "https://www.youtube.com/shorts/3niwhXYYTK0", "/downloads/Jeff Su/2024-09-10 Crazy #Gmail tip/Crazy #Gmail tip [3niwhXYYTK0].mp4", true, ~U[2024-09-10 12:48:41Z]] 16:58:37.399 [debug] QUERY OK source="sources" db=0.3ms queue=0.5ms 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" = ?) [1] 16:58:37.400 [debug] QUERY OK source="media_items" db=0.8ms idle=4.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-29 11:02:43Z], 1] 16:58:37.402 [debug] QUERY OK source="media_items" db=1.4ms idle=5.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["3 Keyboard Shortcuts for #googleworkspace", "519a0cf9-8eac-431d-a801-e6e5afc4c05b", false, "EX0tgkZfcxs", 1, [], 30, false, "https://www.youtube.com/shorts/EX0tgkZfcxs", 42, "/downloads/Jeff Su/2024-08-29 3 Keyboard Shortcuts for #googleworkspace/3 Keyboard Shortcuts for #googleworkspace [EX0tgkZfcxs].mp4", false, true, 98, ~U[2024-08-29 11:02:43Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "3 Keyboard Shortcuts for #googleworkspace", "EX0tgkZfcxs", 1, 30, false, "https://www.youtube.com/shorts/EX0tgkZfcxs", "/downloads/Jeff Su/2024-08-29 3 Keyboard Shortcuts for #googleworkspace/3 Keyboard Shortcuts for #googleworkspace [EX0tgkZfcxs].mp4", true, ~U[2024-08-29 11:02:43Z]] 16:58:37.403 [debug] QUERY OK source="sources" db=0.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.404 [debug] QUERY OK source="media_items" db=0.8ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-23 13:09:54Z], 1] 16:58:37.406 [debug] QUERY OK source="media_items" db=0.7ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#productivity tip for #googleslides", "f677c546-e456-4cba-84c6-16b2f8355a8c", false, "hdMrkWAX0LQ", 1, [], 51, false, "https://www.youtube.com/shorts/hdMrkWAX0LQ", 43, "/downloads/Jeff Su/2024-08-23 #productivity tip for #googleslides/#productivity tip for #googleslides [hdMrkWAX0LQ].mp4", false, true, 98, ~U[2024-08-23 13:09:54Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "#productivity tip for #googleslides", "hdMrkWAX0LQ", 1, 51, false, "https://www.youtube.com/shorts/hdMrkWAX0LQ", "/downloads/Jeff Su/2024-08-23 #productivity tip for #googleslides/#productivity tip for #googleslides [hdMrkWAX0LQ].mp4", true, ~U[2024-08-23 13:09:54Z]] 16:58:37.407 [debug] QUERY OK source="sources" db=0.2ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.408 [debug] QUERY OK source="media_items" db=1.0ms idle=4.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-15 12:59:17Z], 1] 16:58:37.410 [debug] QUERY OK source="media_items" db=0.7ms idle=5.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Game-Changing #gmail tip for #productivity", "66476b85-010b-42eb-a166-19ac3feaff05", false, "lmNEzIUAHds", 1, [], 37, false, "https://www.youtube.com/shorts/lmNEzIUAHds", 44, "/downloads/Jeff Su/2024-08-15 Game-Changing #gmail tip for #productivity/Game-Changing #gmail tip for #productivity [lmNEzIUAHds].mp4", false, true, 98, ~U[2024-08-15 12:59:17Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "Game-Changing #gmail tip for #productivity", "lmNEzIUAHds", 1, 37, false, "https://www.youtube.com/shorts/lmNEzIUAHds", "/downloads/Jeff Su/2024-08-15 Game-Changing #gmail tip for #productivity/Game-Changing #gmail tip for #productivity [lmNEzIUAHds].mp4", true, ~U[2024-08-15 12:59:17Z]] 16:58:37.410 [debug] QUERY OK source="sources" db=0.2ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.411 [debug] QUERY OK source="media_items" db=0.9ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-08 13:07:50Z], 1] 16:58:37.413 [debug] QUERY OK source="media_items" db=0.8ms idle=5.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The #1 Prompting Tip for Productivity #chatgpt #googlegemini", "ebd0ec28-874a-46b8-9e48-a3d99ac5cf14", false, "UqpHjpBDths", 1, [], 52, false, "https://www.youtube.com/shorts/UqpHjpBDths", 45, "/downloads/Jeff Su/2024-08-08 The #1 Prompting Tip for Productivity #chatgpt #googlegemini/The #1 Prompting Tip for Productivity #chatgpt #googlegemini [UqpHjpBDths].mp4", false, true, 98, ~U[2024-08-08 13:07:50Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "The #1 Prompting Tip for Productivity #chatgpt #googlegemini", "UqpHjpBDths", 1, 52, false, "https://www.youtube.com/shorts/UqpHjpBDths", "/downloads/Jeff Su/2024-08-08 The #1 Prompting Tip for Productivity #chatgpt #googlegemini/The #1 Prompting Tip for Productivity #chatgpt #googlegemini [UqpHjpBDths].mp4", true, ~U[2024-08-08 13:07:50Z]] 16:58:37.414 [debug] QUERY OK source="sources" db=0.2ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.415 [debug] QUERY OK source="media_items" db=0.9ms idle=4.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-23 13:26:43Z], 1] 16:58:37.417 [debug] QUERY OK source="media_items" db=0.8ms idle=5.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "8 Lessons from 8 Years at @Google (Part 2) #careertips", "58788938-2d80-410e-b882-e718a174053c", false, "1xvWNhZ29i4", 1, [], 50, false, "https://www.youtube.com/shorts/1xvWNhZ29i4", 46, "/downloads/Jeff Su/2024-07-23 8 Lessons from 8 Years at @Google (Part 2) #careertips/8 Lessons from 8 Years at @Google (Part 2) #careertips [1xvWNhZ29i4].mp4", false, true, 98, ~U[2024-07-23 13:26:43Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "XX\n\nDisclaimer: My opinions are my own and may not reflect those of my employer", "8 Lessons from 8 Years at @Google (Part 2) #careertips", "1xvWNhZ29i4", 1, 50, false, "https://www.youtube.com/shorts/1xvWNhZ29i4", "/downloads/Jeff Su/2024-07-23 8 Lessons from 8 Years at @Google (Part 2) #careertips/8 Lessons from 8 Years at @Google (Part 2) #careertips [1xvWNhZ29i4].mp4", true, ~U[2024-07-23 13:26:43Z]] 16:58:37.417 [debug] QUERY OK source="sources" db=0.2ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.418 [debug] QUERY OK source="media_items" db=0.8ms 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[2024-07-10 13:38:23Z], 1] 16:58:37.420 [debug] QUERY OK source="media_items" db=0.7ms idle=5.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["8 Lessons from 8 Years at @google (Part 1)", "787e90fb-78d8-4bbb-8285-7da2a5f71398", false, "xTUfgULVgAA", 1, [], 60, false, "https://www.youtube.com/shorts/xTUfgULVgAA", 47, "/downloads/Jeff Su/2024-07-10 8 Lessons from 8 Years at @google (Part 1)/8 Lessons from 8 Years at @google (Part 1) [xTUfgULVgAA].mp4", false, true, 98, ~U[2024-07-10 13:38:23Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "8 Lessons from 8 Years at @google (Part 1)", "xTUfgULVgAA", 1, 60, false, "https://www.youtube.com/shorts/xTUfgULVgAA", "/downloads/Jeff Su/2024-07-10 8 Lessons from 8 Years at @google (Part 1)/8 Lessons from 8 Years at @google (Part 1) [xTUfgULVgAA].mp4", true, ~U[2024-07-10 13:38:23Z]] 16:58:37.421 [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] 16:58:37.422 [debug] QUERY OK source="media_items" db=0.8ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-27 14:23:15Z], 1] 16:58:37.424 [debug] QUERY OK source="media_items" db=0.7ms idle=5.3ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["📈 The BEST charts to use in #presentations", "e6a2f082-c98f-4370-869f-c6a339c30ff0", false, "xOqbp4qTHdA", 1, [], 27, false, "https://www.youtube.com/shorts/xOqbp4qTHdA", 48, "/downloads/Jeff Su/2024-06-27 📈 The BEST charts to use in #presentations/📈 The BEST charts to use in #presentations [xOqbp4qTHdA].mp4", false, true, 98, ~U[2024-06-27 14:23:15Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "📈 The BEST charts to use in #presentations", "xOqbp4qTHdA", 1, 27, false, "https://www.youtube.com/shorts/xOqbp4qTHdA", "/downloads/Jeff Su/2024-06-27 📈 The BEST charts to use in #presentations/📈 The BEST charts to use in #presentations [xOqbp4qTHdA].mp4", true, ~U[2024-06-27 14:23:15Z]] 16:58:37.424 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.425 [debug] QUERY OK source="media_items" db=0.8ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-19 13:10:29Z], 1] 16:58:37.427 [debug] QUERY OK source="media_items" db=0.7ms idle=5.3ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#Presentation mistake to avoid!", "d73b4c7d-2f9f-4fc1-917c-4679237100aa", false, "ktqRzxi0Epg", 1, [], 36, false, "https://www.youtube.com/shorts/ktqRzxi0Epg", 49, "/downloads/Jeff Su/2024-06-19 #Presentation mistake to avoid!/#Presentation mistake to avoid! [ktqRzxi0Epg].mp4", false, true, 98, ~U[2024-06-19 13:10:29Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "#Presentation mistake to avoid!", "ktqRzxi0Epg", 1, 36, false, "https://www.youtube.com/shorts/ktqRzxi0Epg", "/downloads/Jeff Su/2024-06-19 #Presentation mistake to avoid!/#Presentation mistake to avoid! [ktqRzxi0Epg].mp4", true, ~U[2024-06-19 13:10:29Z]] 16:58:37.428 [debug] QUERY OK source="sources" db=0.2ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.429 [debug] QUERY OK source="media_items" db=0.8ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-11 13:18:01Z], 1] 16:58:37.431 [debug] QUERY OK source="media_items" db=0.7ms idle=5.3ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#tedtalk vs workplace #presentations", "d7ec0178-9eaf-438c-aa1b-25ec4d5c82d6", false, "Fwb8ypjxlXY", 1, [], 32, false, "https://www.youtube.com/shorts/Fwb8ypjxlXY", 50, "/downloads/Jeff Su/2024-06-11 #tedtalk vs workplace #presentations/#tedtalk vs workplace #presentations [Fwb8ypjxlXY].mp4", false, true, 98, ~U[2024-06-11 13:18:01Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "#tedtalk vs workplace #presentations", "Fwb8ypjxlXY", 1, 32, false, "https://www.youtube.com/shorts/Fwb8ypjxlXY", "/downloads/Jeff Su/2024-06-11 #tedtalk vs workplace #presentations/#tedtalk vs workplace #presentations [Fwb8ypjxlXY].mp4", true, ~U[2024-06-11 13:18:01Z]] 16:58:37.431 [debug] QUERY OK source="sources" db=0.2ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.432 [debug] QUERY OK source="media_items" db=0.8ms idle=4.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-07 14:14:48Z], 1] 16:58:37.434 [debug] QUERY OK source="media_items" db=0.7ms idle=4.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Strategy Manager teaches #slidewriting #managementconsulting", "94f52f36-1ca7-4f66-8d74-d9cb092ec911", false, "E133SQy4wIQ", 1, [], 60, false, "https://www.youtube.com/shorts/E133SQy4wIQ", 51, "/downloads/Jeff Su/2024-06-07 Strategy Manager teaches #slidewriting #managementconsulting/Strategy Manager teaches #slidewriting #managementconsulting [E133SQy4wIQ].mp4", false, true, 98, ~U[2024-06-07 14:14:48Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "Strategy Manager teaches #slidewriting #managementconsulting", "E133SQy4wIQ", 1, 60, false, "https://www.youtube.com/shorts/E133SQy4wIQ", "/downloads/Jeff Su/2024-06-07 Strategy Manager teaches #slidewriting #managementconsulting/Strategy Manager teaches #slidewriting #managementconsulting [E133SQy4wIQ].mp4", true, ~U[2024-06-07 14:14:48Z]] 16:58:37.435 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.436 [debug] QUERY OK source="media_items" db=0.9ms idle=4.4ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-31 14:27:49Z], 1] 16:58:37.438 [debug] QUERY OK source="media_items" db=0.7ms idle=5.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Google’s advice for #jobseekers #applicants", "6d5cbe13-f3b1-41ce-801b-2acb858c529e", false, "UBZIe0RQnaE", 1, [], 38, false, "https://www.youtube.com/shorts/UBZIe0RQnaE", 52, "/downloads/Jeff Su/2024-05-31 Google’s advice for #jobseekers #applicants/Google’s advice for #jobseekers #applicants [UBZIe0RQnaE].mp4", false, true, 98, ~U[2024-05-31 14:27:49Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "Google’s advice for #jobseekers #applicants", "UBZIe0RQnaE", 1, 38, false, "https://www.youtube.com/shorts/UBZIe0RQnaE", "/downloads/Jeff Su/2024-05-31 Google’s advice for #jobseekers #applicants/Google’s advice for #jobseekers #applicants [UBZIe0RQnaE].mp4", true, ~U[2024-05-31 14:27:49Z]] 16:58:37.438 [debug] QUERY OK source="sources" db=0.2ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.439 [debug] QUERY OK source="media_items" db=0.8ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-21 13:32:28Z], 1] 16:58:37.441 [debug] QUERY OK source="media_items" db=0.7ms idle=5.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["3 #LinkedIn tips for Job Seekers!", "2c442d16-da42-46d4-af47-4a9fa1ee7dba", false, "HVyrkWLs2Wo", 1, [], 56, false, "https://www.youtube.com/shorts/HVyrkWLs2Wo", 53, "/downloads/Jeff Su/2024-05-21 3 #LinkedIn tips for Job Seekers!/3 #LinkedIn tips for Job Seekers! [HVyrkWLs2Wo].mp4", false, true, 98, ~U[2024-05-21 13:32:28Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "3 #LinkedIn tips for Job Seekers!", "HVyrkWLs2Wo", 1, 56, false, "https://www.youtube.com/shorts/HVyrkWLs2Wo", "/downloads/Jeff Su/2024-05-21 3 #LinkedIn tips for Job Seekers!/3 #LinkedIn tips for Job Seekers! [HVyrkWLs2Wo].mp4", true, ~U[2024-05-21 13:32:28Z]] 16:58:37.442 [debug] QUERY OK source="sources" db=0.3ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:37.443 [debug] QUERY OK source="media_items" db=0.8ms 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[2024-05-17 13:00:53Z], 1] 16:58:38.568 [debug] QUERY OK source="media_items" db=1124.1ms idle=5.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["AI Tip No-one told you about @Google #googlechrome #googlegemini", "8ea3662e-cae9-40ee-b91b-24367d7d33c7", false, "q2DSO7TDF2A", 1, [], 31, false, "https://www.youtube.com/shorts/q2DSO7TDF2A", 54, "/downloads/Jeff Su/2024-05-17 AI Tip No-one told you about @Google #googlechrome #googlegemini/AI Tip No-one told you about @Google #googlechrome #googlegemini [q2DSO7TDF2A].mp4", false, true, 98, ~U[2024-05-17 13:00:53Z], ~U[2026-04-23 14:58:37Z], ~U[2026-04-23 14:58:37Z], "", "AI Tip No-one told you about @Google #googlechrome #googlegemini", "q2DSO7TDF2A", 1, 31, false, "https://www.youtube.com/shorts/q2DSO7TDF2A", "/downloads/Jeff Su/2024-05-17 AI Tip No-one told you about @Google #googlechrome #googlegemini/AI Tip No-one told you about @Google #googlechrome #googlegemini [q2DSO7TDF2A].mp4", true, ~U[2024-05-17 13:00:53Z]] 16:58:38.569 [debug] QUERY OK source="sources" db=0.8ms idle=1127.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.571 [debug] QUERY OK source="media_items" db=0.9ms idle=1127.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-07 13:27:54Z], 1] 16:58:38.635 [debug] QUERY OK source="media_items" db=63.6ms idle=1128.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["When NOT to use #ChatGPT", "35fac1ab-7f5a-4c6d-9719-bd9d8ef29e44", false, "XWbXle4chy0", 1, [], 60, false, "https://www.youtube.com/shorts/XWbXle4chy0", 55, "/downloads/Jeff Su/2024-05-07 When NOT to use #ChatGPT/When NOT to use #ChatGPT [XWbXle4chy0].mp4", false, true, 98, ~U[2024-05-07 13:27:54Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "When NOT to use #ChatGPT", "XWbXle4chy0", 1, 60, false, "https://www.youtube.com/shorts/XWbXle4chy0", "/downloads/Jeff Su/2024-05-07 When NOT to use #ChatGPT/When NOT to use #ChatGPT [XWbXle4chy0].mp4", true, ~U[2024-05-07 13:27:54Z]] 16:58:38.636 [debug] QUERY OK source="sources" db=0.3ms idle=589.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.637 [debug] QUERY OK source="media_items" db=0.9ms idle=68.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-23 22:54:56Z], 1] 16:58:38.639 [debug] QUERY OK source="media_items" db=0.8ms idle=68.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My favorite #Gmail filter for #productivity", "807bea12-7461-4b93-bf1a-ea1485be9009", false, "8klsJfMzWRI", 1, [], 43, false, "https://www.youtube.com/shorts/8klsJfMzWRI", 56, "/downloads/Jeff Su/2024-04-23 My favorite #Gmail filter for #productivity/My favorite #Gmail filter for #productivity [8klsJfMzWRI].mp4", false, true, 98, ~U[2024-04-23 22:54:56Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "My favorite #Gmail filter for #productivity", "8klsJfMzWRI", 1, 43, false, "https://www.youtube.com/shorts/8klsJfMzWRI", "/downloads/Jeff Su/2024-04-23 My favorite #Gmail filter for #productivity/My favorite #Gmail filter for #productivity [8klsJfMzWRI].mp4", true, ~U[2024-04-23 22:54:56Z]] 16:58:38.640 [debug] QUERY OK source="sources" db=0.2ms idle=68.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.641 [debug] QUERY OK source="media_items" db=0.8ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-15 13:00:03Z], 1] 16:58:38.643 [debug] QUERY OK source="media_items" db=0.7ms idle=5.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#GoogleSheets just received a massive update from @googleworkspace", "9618065c-dfa4-4ce7-a554-b2781cf23eb2", false, "3uAlmp6jmuE", 1, [], 51, false, "https://www.youtube.com/shorts/3uAlmp6jmuE", 57, "/downloads/Jeff Su/2024-04-15 #GoogleSheets just received a massive update from @googleworkspace/#GoogleSheets just received a massive update from @googleworkspace [3uAlmp6jmuE].mp4", false, true, 98, ~U[2024-04-15 13:00:03Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "#GoogleSheets just received a massive update from @googleworkspace", "3uAlmp6jmuE", 1, 51, false, "https://www.youtube.com/shorts/3uAlmp6jmuE", "/downloads/Jeff Su/2024-04-15 #GoogleSheets just received a massive update from @googleworkspace/#GoogleSheets just received a massive update from @googleworkspace [3uAlmp6jmuE].mp4", true, ~U[2024-04-15 13:00:03Z]] 16:58:38.644 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.645 [debug] QUERY OK source="media_items" db=0.9ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-04 13:24:22Z], 1] 16:58:38.647 [debug] QUERY OK source="media_items" db=1.3ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Answer this tricky #interview question. #jobsearch", "62fe58ad-b41a-4aa8-a4e4-4cc3c4981302", false, "ZRWQ5XNNR_U", 1, [], 31, false, "https://www.youtube.com/shorts/ZRWQ5XNNR_U", 58, "/downloads/Jeff Su/2024-04-04 Answer this tricky #interview question. #jobsearch/Answer this tricky #interview question. #jobsearch [ZRWQ5XNNR_U].mp4", false, true, 98, ~U[2024-04-04 13:24:22Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Answer this tricky #interview question. #jobsearch", "ZRWQ5XNNR_U", 1, 31, false, "https://www.youtube.com/shorts/ZRWQ5XNNR_U", "/downloads/Jeff Su/2024-04-04 Answer this tricky #interview question. #jobsearch/Answer this tricky #interview question. #jobsearch [ZRWQ5XNNR_U].mp4", true, ~U[2024-04-04 13:24:22Z]] 16:58:38.648 [debug] QUERY OK source="sources" db=0.2ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.649 [debug] QUERY OK source="media_items" db=0.8ms idle=5.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-21 13:20:39Z], 1] 16:58:38.651 [debug] QUERY OK source="media_items" db=0.7ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Prepare for your next #interview with #ChatGPT", "29c777eb-22ea-42f1-831a-528ebab44dd3", false, "o52B2bBu42I", 1, [], 40, false, "https://www.youtube.com/shorts/o52B2bBu42I", 59, "/downloads/Jeff Su/2024-03-21 Prepare for your next #interview with #ChatGPT/Prepare for your next #interview with #ChatGPT [o52B2bBu42I].mp4", false, true, 98, ~U[2024-03-21 13:20:39Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Prepare for your next #interview with #ChatGPT", "o52B2bBu42I", 1, 40, false, "https://www.youtube.com/shorts/o52B2bBu42I", "/downloads/Jeff Su/2024-03-21 Prepare for your next #interview with #ChatGPT/Prepare for your next #interview with #ChatGPT [o52B2bBu42I].mp4", true, ~U[2024-03-21 13:20:39Z]] 16:58:38.651 [debug] QUERY OK source="sources" db=0.3ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.653 [debug] QUERY OK source="media_items" db=0.9ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-14 13:51:44Z], 1] 16:58:38.654 [debug] QUERY OK source="media_items" db=0.8ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#GenerativeAI explained in 40 seconds", "babd359c-9fad-4aa8-951c-e3314b484458", false, "JeIYqIuXng0", 1, [], 44, false, "https://www.youtube.com/shorts/JeIYqIuXng0", 60, "/downloads/Jeff Su/2024-03-14 #GenerativeAI explained in 40 seconds/#GenerativeAI explained in 40 seconds [JeIYqIuXng0].mp4", false, true, 98, ~U[2024-03-14 13:51:44Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "#GenerativeAI explained in 40 seconds", "JeIYqIuXng0", 1, 44, false, "https://www.youtube.com/shorts/JeIYqIuXng0", "/downloads/Jeff Su/2024-03-14 #GenerativeAI explained in 40 seconds/#GenerativeAI explained in 40 seconds [JeIYqIuXng0].mp4", true, ~U[2024-03-14 13:51:44Z]] 16:58:38.655 [debug] QUERY OK source="sources" db=0.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.656 [debug] QUERY OK source="media_items" db=0.8ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-09 13:16:21Z], 1] 16:58:38.658 [debug] QUERY OK source="media_items" db=0.7ms idle=5.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["The Correct Way to use #GoogleGemini", "21c64775-a69c-484e-95af-74c3ab75bf5a", false, "xT7oU9B0Q1Q", 1, [], 56, false, "https://www.youtube.com/shorts/xT7oU9B0Q1Q", 61, "/downloads/Jeff Su/2024-03-09 The Correct Way to use #GoogleGemini/The Correct Way to use #GoogleGemini [xT7oU9B0Q1Q].mp4", false, true, 98, ~U[2024-03-09 13:16:21Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "The Correct Way to use #GoogleGemini", "xT7oU9B0Q1Q", 1, 56, false, "https://www.youtube.com/shorts/xT7oU9B0Q1Q", "/downloads/Jeff Su/2024-03-09 The Correct Way to use #GoogleGemini/The Correct Way to use #GoogleGemini [xT7oU9B0Q1Q].mp4", true, ~U[2024-03-09 13:16:21Z]] 16:58:38.659 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.660 [debug] QUERY OK source="media_items" db=0.9ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-29 13:42:56Z], 1] 16:58:38.662 [debug] QUERY OK source="media_items" db=0.8ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Best #Chrome extensions (according to Google)", "1e73463f-0e2d-4cba-b93c-eeb0e369da10", false, "4yt4YiLXe1g", 1, [], 37, false, "https://www.youtube.com/shorts/4yt4YiLXe1g", 62, "/downloads/Jeff Su/2024-02-29 Best #Chrome extensions (according to Google)/Best #Chrome extensions (according to Google) [4yt4YiLXe1g].mp4", false, true, 98, ~U[2024-02-29 13:42:56Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Best #Chrome extensions (according to Google)", "4yt4YiLXe1g", 1, 37, false, "https://www.youtube.com/shorts/4yt4YiLXe1g", "/downloads/Jeff Su/2024-02-29 Best #Chrome extensions (according to Google)/Best #Chrome extensions (according to Google) [4yt4YiLXe1g].mp4", true, ~U[2024-02-29 13:42:56Z]] 16:58:38.662 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.663 [debug] QUERY OK source="media_items" db=0.8ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-22 13:23:36Z], 1] 16:58:38.665 [debug] QUERY OK source="media_items" db=0.7ms idle=5.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Why my colleagues hate me at #work", "a71da0e9-77e9-4c76-90c0-60d3562645f2", false, "mvabtTYqimA", 1, [], 28, false, "https://www.youtube.com/shorts/mvabtTYqimA", 63, "/downloads/Jeff Su/2024-02-22 Why my colleagues hate me at #work/Why my colleagues hate me at #work [mvabtTYqimA].mp4", false, true, 98, ~U[2024-02-22 13:23:36Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Why my colleagues hate me at #work", "mvabtTYqimA", 1, 28, false, "https://www.youtube.com/shorts/mvabtTYqimA", "/downloads/Jeff Su/2024-02-22 Why my colleagues hate me at #work/Why my colleagues hate me at #work [mvabtTYqimA].mp4", true, ~U[2024-02-22 13:23:36Z]] 16:58:38.666 [debug] QUERY OK source="sources" db=0.3ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.667 [debug] QUERY OK source="media_items" db=0.8ms 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[2024-02-13 13:10:09Z], 1] 16:58:38.669 [debug] QUERY OK source="media_items" db=0.8ms idle=5.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#iPhone Trick You Didn’t Know You Needed", "c81baa68-0965-4884-a5e0-75fc03c73982", false, "tSYRZ0BZX1M", 1, [], 27, false, "https://www.youtube.com/shorts/tSYRZ0BZX1M", 64, "/downloads/Jeff Su/2024-02-13 #iPhone Trick You Didn’t Know You Needed/#iPhone Trick You Didn’t Know You Needed [tSYRZ0BZX1M].mp4", false, true, 98, ~U[2024-02-13 13:10:09Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "#iPhone Trick You Didn’t Know You Needed", "tSYRZ0BZX1M", 1, 27, false, "https://www.youtube.com/shorts/tSYRZ0BZX1M", "/downloads/Jeff Su/2024-02-13 #iPhone Trick You Didn’t Know You Needed/#iPhone Trick You Didn’t Know You Needed [tSYRZ0BZX1M].mp4", true, ~U[2024-02-13 13:10:09Z]] 16:58:38.669 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.671 [debug] QUERY OK source="media_items" db=0.9ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-08 14:09:22Z], 1] 16:58:38.672 [debug] QUERY OK source="media_items" db=0.7ms idle=5.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Find relevant interview questions with #chatgpt", "9509dbbc-fa8f-4f9f-ada3-2aa680902223", false, "611zzonUM2Y", 1, [], 59, false, "https://www.youtube.com/shorts/611zzonUM2Y", 65, "/downloads/Jeff Su/2024-02-08 Find relevant interview questions with #chatgpt/Find relevant interview questions with #chatgpt [611zzonUM2Y].mp4", false, true, 98, ~U[2024-02-08 14:09:22Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Find relevant interview questions with #chatgpt", "611zzonUM2Y", 1, 59, false, "https://www.youtube.com/shorts/611zzonUM2Y", "/downloads/Jeff Su/2024-02-08 Find relevant interview questions with #chatgpt/Find relevant interview questions with #chatgpt [611zzonUM2Y].mp4", true, ~U[2024-02-08 14:09:22Z]] 16:58:38.673 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.674 [debug] QUERY OK source="media_items" db=0.8ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-02 14:35:47Z], 1] 16:58:38.676 [debug] QUERY OK source="media_items" db=0.8ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How to access #chatgpt and #googlebard from desktop", "122813dd-30f1-4847-852a-f67c6d065432", false, "lgfkGOSddLc", 1, [], 29, false, "https://www.youtube.com/shorts/lgfkGOSddLc", 66, "/downloads/Jeff Su/2024-02-02 How to access #chatgpt and #googlebard from desktop/How to access #chatgpt and #googlebard from desktop [lgfkGOSddLc].mp4", false, true, 98, ~U[2024-02-02 14:35:47Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "How to access #chatgpt and #googlebard from desktop", "lgfkGOSddLc", 1, 29, false, "https://www.youtube.com/shorts/lgfkGOSddLc", "/downloads/Jeff Su/2024-02-02 How to access #chatgpt and #googlebard from desktop/How to access #chatgpt and #googlebard from desktop [lgfkGOSddLc].mp4", true, ~U[2024-02-02 14:35:47Z]] 16:58:38.677 [debug] QUERY OK source="sources" db=0.2ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.678 [debug] QUERY OK source="media_items" db=0.8ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-25 13:28:56Z], 1] 16:58:38.679 [debug] QUERY OK source="media_items" db=0.7ms idle=5.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#ChatGPT vs Google #Bard", "18529a46-130d-4569-8db4-8fdd206701e5", false, "KfQSClXZcfw", 1, [], 58, false, "https://www.youtube.com/shorts/KfQSClXZcfw", 67, "/downloads/Jeff Su/2024-01-25 #ChatGPT vs Google #Bard/#ChatGPT vs Google #Bard [KfQSClXZcfw].mp4", false, true, 98, ~U[2024-01-25 13:28:56Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "#ChatGPT vs Google #Bard", "KfQSClXZcfw", 1, 58, false, "https://www.youtube.com/shorts/KfQSClXZcfw", "/downloads/Jeff Su/2024-01-25 #ChatGPT vs Google #Bard/#ChatGPT vs Google #Bard [KfQSClXZcfw].mp4", true, ~U[2024-01-25 13:28:56Z]] 16:58:38.680 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.681 [debug] QUERY OK source="media_items" db=0.8ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-16 12:49:06Z], 1] 16:58:38.683 [debug] QUERY OK source="media_items" db=0.8ms idle=5.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Why #timeblocking doesn’t work", "a2ab64a9-dec4-4f05-b753-034520407bec", false, "CUx1feair74", 1, [], 51, false, "https://www.youtube.com/shorts/CUx1feair74", 68, "/downloads/Jeff Su/2024-01-16 Why #timeblocking doesn’t work/Why #timeblocking doesn’t work [CUx1feair74].mp4", false, true, 98, ~U[2024-01-16 12:49:06Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Why #timeblocking doesn’t work", "CUx1feair74", 1, 51, false, "https://www.youtube.com/shorts/CUx1feair74", "/downloads/Jeff Su/2024-01-16 Why #timeblocking doesn’t work/Why #timeblocking doesn’t work [CUx1feair74].mp4", true, ~U[2024-01-16 12:49:06Z]] 16:58:38.684 [debug] QUERY OK source="sources" db=0.2ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.685 [debug] QUERY OK source="media_items" db=0.8ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-11 12:42:30Z], 1] 16:58:38.687 [debug] QUERY OK source="media_items" db=0.7ms idle=5.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Speed up your #Macbook workflow", "ea436e44-d6ec-49d5-a5f3-50cbeb6385c4", false, "MmwLylrDjGI", 1, [], 60, false, "https://www.youtube.com/shorts/MmwLylrDjGI", 69, "/downloads/Jeff Su/2024-01-11 Speed up your #Macbook workflow/Speed up your #Macbook workflow [MmwLylrDjGI].mp4", false, true, 98, ~U[2024-01-11 12:42:30Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Speed up your #Macbook workflow", "MmwLylrDjGI", 1, 60, false, "https://www.youtube.com/shorts/MmwLylrDjGI", "/downloads/Jeff Su/2024-01-11 Speed up your #Macbook workflow/Speed up your #Macbook workflow [MmwLylrDjGI].mp4", true, ~U[2024-01-11 12:42:30Z]] 16:58:38.687 [debug] QUERY OK source="sources" db=0.3ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.689 [debug] QUERY OK source="media_items" db=0.9ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-19 14:12:56Z], 1] 16:58:38.690 [debug] QUERY OK source="media_items" db=0.8ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#Productivity Tip I Use Everyday", "bd1e9289-87a3-4056-980a-29daee806857", false, "KZ5LokVvPao", 1, [], 32, false, "https://www.youtube.com/shorts/KZ5LokVvPao", 70, "/downloads/Jeff Su/2023-12-19 #Productivity Tip I Use Everyday/#Productivity Tip I Use Everyday [KZ5LokVvPao].mp4", false, true, 98, ~U[2023-12-19 14:12:56Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "#Productivity Tip I Use Everyday", "KZ5LokVvPao", 1, 32, false, "https://www.youtube.com/shorts/KZ5LokVvPao", "/downloads/Jeff Su/2023-12-19 #Productivity Tip I Use Everyday/#Productivity Tip I Use Everyday [KZ5LokVvPao].mp4", true, ~U[2023-12-19 14:12:56Z]] 16:58:38.691 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.692 [debug] QUERY OK source="media_items" db=0.8ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-14 13:14:50Z], 1] 16:58:38.694 [debug] QUERY OK source="media_items" db=1.4ms idle=5.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My “unproductive” Morning Routine #8020rule #atomichabits", "3db8764c-30b6-40bf-93e8-66df58eee4ac", false, "1Qs120_M6w8", 1, [], 56, false, "https://www.youtube.com/shorts/1Qs120_M6w8", 71, "/downloads/Jeff Su/2023-12-14 My “unproductive” Morning Routine #8020rule #atomichabits/My “unproductive” Morning Routine #8020rule #atomichabits [1Qs120_M6w8].mp4", false, true, 98, ~U[2023-12-14 13:14:50Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "My “unproductive” Morning Routine #8020rule #atomichabits", "1Qs120_M6w8", 1, 56, false, "https://www.youtube.com/shorts/1Qs120_M6w8", "/downloads/Jeff Su/2023-12-14 My “unproductive” Morning Routine #8020rule #atomichabits/My “unproductive” Morning Routine #8020rule #atomichabits [1Qs120_M6w8].mp4", true, ~U[2023-12-14 13:14:50Z]] 16:58:38.695 [debug] QUERY OK source="sources" db=0.2ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.696 [debug] QUERY OK source="media_items" db=0.8ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-12-05 13:38:18Z], 1] 16:58:38.698 [debug] QUERY OK source="media_items" db=0.8ms idle=5.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Stupid simple #productivity tip no-one talks about", "5cb96e52-22d3-4d66-9913-2c22f8c5aeaa", false, "Hf5jTvWNM_M", 1, [], 57, false, "https://www.youtube.com/shorts/Hf5jTvWNM_M", 72, "/downloads/Jeff Su/2023-12-05 Stupid simple #productivity tip no-one talks about/Stupid simple #productivity tip no-one talks about [Hf5jTvWNM_M].mp4", false, true, 98, ~U[2023-12-05 13:38:18Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Stupid simple #productivity tip no-one talks about", "Hf5jTvWNM_M", 1, 57, false, "https://www.youtube.com/shorts/Hf5jTvWNM_M", "/downloads/Jeff Su/2023-12-05 Stupid simple #productivity tip no-one talks about/Stupid simple #productivity tip no-one talks about [Hf5jTvWNM_M].mp4", true, ~U[2023-12-05 13:38:18Z]] 16:58:38.699 [debug] QUERY OK source="sources" db=0.3ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.700 [debug] QUERY OK source="media_items" db=0.8ms idle=4.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-30 13:10:28Z], 1] 16:58:38.702 [debug] QUERY OK source="media_items" db=0.8ms idle=5.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My Favorite 3 Keyboard Shortcuts for #Gmail", "f28acb4f-9135-4b8e-b8ff-2aa98e7bf238", false, "l06c8YLvzJE", 1, [], 21, false, "https://www.youtube.com/shorts/l06c8YLvzJE", 73, "/downloads/Jeff Su/2023-11-30 My Favorite 3 Keyboard Shortcuts for #Gmail/My Favorite 3 Keyboard Shortcuts for #Gmail [l06c8YLvzJE].mp4", false, true, 98, ~U[2023-11-30 13:10:28Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "My Favorite 3 Keyboard Shortcuts for #Gmail", "l06c8YLvzJE", 1, 21, false, "https://www.youtube.com/shorts/l06c8YLvzJE", "/downloads/Jeff Su/2023-11-30 My Favorite 3 Keyboard Shortcuts for #Gmail/My Favorite 3 Keyboard Shortcuts for #Gmail [l06c8YLvzJE].mp4", true, ~U[2023-11-30 13:10:28Z]] 16:58:38.702 [debug] QUERY OK source="sources" db=0.3ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.704 [debug] QUERY OK source="media_items" db=0.9ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-21 14:10:09Z], 1] 16:58:38.706 [debug] QUERY OK source="media_items" db=1.3ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Hypothetically, I would never suck up at work…", "487da956-47e1-468f-8ee1-cf19e9f32c11", false, "1sWD1eGvEjk", 1, [], 27, false, "https://www.youtube.com/shorts/1sWD1eGvEjk", 74, "/downloads/Jeff Su/2023-11-21 Hypothetically, I would never suck up at work…/Hypothetically, I would never suck up at work… [1sWD1eGvEjk].mp4", false, true, 98, ~U[2023-11-21 14:10:09Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Hypothetically, I would never suck up at work…", "1sWD1eGvEjk", 1, 27, false, "https://www.youtube.com/shorts/1sWD1eGvEjk", "/downloads/Jeff Su/2023-11-21 Hypothetically, I would never suck up at work…/Hypothetically, I would never suck up at work… [1sWD1eGvEjk].mp4", true, ~U[2023-11-21 14:10:09Z]] 16:58:38.707 [debug] QUERY OK source="sources" db=0.3ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.708 [debug] QUERY OK source="media_items" db=0.8ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-16 13:15:26Z], 1] 16:58:38.710 [debug] QUERY OK source="media_items" db=0.7ms idle=6.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Simple Tip for Your Next #Presentation", "ecb9053f-9fa5-4e37-ad35-c45cb0b3eb84", false, "d5aj8KJ8hU8", 1, [], 28, false, "https://www.youtube.com/shorts/d5aj8KJ8hU8", 75, "/downloads/Jeff Su/2023-11-16 Simple Tip for Your Next #Presentation/Simple Tip for Your Next #Presentation [d5aj8KJ8hU8].mp4", false, true, 98, ~U[2023-11-16 13:15:26Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Simple Tip for Your Next #Presentation", "d5aj8KJ8hU8", 1, 28, false, "https://www.youtube.com/shorts/d5aj8KJ8hU8", "/downloads/Jeff Su/2023-11-16 Simple Tip for Your Next #Presentation/Simple Tip for Your Next #Presentation [d5aj8KJ8hU8].mp4", true, ~U[2023-11-16 13:15:26Z]] 16:58:38.710 [debug] QUERY OK source="sources" db=0.3ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.711 [debug] QUERY OK source="media_items" db=0.8ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-07 13:10:12Z], 1] 16:58:38.713 [debug] QUERY OK source="media_items" db=0.8ms idle=5.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Underrated #Gmail Tip for #Productivity", "adb55170-22f2-4b0d-9eef-bb278d506e9a", false, "S2v1eR3AKrk", 1, [], 50, false, "https://www.youtube.com/shorts/S2v1eR3AKrk", 76, "/downloads/Jeff Su/2023-11-07 Underrated #Gmail Tip for #Productivity/Underrated #Gmail Tip for #Productivity [S2v1eR3AKrk].mp4", false, true, 98, ~U[2023-11-07 13:10:12Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Underrated #Gmail Tip for #Productivity", "S2v1eR3AKrk", 1, 50, false, "https://www.youtube.com/shorts/S2v1eR3AKrk", "/downloads/Jeff Su/2023-11-07 Underrated #Gmail Tip for #Productivity/Underrated #Gmail Tip for #Productivity [S2v1eR3AKrk].mp4", true, ~U[2023-11-07 13:10:12Z]] 16:58:38.715 [debug] QUERY OK source="sources" db=1.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.716 [debug] QUERY OK source="media_items" db=0.9ms idle=5.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-02 13:54:50Z], 1] 16:58:38.718 [debug] QUERY OK source="media_items" db=1.0ms idle=6.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Create notes directly in #Google #chrome", "e72e9805-e4d5-490d-988f-5a3b4a59bfd3", false, "fqjnPHoF8nM", 1, [], 31, false, "https://www.youtube.com/shorts/fqjnPHoF8nM", 77, "/downloads/Jeff Su/2023-11-02 Create notes directly in #Google #chrome/Create notes directly in #Google #chrome [fqjnPHoF8nM].mp4", false, true, 98, ~U[2023-11-02 13:54:50Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Create notes directly in #Google #chrome", "fqjnPHoF8nM", 1, 31, false, "https://www.youtube.com/shorts/fqjnPHoF8nM", "/downloads/Jeff Su/2023-11-02 Create notes directly in #Google #chrome/Create notes directly in #Google #chrome [fqjnPHoF8nM].mp4", true, ~U[2023-11-02 13:54:50Z]] 16:58:38.719 [debug] QUERY OK source="sources" db=0.3ms idle=7.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.721 [debug] QUERY OK source="media_items" db=1.6ms idle=5.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-25 13:17:40Z], 1] 16:58:38.723 [debug] QUERY OK source="media_items" db=1.4ms idle=6.3ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How I use #GoogleDrive for #Mac", "96b0991b-887c-44f6-97c3-21a20728aa5e", false, "dB69E8okvSA", 1, [], 33, false, "https://www.youtube.com/shorts/dB69E8okvSA", 78, "/downloads/Jeff Su/2023-10-25 How I use #GoogleDrive for #Mac/How I use #GoogleDrive for #Mac [dB69E8okvSA].mp4", false, true, 98, ~U[2023-10-25 13:17:40Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "How I use #GoogleDrive for #Mac", "dB69E8okvSA", 1, 33, false, "https://www.youtube.com/shorts/dB69E8okvSA", "/downloads/Jeff Su/2023-10-25 How I use #GoogleDrive for #Mac/How I use #GoogleDrive for #Mac [dB69E8okvSA].mp4", true, ~U[2023-10-25 13:17:40Z]] 16:58:38.723 [debug] QUERY OK source="sources" db=0.2ms idle=7.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.724 [debug] QUERY OK source="media_items" db=0.8ms idle=5.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-21 13:25:20Z], 1] 16:58:38.726 [debug] QUERY OK source="media_items" db=0.8ms idle=6.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Free Tools to Improve Your Next #Presentation", "001141fb-a29d-49eb-9ad0-f7e1e4546f41", false, "ZnGhffpunFw", 1, [], 60, false, "https://www.youtube.com/shorts/ZnGhffpunFw", 79, "/downloads/Jeff Su/2023-10-21 Free Tools to Improve Your Next #Presentation/Free Tools to Improve Your Next #Presentation [ZnGhffpunFw].mp4", false, true, 98, ~U[2023-10-21 13:25:20Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Free Tools to Improve Your Next #Presentation", "ZnGhffpunFw", 1, 60, false, "https://www.youtube.com/shorts/ZnGhffpunFw", "/downloads/Jeff Su/2023-10-21 Free Tools to Improve Your Next #Presentation/Free Tools to Improve Your Next #Presentation [ZnGhffpunFw].mp4", true, ~U[2023-10-21 13:25:20Z]] 16:58:38.727 [debug] QUERY OK source="sources" db=0.3ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.729 [debug] QUERY OK source="media_items" db=0.9ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-19 13:13:29Z], 1] 16:58:38.730 [debug] QUERY OK source="media_items" db=0.7ms idle=5.7ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A Very Unethical #resume hack", "e11c76d1-7c7b-4f55-902d-224fca7141eb", false, "QwwS7PxYpzo", 1, [], 54, false, "https://www.youtube.com/shorts/QwwS7PxYpzo", 80, "/downloads/Jeff Su/2023-10-19 A Very Unethical #resume hack/A Very Unethical #resume hack [QwwS7PxYpzo].mp4", false, true, 98, ~U[2023-10-19 13:13:29Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "A Very Unethical #resume hack", "QwwS7PxYpzo", 1, 54, false, "https://www.youtube.com/shorts/QwwS7PxYpzo", "/downloads/Jeff Su/2023-10-19 A Very Unethical #resume hack/A Very Unethical #resume hack [QwwS7PxYpzo].mp4", true, ~U[2023-10-19 13:13:29Z]] 16:58:38.731 [debug] QUERY OK source="sources" db=0.2ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.732 [debug] QUERY OK source="media_items" db=0.8ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-10 12:50:55Z], 1] 16:58:38.734 [debug] QUERY OK source="media_items" db=0.7ms idle=5.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Simple Job Search Trick for #LinkedIn", "e929f669-3c57-4b3a-a43e-d332629a1891", false, "pvuqrqhHD_U", 1, [], 39, false, "https://www.youtube.com/shorts/pvuqrqhHD_U", 81, "/downloads/Jeff Su/2023-10-10 Simple Job Search Trick for #LinkedIn/Simple Job Search Trick for #LinkedIn [pvuqrqhHD_U].mp4", false, true, 98, ~U[2023-10-10 12:50:55Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Simple Job Search Trick for #LinkedIn", "pvuqrqhHD_U", 1, 39, false, "https://www.youtube.com/shorts/pvuqrqhHD_U", "/downloads/Jeff Su/2023-10-10 Simple Job Search Trick for #LinkedIn/Simple Job Search Trick for #LinkedIn [pvuqrqhHD_U].mp4", true, ~U[2023-10-10 12:50:55Z]] 16:58:38.735 [debug] QUERY OK source="sources" db=1.0ms 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] 16:58:38.737 [debug] QUERY OK source="media_items" db=0.9ms idle=5.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-05 13:53:21Z], 1] 16:58:38.738 [debug] QUERY OK source="media_items" db=0.7ms idle=6.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["❌ Don’t do this on your #CoverLetter", "29607045-149d-4141-b106-c2dca102ddaf", false, "_RSQIQaRfZ4", 1, [], 40, false, "https://www.youtube.com/shorts/_RSQIQaRfZ4", 82, "/downloads/Jeff Su/2023-10-05 ❌ Don’t do this on your #CoverLetter/❌ Don’t do this on your #CoverLetter [_RSQIQaRfZ4].mp4", false, true, 98, ~U[2023-10-05 13:53:21Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "❌ Don’t do this on your #CoverLetter", "_RSQIQaRfZ4", 1, 40, false, "https://www.youtube.com/shorts/_RSQIQaRfZ4", "/downloads/Jeff Su/2023-10-05 ❌ Don’t do this on your #CoverLetter/❌ Don’t do this on your #CoverLetter [_RSQIQaRfZ4].mp4", true, ~U[2023-10-05 13:53:21Z]] 16:58:38.739 [debug] QUERY OK source="sources" db=0.2ms idle=6.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.740 [debug] QUERY OK source="media_items" db=1.5ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-26 13:22:14Z], 1] 16:58:38.742 [debug] QUERY OK source="media_items" db=0.7ms idle=5.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How McKinsey, Bain, BCG create presentations #managementconsulting", "9f7d4597-ad20-4c0b-be66-c4d93daca215", false, "Pn7P4an85fc", 1, [], 59, false, "https://www.youtube.com/shorts/Pn7P4an85fc", 83, "/downloads/Jeff Su/2023-09-26 How McKinsey, Bain, BCG create presentations #managementconsulting/How McKinsey, Bain, BCG create presentations #managementconsulting [Pn7P4an85fc].mp4", false, true, 98, ~U[2023-09-26 13:22:14Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "How McKinsey, Bain, BCG create presentations #managementconsulting", "Pn7P4an85fc", 1, 59, false, "https://www.youtube.com/shorts/Pn7P4an85fc", "/downloads/Jeff Su/2023-09-26 How McKinsey, Bain, BCG create presentations #managementconsulting/How McKinsey, Bain, BCG create presentations #managementconsulting [Pn7P4an85fc].mp4", true, ~U[2023-09-26 13:22:14Z]] 16:58:38.742 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.744 [debug] QUERY OK source="media_items" db=0.9ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-21 12:49:44Z], 1] 16:58:38.745 [debug] QUERY OK source="media_items" db=0.7ms idle=6.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Negotiate a Higher #salary", "1cdb5bf2-efee-4cf2-ad2a-580a163da740", false, "RU9aRYmwuHU", 1, [], 56, false, "https://www.youtube.com/shorts/RU9aRYmwuHU", 84, "/downloads/Jeff Su/2023-09-21 Negotiate a Higher #salary/Negotiate a Higher #salary [RU9aRYmwuHU].mp4", false, true, 98, ~U[2023-09-21 12:49:44Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Negotiate a Higher #salary", "RU9aRYmwuHU", 1, 56, false, "https://www.youtube.com/shorts/RU9aRYmwuHU", "/downloads/Jeff Su/2023-09-21 Negotiate a Higher #salary/Negotiate a Higher #salary [RU9aRYmwuHU].mp4", true, ~U[2023-09-21 12:49:44Z]] 16:58:38.746 [debug] QUERY OK source="sources" db=0.3ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.748 [debug] QUERY OK source="media_items" db=0.9ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-12 12:45:18Z], 1] 16:58:38.749 [debug] QUERY OK source="media_items" db=0.8ms idle=5.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["File Management Tips for #productivity", "64158f48-064a-4fb9-9b08-5aac3b3363ff", false, "ZzeJoFa07OM", 1, [], 57, false, "https://www.youtube.com/shorts/ZzeJoFa07OM", 85, "/downloads/Jeff Su/2023-09-12 File Management Tips for #productivity/File Management Tips for #productivity [ZzeJoFa07OM].mp4", false, true, 98, ~U[2023-09-12 12:45:18Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "File Management Tips for #productivity", "ZzeJoFa07OM", 1, 57, false, "https://www.youtube.com/shorts/ZzeJoFa07OM", "/downloads/Jeff Su/2023-09-12 File Management Tips for #productivity/File Management Tips for #productivity [ZzeJoFa07OM].mp4", true, ~U[2023-09-12 12:45:18Z]] 16:58:38.750 [debug] QUERY OK source="sources" db=0.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.751 [debug] QUERY OK source="media_items" db=0.9ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-09-04 18:28:33Z], 1] 16:58:38.753 [debug] QUERY OK source="media_items" db=0.7ms idle=5.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["These 3 People Can Change Your #career", "ac4a04ca-dbc3-4af5-b5cb-cd78cc4fbc1b", false, "eSsyql4tuLA", 1, [], 52, false, "https://www.youtube.com/shorts/eSsyql4tuLA", 86, "/downloads/Jeff Su/2023-09-04 These 3 People Can Change Your #career/These 3 People Can Change Your #career [eSsyql4tuLA].mp4", false, true, 98, ~U[2023-09-04 18:28:33Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "These 3 People Can Change Your #career", "eSsyql4tuLA", 1, 52, false, "https://www.youtube.com/shorts/eSsyql4tuLA", "/downloads/Jeff Su/2023-09-04 These 3 People Can Change Your #career/These 3 People Can Change Your #career [eSsyql4tuLA].mp4", true, ~U[2023-09-04 18:28:33Z]] 16:58:38.754 [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" = ?) [1] 16:58:38.755 [debug] QUERY OK source="media_items" db=0.9ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-29 13:04:53Z], 1] 16:58:38.757 [debug] QUERY OK source="media_items" db=0.7ms idle=5.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#linkedin tip for creators 🎬", "adf49383-5ffa-4ff6-a176-b16c626f15bf", false, "RfG7BifdX5o", 1, [], 43, false, "https://www.youtube.com/shorts/RfG7BifdX5o", 87, "/downloads/Jeff Su/2023-08-29 #linkedin tip for creators 🎬/#linkedin tip for creators 🎬 [RfG7BifdX5o].mp4", false, true, 98, ~U[2023-08-29 13:04:53Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "#linkedin tip for creators 🎬", "RfG7BifdX5o", 1, 43, false, "https://www.youtube.com/shorts/RfG7BifdX5o", "/downloads/Jeff Su/2023-08-29 #linkedin tip for creators 🎬/#linkedin tip for creators 🎬 [RfG7BifdX5o].mp4", true, ~U[2023-08-29 13:04:53Z]] 16:58:38.758 [debug] QUERY OK source="sources" db=0.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.759 [debug] QUERY OK source="media_items" db=0.9ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-21 11:34:06Z], 1] 16:58:38.760 [debug] QUERY OK source="media_items" db=0.7ms idle=5.7ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["#productivitytips for the workplace #shorts", "02b3d487-1d62-4c65-8001-addc92fe4efa", false, "R-Bm7OvQORE", 1, [], 54, false, "https://www.youtube.com/shorts/R-Bm7OvQORE", 88, "/downloads/Jeff Su/2023-08-21 #productivitytips for the workplace #shorts/#productivitytips for the workplace #shorts [R-Bm7OvQORE].mp4", false, true, 98, ~U[2023-08-21 11:34:06Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "#productivitytips for the workplace #shorts", "R-Bm7OvQORE", 1, 54, false, "https://www.youtube.com/shorts/R-Bm7OvQORE", "/downloads/Jeff Su/2023-08-21 #productivitytips for the workplace #shorts/#productivitytips for the workplace #shorts [R-Bm7OvQORE].mp4", true, ~U[2023-08-21 11:34:06Z]] 16:58:38.761 [debug] QUERY OK source="sources" db=0.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.763 [debug] QUERY OK source="media_items" db=1.1ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-08-15 12:59:02Z], 1] 16:58:38.766 [debug] QUERY OK source="media_items" db=2.1ms idle=5.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Write the Perfect #prompt in #chatgpt and #googlebard", "3eebe57c-b6aa-4660-a689-d4cb4ca5852e", false, "F448meqCWqc", 1, [], 47, false, "https://www.youtube.com/shorts/F448meqCWqc", 89, "/downloads/Jeff Su/2023-08-15 Write the Perfect #prompt in #chatgpt and #googlebard/Write the Perfect #prompt in #chatgpt and #googlebard [F448meqCWqc].mp4", false, true, 98, ~U[2023-08-15 12:59:02Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Write the Perfect #prompt in #chatgpt and #googlebard", "F448meqCWqc", 1, 47, false, "https://www.youtube.com/shorts/F448meqCWqc", "/downloads/Jeff Su/2023-08-15 Write the Perfect #prompt in #chatgpt and #googlebard/Write the Perfect #prompt in #chatgpt and #googlebard [F448meqCWqc].mp4", true, ~U[2023-08-15 12:59:02Z]] 16:58:38.767 [debug] QUERY OK source="sources" db=0.3ms idle=7.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.768 [debug] QUERY OK source="media_items" db=0.9ms idle=6.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-18 14:01:42Z], 1] 16:58:38.770 [debug] QUERY OK source="media_items" db=0.7ms idle=6.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Your Cover Letter Needs This! #jobsearchtips", "b9e0c8f7-85e4-4d25-9e90-d92c21969696", false, "6TXv9qleMoY", 1, [], 34, false, "https://www.youtube.com/shorts/6TXv9qleMoY", 90, "/downloads/Jeff Su/2023-04-18 Your Cover Letter Needs This! #jobsearchtips/Your Cover Letter Needs This! #jobsearchtips [6TXv9qleMoY].mp4", false, true, 98, ~U[2023-04-18 14:01:42Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Your Cover Letter Needs This! #jobsearchtips", "6TXv9qleMoY", 1, 34, false, "https://www.youtube.com/shorts/6TXv9qleMoY", "/downloads/Jeff Su/2023-04-18 Your Cover Letter Needs This! #jobsearchtips/Your Cover Letter Needs This! #jobsearchtips [6TXv9qleMoY].mp4", true, ~U[2023-04-18 14:01:42Z]] 16:58:38.772 [debug] QUERY OK source="sources" db=1.9ms queue=0.1ms idle=7.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.773 [debug] QUERY OK source="media_items" db=0.9ms idle=6.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-06 12:59:32Z], 1] 16:58:38.776 [debug] QUERY OK source="media_items" db=1.6ms idle=7.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Resume Tip for 2024! #jobsearchtips", "78080437-0528-412b-af7c-6ae0c47a66c0", false, "y5e_zJAyIvE", 1, [], 22, false, "https://www.youtube.com/shorts/y5e_zJAyIvE", 91, "/downloads/Jeff Su/2023-04-06 Resume Tip for 2024! #jobsearchtips/Resume Tip for 2024! #jobsearchtips [y5e_zJAyIvE].mp4", false, true, 98, ~U[2023-04-06 12:59:32Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Resume Tip for 2024! #jobsearchtips", "y5e_zJAyIvE", 1, 22, false, "https://www.youtube.com/shorts/y5e_zJAyIvE", "/downloads/Jeff Su/2023-04-06 Resume Tip for 2024! #jobsearchtips/Resume Tip for 2024! #jobsearchtips [y5e_zJAyIvE].mp4", true, ~U[2023-04-06 12:59:32Z]] 16:58:38.777 [debug] QUERY OK source="sources" db=0.3ms idle=8.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.778 [debug] QUERY OK source="media_items" db=0.8ms idle=7.8ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-03-25 01:31:54Z], 1] 16:58:38.780 [debug] QUERY OK source="media_items" db=0.8ms idle=6.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How to git gud with ChatGPT", "e67d445f-68e0-4b11-851a-f106b4984b17", false, "ahiZTeQS36A", 1, [], 42, false, "https://www.youtube.com/shorts/ahiZTeQS36A", 92, "/downloads/Jeff Su/2023-03-25 How to git gud with ChatGPT/How to git gud with ChatGPT [ahiZTeQS36A].mp4", false, true, 98, ~U[2023-03-25 01:31:54Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "How to git gud with ChatGPT", "ahiZTeQS36A", 1, 42, false, "https://www.youtube.com/shorts/ahiZTeQS36A", "/downloads/Jeff Su/2023-03-25 How to git gud with ChatGPT/How to git gud with ChatGPT [ahiZTeQS36A].mp4", true, ~U[2023-03-25 01:31:54Z]] 16:58:38.780 [debug] QUERY OK source="sources" db=0.3ms idle=6.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.781 [debug] QUERY OK source="media_items" db=0.9ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-03-07 13:08:52Z], 1] 16:58:38.783 [debug] QUERY OK source="media_items" db=0.8ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Catch brands selling your data 🥷 #shorts", "0e6c9c9e-bb7f-48b7-9a07-94c11f40a135", false, "Tsthp_4w6eo", 1, [], 34, false, "https://www.youtube.com/shorts/Tsthp_4w6eo", 93, "/downloads/Jeff Su/2023-03-07 Catch brands selling your data 🥷 #shorts/Catch brands selling your data 🥷 #shorts [Tsthp_4w6eo].mp4", false, true, 98, ~U[2023-03-07 13:08:52Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Catch brands selling your data 🥷 #shorts", "Tsthp_4w6eo", 1, 34, false, "https://www.youtube.com/shorts/Tsthp_4w6eo", "/downloads/Jeff Su/2023-03-07 Catch brands selling your data 🥷 #shorts/Catch brands selling your data 🥷 #shorts [Tsthp_4w6eo].mp4", true, ~U[2023-03-07 13:08:52Z]] 16:58:38.784 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.785 [debug] QUERY OK source="media_items" db=0.8ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-14 13:01:29Z], 1] 16:58:38.787 [debug] QUERY OK source="media_items" db=0.7ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Must-Use Tool for Job Seekers 👀", "9e961f4d-8c06-444b-9758-311dcd355ead", false, "LAQj9SYom6U", 1, [], 31, false, "https://www.youtube.com/shorts/LAQj9SYom6U", 94, "/downloads/Jeff Su/2023-02-14 Must-Use Tool for Job Seekers 👀/Must-Use Tool for Job Seekers 👀 [LAQj9SYom6U].mp4", false, true, 98, ~U[2023-02-14 13:01:29Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Must-Use Tool for Job Seekers 👀", "LAQj9SYom6U", 1, 31, false, "https://www.youtube.com/shorts/LAQj9SYom6U", "/downloads/Jeff Su/2023-02-14 Must-Use Tool for Job Seekers 👀/Must-Use Tool for Job Seekers 👀 [LAQj9SYom6U].mp4", true, ~U[2023-02-14 13:01:29Z]] 16:58:38.788 [debug] QUERY OK source="sources" db=0.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.789 [debug] QUERY OK source="media_items" db=0.9ms idle=5.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-02 12:57:59Z], 1] 16:58:38.791 [debug] QUERY OK source="media_items" db=0.7ms idle=5.7ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["How to Commute Productively 🚝#gmail", "0c358391-4172-413b-add9-cc56e3c9d916", false, "iDAOgM-yy2I", 1, [], 36, false, "https://www.youtube.com/shorts/iDAOgM-yy2I", 95, "/downloads/Jeff Su/2023-02-02 How to Commute Productively 🚝#gmail/How to Commute Productively 🚝#gmail [iDAOgM-yy2I].mp4", false, true, 98, ~U[2023-02-02 12:57:59Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "How to Commute Productively 🚝#gmail", "iDAOgM-yy2I", 1, 36, false, "https://www.youtube.com/shorts/iDAOgM-yy2I", "/downloads/Jeff Su/2023-02-02 How to Commute Productively 🚝#gmail/How to Commute Productively 🚝#gmail [iDAOgM-yy2I].mp4", true, ~U[2023-02-02 12:57:59Z]] 16:58:38.791 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.793 [debug] QUERY OK source="media_items" db=1.4ms idle=4.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-01-20 10:30:01Z], 1] 16:58:38.794 [debug] QUERY OK source="media_items" db=0.7ms idle=5.6ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["A Job Search Tip for…Productivity?", "e32a486b-3b23-4f98-bad3-370251d52fa7", false, "N2-QqAYRtV8", 1, [], 37, false, "https://www.youtube.com/shorts/N2-QqAYRtV8", 96, "/downloads/Jeff Su/2023-01-20 A Job Search Tip for…Productivity?/A Job Search Tip for…Productivity? [N2-QqAYRtV8].mp4", false, true, 98, ~U[2023-01-20 10:30:01Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "A Job Search Tip for…Productivity?", "N2-QqAYRtV8", 1, 37, false, "https://www.youtube.com/shorts/N2-QqAYRtV8", "/downloads/Jeff Su/2023-01-20 A Job Search Tip for…Productivity?/A Job Search Tip for…Productivity? [N2-QqAYRtV8].mp4", true, ~U[2023-01-20 10:30:01Z]] 16:58:38.795 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.796 [debug] QUERY OK source="media_items" db=0.9ms idle=4.9ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-01-07 12:57:11Z], 1] 16:58:38.798 [debug] QUERY OK source="media_items" db=0.7ms idle=5.7ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts", "ac55c74d-8624-4569-b193-70dd70a373c4", false, "ndSCjufN6Qc", 1, [], 28, false, "https://www.youtube.com/shorts/ndSCjufN6Qc", 97, "/downloads/Jeff Su/2023-01-07 Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts/Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts [ndSCjufN6Qc].mp4", false, true, 98, ~U[2023-01-07 12:57:11Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts", "ndSCjufN6Qc", 1, 28, false, "https://www.youtube.com/shorts/ndSCjufN6Qc", "/downloads/Jeff Su/2023-01-07 Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts/Useful Tip for Visual Learners! #infographics #visual #googlesearch #research #shorts [ndSCjufN6Qc].mp4", true, ~U[2023-01-07 12:57:11Z]] 16:58:38.798 [debug] QUERY OK source="sources" db=0.3ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.800 [debug] QUERY OK source="media_items" db=1.0ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-31 10:51:50Z], 1] 16:58:38.802 [debug] QUERY OK source="media_items" db=0.7ms idle=5.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Suiting up for #NYE #happynewyear #shorts", "c4aa5f4f-ecb9-4783-98ce-22cd4bc87746", false, "aToA1w1Wmmw", 1, [], 8, false, "https://www.youtube.com/shorts/aToA1w1Wmmw", 98, "/downloads/Jeff Su/2022-12-31 Suiting up for #NYE #happynewyear #shorts/Suiting up for #NYE #happynewyear #shorts [aToA1w1Wmmw].mp4", false, true, 98, ~U[2022-12-31 10:51:50Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Suiting up for #NYE #happynewyear #shorts", "aToA1w1Wmmw", 1, 8, false, "https://www.youtube.com/shorts/aToA1w1Wmmw", "/downloads/Jeff Su/2022-12-31 Suiting up for #NYE #happynewyear #shorts/Suiting up for #NYE #happynewyear #shorts [aToA1w1Wmmw].mp4", true, ~U[2022-12-31 10:51:50Z]] 16:58:38.803 [debug] QUERY OK source="sources" db=0.3ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.804 [debug] QUERY OK source="media_items" db=0.9ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-29 12:53:49Z], 1] 16:58:38.805 [debug] QUERY OK source="media_items" db=0.9ms idle=5.8ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["LinkedIn Tip for Job Seekers in 2024", "7b199de2-a30c-4038-80d8-00bc70a6af61", false, "cKOp_ajx7ZU", 1, [], 29, false, "https://www.youtube.com/shorts/cKOp_ajx7ZU", 99, "/downloads/Jeff Su/2022-12-29 LinkedIn Tip for Job Seekers in 2024/LinkedIn Tip for Job Seekers in 2024 [cKOp_ajx7ZU].mp4", false, true, 98, ~U[2022-12-29 12:53:49Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "LinkedIn Tip for Job Seekers in 2024", "cKOp_ajx7ZU", 1, 29, false, "https://www.youtube.com/shorts/cKOp_ajx7ZU", "/downloads/Jeff Su/2022-12-29 LinkedIn Tip for Job Seekers in 2024/LinkedIn Tip for Job Seekers in 2024 [cKOp_ajx7ZU].mp4", true, ~U[2022-12-29 12:53:49Z]] 16:58:38.807 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.808 [debug] QUERY OK source="media_items" db=0.9ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-15 12:03:26Z], 1] 16:58:38.810 [debug] QUERY OK source="media_items" db=0.7ms idle=5.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Don’t make this #resume mistake! #resumetips #jobsearch #shorts", "488cd187-8c15-4ff9-9e09-36991bd58c12", false, "ltQ6OhEcmZI", 1, [], 39, false, "https://www.youtube.com/shorts/ltQ6OhEcmZI", 100, "/downloads/Jeff Su/2022-12-15 Don’t make this #resume mistake! #resumetips #jobsearch #shorts/Don’t make this #resume mistake! #resumetips #jobsearch #shorts [ltQ6OhEcmZI].mp4", false, true, 98, ~U[2022-12-15 12:03:26Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Don’t make this #resume mistake! #resumetips #jobsearch #shorts", "ltQ6OhEcmZI", 1, 39, false, "https://www.youtube.com/shorts/ltQ6OhEcmZI", "/downloads/Jeff Su/2022-12-15 Don’t make this #resume mistake! #resumetips #jobsearch #shorts/Don’t make this #resume mistake! #resumetips #jobsearch #shorts [ltQ6OhEcmZI].mp4", true, ~U[2022-12-15 12:03:26Z]] 16:58:38.810 [debug] QUERY OK source="sources" db=0.3ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.811 [debug] QUERY OK source="media_items" db=0.9ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-08 13:02:54Z], 1] 16:58:38.813 [debug] QUERY OK source="media_items" db=0.7ms idle=5.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts", "291a47a5-4378-48e4-8ba9-9a0aee9e3787", false, "9GBDtq2kSeI", 1, [], 36, false, "https://www.youtube.com/shorts/9GBDtq2kSeI", 101, "/downloads/Jeff Su/2022-12-08 Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts/Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts [9GBDtq2kSeI].mp4", false, true, 98, ~U[2022-12-08 13:02:54Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts", "9GBDtq2kSeI", 1, 36, false, "https://www.youtube.com/shorts/9GBDtq2kSeI", "/downloads/Jeff Su/2022-12-08 Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts/Don’t be THAT Job Seeker #interviewtips #jobsearch #shorts [9GBDtq2kSeI].mp4", true, ~U[2022-12-08 13:02:54Z]] 16:58:38.814 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.816 [debug] QUERY OK source="media_items" db=1.5ms idle=5.2ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-01 12:48:26Z], 1] 16:58:38.818 [debug] QUERY OK source="media_items" db=0.8ms idle=6.5ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts", "93e5a389-5677-45f9-9ded-87f4ef635a23", false, "dZrFgsFM7p8", 1, [], 34, false, "https://www.youtube.com/shorts/dZrFgsFM7p8", 102, "/downloads/Jeff Su/2022-12-01 3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts/3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts [dZrFgsFM7p8].mp4", false, true, 98, ~U[2022-12-01 12:48:26Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts", "dZrFgsFM7p8", 1, 34, false, "https://www.youtube.com/shorts/dZrFgsFM7p8", "/downloads/Jeff Su/2022-12-01 3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts/3 Spreadsheet Tips for Work! #spreadsheet #productivity #projectmanagement #excel #shorts [dZrFgsFM7p8].mp4", true, ~U[2022-12-01 12:48:26Z]] 16:58:38.818 [debug] QUERY OK source="sources" db=0.3ms idle=6.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.820 [debug] QUERY OK source="media_items" db=0.8ms idle=6.0ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-24 10:46:56Z], 1] 16:58:38.821 [debug] QUERY OK source="media_items" db=0.8ms idle=6.3ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity", "9eba5c6c-dc7b-41c7-af7b-6f464d613f96", false, "M0KgQ07FGcc", 1, [], 24, false, "https://www.youtube.com/shorts/M0KgQ07FGcc", 103, "/downloads/Jeff Su/2022-11-24 Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity/Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity [M0KgQ07FGcc].mp4", false, true, 98, ~U[2022-11-24 10:46:56Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity", "M0KgQ07FGcc", 1, 24, false, "https://www.youtube.com/shorts/M0KgQ07FGcc", "/downloads/Jeff Su/2022-11-24 Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity/Steal with Pride (at work)! #shorts #careertips #austinkleon #stealwithpride #productivity [M0KgQ07FGcc].mp4", true, ~U[2022-11-24 10:46:56Z]] 16:58:38.822 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.824 [debug] QUERY OK source="media_items" db=0.9ms queue=0.4ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-17 12:57:07Z], 1] 16:58:38.825 [debug] QUERY OK source="media_items" db=0.7ms idle=5.7ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Unpopular Work Advice #careertips #unpopularopinions #shorts", "7c0db0cd-2df4-437e-908a-4cb5e9c3360b", false, "FTUkkOwhRis", 1, [], 28, false, "https://www.youtube.com/shorts/FTUkkOwhRis", 104, "/downloads/Jeff Su/2022-11-17 Unpopular Work Advice #careertips #unpopularopinions #shorts/Unpopular Work Advice #careertips #unpopularopinions #shorts [FTUkkOwhRis].mp4", false, true, 98, ~U[2022-11-17 12:57:07Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Unpopular Work Advice #careertips #unpopularopinions #shorts", "FTUkkOwhRis", 1, 28, false, "https://www.youtube.com/shorts/FTUkkOwhRis", "/downloads/Jeff Su/2022-11-17 Unpopular Work Advice #careertips #unpopularopinions #shorts/Unpopular Work Advice #careertips #unpopularopinions #shorts [FTUkkOwhRis].mp4", true, ~U[2022-11-17 12:57:07Z]] 16:58:38.826 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.828 [debug] QUERY OK source="media_items" db=1.0ms queue=0.5ms idle=4.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-10 12:49:47Z], 1] 16:58:38.829 [debug] QUERY OK source="media_items" db=1.2ms idle=5.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts", "e9afe04f-c039-4fd7-b172-26bc5f597774", false, "BTDSmLXD0bg", 1, [], 49, false, "https://www.youtube.com/shorts/BTDSmLXD0bg", 105, "/downloads/Jeff Su/2022-11-10 3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts/3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts [BTDSmLXD0bg].mp4", false, true, 98, ~U[2022-11-10 12:49:47Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts", "BTDSmLXD0bg", 1, 49, false, "https://www.youtube.com/shorts/BTDSmLXD0bg", "/downloads/Jeff Su/2022-11-10 3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts/3 MUST-USE Apps for The Mac! #macbookpro #productivityatwork #shorts [BTDSmLXD0bg].mp4", true, ~U[2022-11-10 12:49:47Z]] 16:58:38.831 [debug] QUERY OK source="sources" db=0.3ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.832 [debug] QUERY OK source="media_items" db=0.9ms idle=5.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-11-03 11:46:16Z], 1] 16:58:38.833 [debug] QUERY OK source="media_items" db=0.8ms idle=6.4ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career", "3549265f-adc8-4305-8ee7-a54808e80be3", false, "uPD1eAWSAvc", 1, [], 36, false, "https://www.youtube.com/shorts/uPD1eAWSAvc", 106, "/downloads/Jeff Su/2022-11-03 3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career/3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career [uPD1eAWSAvc].mp4", false, true, 98, ~U[2022-11-03 11:46:16Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career", "uPD1eAWSAvc", 1, 36, false, "https://www.youtube.com/shorts/uPD1eAWSAvc", "/downloads/Jeff Su/2022-11-03 3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career/3 LinkedIn Profile Tips for Working Professionals! #linkedin #shorts #career [uPD1eAWSAvc].mp4", true, ~U[2022-11-03 11:46:16Z]] 16:58:38.835 [debug] QUERY OK source="sources" db=1.2ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.836 [debug] QUERY OK source="media_items" db=0.9ms idle=5.6ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-10-13 12:11:55Z], 1] 16:58:38.838 [debug] QUERY OK source="media_items" db=0.8ms idle=6.3ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["What Motivates You? #interviewtips #interviewquestions #jobsearch", "3cfb4b71-ec05-41d5-b828-0dc212b4ea4f", false, "OjQ26g4U0JI", 1, [], 21, false, "https://www.youtube.com/shorts/OjQ26g4U0JI", 107, "/downloads/Jeff Su/2022-10-13 What Motivates You? #interviewtips #interviewquestions #jobsearch/What Motivates You? #interviewtips #interviewquestions #jobsearch [OjQ26g4U0JI].mp4", false, true, 98, ~U[2022-10-13 12:11:55Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "What Motivates You? #interviewtips #interviewquestions #jobsearch", "OjQ26g4U0JI", 1, 21, false, "https://www.youtube.com/shorts/OjQ26g4U0JI", "/downloads/Jeff Su/2022-10-13 What Motivates You? #interviewtips #interviewquestions #jobsearch/What Motivates You? #interviewtips #interviewquestions #jobsearch [OjQ26g4U0JI].mp4", true, ~U[2022-10-13 12:11:55Z]] 16:58:38.839 [debug] QUERY OK source="sources" db=0.3ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.840 [debug] QUERY OK source="media_items" db=1.5ms idle=5.7ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-10-06 10:35:47Z], 1] 16:58:38.842 [debug] QUERY OK source="media_items" db=0.7ms idle=6.0ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["iPhone Tip to Protect Your Eyes 👀", "d7e687c1-d41e-4108-bb84-124f325cf587", false, "KspOveyTUjY", 1, [], 37, false, "https://www.youtube.com/shorts/KspOveyTUjY", 108, "/downloads/Jeff Su/2022-10-06 iPhone Tip to Protect Your Eyes 👀/iPhone Tip to Protect Your Eyes 👀 [KspOveyTUjY].mp4", false, true, 98, ~U[2022-10-06 10:35:47Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "iPhone Tip to Protect Your Eyes 👀", "KspOveyTUjY", 1, 37, false, "https://www.youtube.com/shorts/KspOveyTUjY", "/downloads/Jeff Su/2022-10-06 iPhone Tip to Protect Your Eyes 👀/iPhone Tip to Protect Your Eyes 👀 [KspOveyTUjY].mp4", true, ~U[2022-10-06 10:35:47Z]] 16:58:38.844 [debug] QUERY OK source="sources" db=1.0ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.845 [debug] QUERY OK source="media_items" db=0.9ms idle=6.5ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-29 12:05:02Z], 1] 16:58:38.847 [debug] QUERY OK source="media_items" db=0.8ms idle=7.1ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["My 6 Favorite iOS16 Tips! #iphone14pro #ios16", "e3efc2f2-548b-40d9-83bc-e23c8537d1f4", false, "7A_Irr0FA9A", 1, [], 48, false, "https://www.youtube.com/shorts/7A_Irr0FA9A", 109, "/downloads/Jeff Su/2022-09-29 My 6 Favorite iOS16 Tips! #iphone14pro #ios16/My 6 Favorite iOS16 Tips! #iphone14pro #ios16 [7A_Irr0FA9A].mp4", false, true, 98, ~U[2022-09-29 12:05:02Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "My 6 Favorite iOS16 Tips! #iphone14pro #ios16", "7A_Irr0FA9A", 1, 48, false, "https://www.youtube.com/shorts/7A_Irr0FA9A", "/downloads/Jeff Su/2022-09-29 My 6 Favorite iOS16 Tips! #iphone14pro #ios16/My 6 Favorite iOS16 Tips! #iphone14pro #ios16 [7A_Irr0FA9A].mp4", true, ~U[2022-09-29 12:05:02Z]] 16:58:38.848 [debug] QUERY OK source="sources" db=0.6ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.849 [debug] QUERY OK source="media_items" db=0.9ms idle=6.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-22 12:04:11Z], 1] 16:58:38.851 [debug] QUERY OK source="media_items" db=0.8ms idle=6.2ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["99% of LinkedIn Users Don’t Do This!", "60ad8e5e-e2a3-4037-b581-23fa60d7bd39", false, "V7Gg19QmB0Y", 1, [], 15, false, "https://www.youtube.com/shorts/V7Gg19QmB0Y", 110, "/downloads/Jeff Su/2022-09-22 99% of LinkedIn Users Don’t Do This!/99% of LinkedIn Users Don’t Do This! [V7Gg19QmB0Y].mp4", false, true, 98, ~U[2022-09-22 12:04:11Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "99% of LinkedIn Users Don’t Do This!", "V7Gg19QmB0Y", 1, 15, false, "https://www.youtube.com/shorts/V7Gg19QmB0Y", "/downloads/Jeff Su/2022-09-22 99% of LinkedIn Users Don’t Do This!/99% of LinkedIn Users Don’t Do This! [V7Gg19QmB0Y].mp4", true, ~U[2022-09-22 12:04:11Z]] 16:58:38.852 [debug] QUERY OK source="sources" db=0.3ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.853 [debug] QUERY OK source="media_items" db=0.9ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-13 11:15:32Z], 1] 16:58:38.855 [debug] QUERY OK source="media_items" db=0.7ms idle=5.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Gmail Productivity Hack! #gmail", "32f085c7-f7f9-4b48-b561-286cf24191d2", false, "42hUYr2IU-c", 1, [], 17, false, "https://www.youtube.com/shorts/42hUYr2IU-c", 111, "/downloads/Jeff Su/2022-09-13 Gmail Productivity Hack! #gmail/Gmail Productivity Hack! #gmail [42hUYr2IU-c].NA", false, true, 98, ~U[2022-09-13 11:15:32Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Gmail Productivity Hack! #gmail", "42hUYr2IU-c", 1, 17, false, "https://www.youtube.com/shorts/42hUYr2IU-c", "/downloads/Jeff Su/2022-09-13 Gmail Productivity Hack! #gmail/Gmail Productivity Hack! #gmail [42hUYr2IU-c].NA", true, ~U[2022-09-13 11:15:32Z]] 16:58:38.855 [debug] QUERY OK source="sources" db=0.3ms idle=6.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.857 [debug] QUERY OK source="media_items" db=0.9ms idle=5.3ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-07 12:25:00Z], 1] 16:58:38.858 [debug] QUERY OK source="media_items" db=0.7ms idle=5.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["Crazy Customization Tip for MacBook Users!", "a5cf57c1-a72d-404c-8edc-5f6149e5e585", false, "3FtJia6HnmA", 1, [], 23, false, "https://www.youtube.com/shorts/3FtJia6HnmA", 112, "/downloads/Jeff Su/2022-09-07 Crazy Customization Tip for MacBook Users!/Crazy Customization Tip for MacBook Users! [3FtJia6HnmA].mp4", false, true, 98, ~U[2022-09-07 12:25:00Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "Crazy Customization Tip for MacBook Users!", "3FtJia6HnmA", 1, 23, false, "https://www.youtube.com/shorts/3FtJia6HnmA", "/downloads/Jeff Su/2022-09-07 Crazy Customization Tip for MacBook Users!/Crazy Customization Tip for MacBook Users! [3FtJia6HnmA].mp4", true, ~U[2022-09-07 12:25:00Z]] 16:58:38.860 [debug] QUERY OK source="sources" db=0.3ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.861 [debug] QUERY OK source="media_items" db=1.0ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-09-01 04:02:16Z], 1] 16:58:38.862 [debug] QUERY OK source="media_items" db=0.7ms idle=5.9ms INSERT INTO "media_items" AS m0 ("title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["LinkedIn hack for job search #jobsearch #linkedin", "784fc742-f1d1-4cac-a978-03f4adca7fc2", false, "QEFaxDcp9bA", 1, [], 32, false, "https://www.youtube.com/shorts/QEFaxDcp9bA", 113, "/downloads/Jeff Su/2022-09-01 LinkedIn hack for job search #jobsearch #linkedin/LinkedIn hack for job search #jobsearch #linkedin [QEFaxDcp9bA].mp4", false, true, 98, ~U[2022-09-01 04:02:16Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "", "LinkedIn hack for job search #jobsearch #linkedin", "QEFaxDcp9bA", 1, 32, false, "https://www.youtube.com/shorts/QEFaxDcp9bA", "/downloads/Jeff Su/2022-09-01 LinkedIn hack for job search #jobsearch #linkedin/LinkedIn hack for job search #jobsearch #linkedin [QEFaxDcp9bA].mp4", true, ~U[2022-09-01 04:02:16Z]] 16:58:38.863 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 16:58:38.865 [debug] QUERY OK source="media_items" db=0.9ms idle=5.1ms SELECT min(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2020-11-03 12:05:39Z], 1] 16:58:38.867 [debug] QUERY OK source="media_items" db=1.1ms idle=5.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","prevent_download","media_id","source_id","subtitle_filepaths","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "source_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "uploaded_at" = ? RETURNING "id" ["1. You can get fancy with a resume and still have it look professional 👌\n\n2. Your Cover Letter isn't supposed to land you an interview 🤯\n\n3. You can ask \"what is your success metric\" during an informational interview and use their answer in your interview 😈\n\n4. CARL method is a much better format for behavioral interview questions than STAR\n\n5. To come off as more genuine and authentic, you should add \"selfish\" elements in your interview answers 🤗\n\nYouTube #shorts", "Career and Interview Tips - Lightening Round! #shorts", "c63c3a11-25f0-46bd-bc81-63ed18812b67", false, "xYsulWPYVQw", 1, [], 57, false, "https://www.youtube.com/shorts/xYsulWPYVQw", 114, "/downloads/Jeff Su/2020-11-03 Career and Interview Tips - Lightening Round! #shorts/Career and Interview Tips - Lightening Round! #shorts [xYsulWPYVQw].mp4", false, true, 99, ~U[2020-11-03 12:05:39Z], ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], "1. You can get fancy with a resume and still have it look professional 👌\n\n2. Your Cover Letter isn't supposed to land you an interview 🤯\n\n3. You can ask \"what is your success metric\" during an informational interview and use their answer in your interview 😈\n\n4. CARL method is a much better format for behavioral interview questions than STAR\n\n5. To come off as more genuine and authentic, you should add \"selfish\" elements in your interview answers 🤗\n\nYouTube #shorts", "Career and Interview Tips - Lightening Round! #shorts", "xYsulWPYVQw", 1, 57, false, "https://www.youtube.com/shorts/xYsulWPYVQw", "/downloads/Jeff Su/2020-11-03 Career and Interview Tips - Lightening Round! #shorts/Career and Interview Tips - Lightening Round! #shorts [xYsulWPYVQw].mp4", true, ~U[2020-11-03 12:05:39Z]] 16:58:38.867 [debug] QUERY OK source="sources" db=0.3ms idle=6.2ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z], 1] 16:58:38.869 [debug] QUERY OK source="media_items" db=1.0ms queue=0.4ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 16:58:38.872 [debug] QUERY OK source="media_items" db=1.2ms idle=7.0ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 16:58:38.872 [debug] QUERY OK source="media_items" db=0.3ms idle=7.4ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 16:58:38.872 [info] No notification servers provided for source 1 16:58:38.875 [debug] QUERY OK source="tasks" db=0.3ms idle=4.8ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [254, 1, ~U[2026-04-23 14:58:38Z], ~U[2026-04-23 14:58:38Z]] 16:58:38.875 [info] {"args":{"id":1},"id":3,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":1285373249,"event":"job:stop","queue_time":395318,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 16:58:48.325 [info] {"source":"oban","duration":1326,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:59:00.229 [info] {"source":"oban","duration":330,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 16:59:18.327 [info] {"source":"oban","duration":1019,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 16:59:48.328 [info] {"source":"oban","duration":1024,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:00:00.230 [info] {"source":"oban","duration":348,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:00:18.331 [info] {"source":"oban","duration":1137,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:00:48.333 [info] {"source":"oban","duration":1121,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:01:00.231 [info] {"source":"oban","duration":347,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:01:18.335 [info] {"source":"oban","duration":1393,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:01:48.336 [info] {"source":"oban","duration":1039,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:02:00.232 [info] {"source":"oban","duration":303,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:02:18.339 [info] {"source":"oban","duration":1099,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:02:48.341 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:03:00.233 [info] {"source":"oban","duration":341,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:03:18.342 [info] {"source":"oban","duration":938,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:03:48.345 [info] {"source":"oban","duration":1018,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:04:00.235 [info] {"source":"oban","duration":318,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:04:18.347 [info] {"source":"oban","duration":1216,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:04:48.349 [info] {"source":"oban","duration":1005,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:05:00.237 [info] {"source":"oban","duration":369,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:05:18.350 [info] {"source":"oban","duration":919,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:05:48.353 [info] {"source":"oban","duration":1054,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:06:00.239 [info] {"source":"oban","duration":326,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:06:18.355 [info] {"source":"oban","duration":1137,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:06:48.356 [info] {"source":"oban","duration":1002,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:07:00.240 [info] {"source":"oban","duration":422,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:07:18.359 [info] {"source":"oban","duration":1195,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:07:48.361 [info] {"source":"oban","duration":990,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:08:00.242 [info] {"source":"oban","duration":320,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:08:18.363 [info] {"source":"oban","duration":1056,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:08:48.365 [info] {"source":"oban","duration":1054,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:09:00.244 [info] {"source":"oban","duration":330,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:09:18.367 [info] {"source":"oban","duration":1054,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:09:48.369 [info] {"source":"oban","duration":1095,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:10:00.245 [info] {"source":"oban","duration":357,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:10:18.371 [info] {"source":"oban","duration":1122,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:10:39.225 [info] GET / 17:10:39.225 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 17:10:39.226 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=871.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:39.227 [debug] QUERY OK source="media_profiles" db=0.1ms idle=872.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 17:10:39.227 [debug] QUERY OK source="sources" db=0.0ms idle=872.8ms SELECT count(s0."id") FROM "sources" AS s0 [] 17:10:39.228 [debug] QUERY OK source="media_items" db=0.7ms idle=873.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 17:10:39.228 [debug] QUERY OK source="media_items" db=0.1ms idle=737.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 17:10:39.229 [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 [] 17:10:39.229 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:39.230 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:39.231 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=2.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 17:10:39.232 [debug] QUERY OK source="media_items" db=0.8ms idle=3.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 17:10:39.234 [debug] QUERY OK source="media_items" db=1.0ms idle=3.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 17:10:39.234 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:10:39.238 [debug] QUERY OK source="media_items" db=1.1ms idle=7.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"))) [] 17:10:39.240 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=7.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 17:10:39.241 [info] Sent 200 in 15ms 17:10:45.057 [info] GET /settings 17:10:45.058 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 17:10:45.058 [debug] QUERY OK source="settings" db=0.2ms idle=704.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:45.060 [debug] QUERY OK source="settings" db=0.9ms idle=705.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:45.060 [debug] QUERY OK source="settings" db=0.1ms idle=706.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:45.061 [debug] QUERY OK source="settings" db=0.1ms idle=706.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:45.062 [info] Sent 200 in 4ms 17:10:48.372 [info] {"source":"oban","duration":925,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:10:49.875 [info] GET /sources/1/media/193 17:10:49.875 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "193", "source_id" => "1"} Pipelines: [:browser] 17:10:49.876 [debug] QUERY OK source="media_items" db=0.2ms idle=1521.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" = ?) [193] 17:10:49.877 [debug] QUERY OK source="sources" db=0.3ms idle=1522.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:10:49.878 [debug] QUERY OK source="tasks" db=0.1ms queue=1.4ms idle=1503.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" [193] 17:10:49.878 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=1366.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" = ?) [197] 17:10:49.879 [debug] QUERY OK source="settings" db=0.2ms idle=366.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:49.879 [debug] QUERY OK source="settings" db=0.2ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:49.880 [debug] QUERY OK source="settings" db=0.1ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:49.881 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:10:49.884 [info] Sent 200 in 8ms 17:10:53.775 [info] GET /sources 17:10:53.776 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 17:10:53.776 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=422.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:53.777 [debug] QUERY OK source="settings" db=0.2ms idle=423.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:53.778 [debug] QUERY OK source="settings" db=0.1ms idle=423.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:53.779 [debug] QUERY OK source="settings" db=0.2ms idle=424.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:53.779 [debug] QUERY OK source="settings" db=0.1ms idle=258.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:53.781 [debug] QUERY OK source="sources" db=1.3ms idle=2.8ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 17:10:53.784 [debug] QUERY OK source="sources" db=2.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", 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] 17:10:53.786 [info] Sent 200 in 10ms 17:10:55.506 [info] GET /sources/1/media/192 17:10:55.506 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "192", "source_id" => "1"} Pipelines: [:browser] 17:10:55.507 [debug] QUERY OK source="media_items" db=0.2ms idle=984.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" = ?) [192] 17:10:55.507 [debug] QUERY OK source="sources" db=0.2ms idle=153.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:10:55.508 [debug] QUERY OK source="tasks" db=1.2ms idle=153.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" [192] 17:10:55.509 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=154.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" = ?) [196] 17:10:55.510 [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 [] 17:10:55.510 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:55.510 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:55.511 [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] 17:10:55.514 [info] Sent 200 in 8ms 17:10:57.064 [info] GET /app_info 17:10:57.064 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 17:10:57.064 [debug] QUERY OK source="settings" db=0.2ms idle=1554.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:57.065 [debug] QUERY OK source="settings" db=0.2ms idle=1554.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:57.066 [debug] QUERY OK source="settings" db=0.2ms idle=1553.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:57.066 [debug] QUERY OK source="settings" db=0.1ms idle=1541.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:57.067 [debug] QUERY OK source="settings" db=0.1ms idle=539.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:57.068 [info] Sent 200 in 4ms 17:10:58.373 [info] GET /media_profiles 17:10:58.373 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 17:10:58.375 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.3ms idle=845.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" [] 17:10:58.375 [debug] QUERY OK source="settings" db=0.1ms idle=21.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:58.376 [debug] QUERY OK source="settings" db=0.8ms idle=21.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:58.377 [debug] QUERY OK source="settings" db=0.1ms idle=22.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:58.378 [info] Sent 200 in 4ms 17:10:59.541 [info] GET /sources/1/media/194 17:10:59.541 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "194", "source_id" => "1"} Pipelines: [:browser] 17:10:59.542 [debug] QUERY OK source="media_items" db=0.3ms idle=1166.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" = ?) [194] 17:10:59.543 [debug] QUERY OK source="tasks" db=0.9ms idle=1166.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" [194] 17:10:59.543 [debug] QUERY OK source="sources" db=1.1ms idle=1165.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:10:59.545 [debug] QUERY OK source="oban_jobs" db=0.9ms idle=1013.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" = ?) [198] 17:10:59.546 [debug] QUERY OK source="settings" db=0.9ms idle=12.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:59.547 [debug] QUERY OK source="settings" db=0.8ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:59.548 [debug] QUERY OK source="settings" db=0.1ms idle=4.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:10:59.549 [debug] QUERY OK source="media_profiles" db=0.1ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:10:59.551 [info] Sent 200 in 10ms 17:11:00.247 [info] {"source":"oban","duration":286,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:11:00.697 [info] GET /sources/1 17:11:00.697 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 17:11:00.698 [debug] QUERY OK source="sources" db=0.4ms 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" = ?) [1] 17:11:00.698 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1150.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] 17:11:00.699 [debug] QUERY OK source="tasks" db=0.2ms idle=1149.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 17:11:00.699 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=452.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" = ?) [254] 17:11:00.700 [debug] QUERY OK source="settings" db=0.1ms 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 [] 17:11:00.700 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:00.701 [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 [] 17:11:00.703 [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] 17:11:00.704 [debug] QUERY OK source="media_items" db=0.6ms idle=3.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 17:11:00.705 [debug] QUERY OK source="media_items" db=0.8ms idle=4.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 ? [1, 10, 0] 17:11:00.706 [debug] QUERY OK source="sources" db=0.9ms 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" = ?) [1] 17:11:00.707 [debug] QUERY OK source="media_items" db=0.2ms idle=5.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 17:11:00.707 [debug] QUERY OK source="media_items" db=0.4ms idle=4.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 17:11:00.709 [debug] QUERY OK source="sources" db=0.1ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:11:00.710 [debug] QUERY OK source="media_items" db=0.5ms 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 ((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] 17:11:00.711 [debug] QUERY OK source="media_items" db=1.3ms idle=3.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 17:11:00.714 [info] Sent 200 in 16ms 17:11:02.577 [info] GET /sources/1/media/195 17:11:02.577 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "195", "source_id" => "1"} Pipelines: [:browser] 17:11:02.578 [debug] QUERY OK source="media_items" db=0.3ms idle=224.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" = ?) [195] 17:11:02.578 [debug] QUERY OK source="tasks" db=0.2ms idle=224.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" [195] 17:11:02.579 [debug] QUERY OK source="sources" db=0.3ms idle=224.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:02.579 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=225.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" = ?) [199] 17:11:02.580 [debug] QUERY OK source="settings" db=0.1ms idle=40.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:02.580 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:02.581 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:02.582 [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] 17:11:02.584 [info] Sent 200 in 6ms 17:11:03.480 [info] GET /sources/1/media/191 17:11:03.481 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "191", "source_id" => "1"} Pipelines: [:browser] 17:11:03.482 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=901.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" = ?) [191] 17:11:03.482 [debug] QUERY OK source="tasks" db=0.2ms idle=902.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" [191] 17:11:03.483 [debug] QUERY OK source="sources" db=1.0ms idle=902.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:03.484 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=902.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" = ?) [195] 17:11:03.484 [debug] QUERY OK source="settings" db=0.1ms idle=902.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:03.484 [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 [] 17:11:03.485 [debug] QUERY OK source="settings" db=0.2ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:03.486 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:11:03.489 [info] Sent 200 in 8ms 17:11:04.990 [info] GET /sources/1/media/193/force_download 17:11:04.991 [debug] QUERY OK source="settings" db=0.3ms idle=1506.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:04.992 [debug] QUERY OK source="settings" db=0.3ms idle=1506.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:04.992 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:11:04.992 [error] #PID<0.3698.0> running PinchflatWeb.Endpoint (connection #PID<0.3697.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/193/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/193/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3697.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/193/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 48964}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/193", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3698.0>, params: %{}, path_info: ["sources", "1", "media", "193", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/193"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/193/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFCS_m5t3mli4AAC2i"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3697.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/193/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 48964}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/193", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/193/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3697.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/193/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 48964}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/193", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assi (truncated) 17:11:05.670 [info] GET /sources/1/media/193/edit 17:11:05.670 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "193", "source_id" => "1"} Pipelines: [:browser] 17:11:05.671 [debug] QUERY OK source="media_items" db=0.3ms idle=678.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" = ?) [193] 17:11:05.671 [debug] QUERY OK source="settings" db=0.2ms idle=679.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:05.672 [debug] QUERY OK source="settings" db=0.2ms idle=318.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:05.673 [debug] QUERY OK source="settings" db=0.2ms idle=318.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:05.674 [info] Sent 200 in 4ms 17:11:07.747 [info] GET /media_profiles/1 17:11:07.747 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 17:11:07.748 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.3ms idle=393.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:11:07.749 [debug] QUERY OK source="sources" db=0.3ms queue=0.3ms idle=394.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."media_profile_id" = ?) ORDER BY s0."custom_name" [1] 17:11:07.750 [debug] QUERY OK source="settings" db=0.1ms idle=395.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:07.750 [debug] QUERY OK source="settings" db=0.1ms idle=395.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:07.751 [debug] QUERY OK source="settings" db=0.1ms idle=201.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:07.753 [info] Sent 200 in 5ms 17:11:09.451 [info] GET /sources/new 17:11:09.451 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 17:11:09.452 [debug] QUERY OK source="media_profiles" db=0.3ms idle=900.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" [] 17:11:09.453 [debug] QUERY OK source="settings" db=0.3ms idle=98.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:09.453 [debug] QUERY OK source="settings" db=0.1ms idle=99.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:09.454 [debug] QUERY OK source="settings" db=0.1ms idle=99.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:09.454 [debug] QUERY OK source="settings" db=0.2ms idle=100.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:09.455 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:09.459 [info] Sent 200 in 7ms 17:11:10.916 [info] GET /download_logs 17:11:10.916 [debug] Processing with PinchflatWeb.Settings.SettingController.download_logs/2 Parameters: %{} Pipelines: [:browser] 17:11:10.917 [info] Sent 200 in 546µs 17:11:15.793 [info] GET /media_profiles/1/ 17:11:15.793 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 17:11:15.794 [debug] QUERY OK source="media_profiles" db=0.3ms idle=440.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:11:15.795 [debug] QUERY OK source="sources" db=0.3ms idle=440.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."media_profile_id" = ?) ORDER BY s0."custom_name" [1] 17:11:15.795 [debug] QUERY OK source="settings" db=0.3ms idle=441.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:15.796 [debug] QUERY OK source="settings" db=0.2ms idle=441.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:15.796 [debug] QUERY OK source="settings" db=0.1ms idle=230.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:15.798 [info] Sent 200 in 5ms 17:11:17.051 [info] GET /media_profiles/new 17:11:17.051 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.new/2 Parameters: %{} Pipelines: [:browser] 17:11:17.052 [debug] QUERY OK source="settings" db=0.3ms idle=1256.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:17.052 [debug] QUERY OK source="settings" db=0.1ms idle=1256.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:17.053 [debug] QUERY OK source="settings" db=0.1ms idle=1256.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:17.053 [debug] QUERY OK source="settings" db=0.1ms idle=1256.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:17.054 [debug] QUERY OK source="settings" db=0.1ms idle=486.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:17.056 [info] Sent 200 in 4ms 17:11:18.147 [info] GET /sources/1/media/1 17:11:18.147 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1", "source_id" => "1"} Pipelines: [:browser] 17:11:18.149 [debug] QUERY OK source="media_items" db=1.0ms idle=1095.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" = ?) [1] 17:11:18.150 [debug] QUERY OK source="sources" db=0.2ms idle=1096.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:18.150 [debug] QUERY OK source="tasks" db=0.7ms idle=1096.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" [1] 17:11:18.150 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1096.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" = ?) [5] 17:11:18.151 [debug] QUERY OK source="settings" db=0.1ms idle=580.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:18.151 [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 [] 17:11:18.152 [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 [] 17:11:18.153 [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] 17:11:18.156 [info] Sent 200 in 8ms 17:11:18.375 [info] {"source":"oban","duration":1549,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:11:19.136 [info] GET /sources/1/media/205 17:11:19.137 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "205", "source_id" => "1"} Pipelines: [:browser] 17:11:19.137 [debug] QUERY OK source="media_items" db=0.2ms idle=985.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" = ?) [205] 17:11:19.138 [debug] QUERY OK source="tasks" db=0.4ms idle=985.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" [205] 17:11:19.138 [debug] QUERY OK source="sources" db=0.4ms idle=984.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:19.139 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=763.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" = ?) [209] 17:11:19.139 [debug] QUERY OK source="settings" db=0.1ms idle=567.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:19.139 [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 [] 17:11:19.140 [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 [] 17:11:19.141 [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] 17:11:19.143 [info] Sent 200 in 6ms 17:11:20.080 [info] GET /sources/1/media/204 17:11:20.080 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "204", "source_id" => "1"} Pipelines: [:browser] 17:11:20.081 [debug] QUERY OK source="media_items" db=0.3ms idle=941.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" = ?) [204] 17:11:20.082 [debug] QUERY OK source="tasks" db=0.2ms idle=941.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" [204] 17:11:20.082 [debug] QUERY OK source="sources" db=0.3ms idle=941.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:20.082 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=941.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" = ?) [208] 17:11:20.083 [debug] QUERY OK source="settings" db=0.1ms idle=508.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:20.083 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:20.084 [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 [] 17:11:20.085 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:11:20.087 [info] Sent 200 in 6ms 17:11:20.848 [info] GET /sources/1/media/203 17:11:20.849 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "203", "source_id" => "1"} Pipelines: [:browser] 17:11:20.849 [debug] QUERY OK source="media_items" db=0.3ms idle=766.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" = ?) [203] 17:11:20.850 [debug] QUERY OK source="sources" db=0.3ms idle=766.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:20.851 [debug] QUERY OK source="tasks" db=0.8ms idle=766.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" [203] 17:11:20.851 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=766.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" = ?) [207] 17:11:20.852 [debug] QUERY OK source="settings" db=0.1ms idle=275.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:20.852 [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 [] 17:11:20.853 [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 [] 17:11:20.853 [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] 17:11:20.856 [info] Sent 200 in 7ms 17:11:21.589 [info] GET /sources/1/media/189 17:11:21.589 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "189", "source_id" => "1"} Pipelines: [:browser] 17:11:21.590 [debug] QUERY OK source="media_items" db=0.2ms idle=737.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" = ?) [189] 17:11:21.590 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=738.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" [189] 17:11:21.591 [debug] QUERY OK source="sources" db=0.5ms idle=737.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:21.591 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=737.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" = ?) [193] 17:11:21.592 [debug] QUERY OK source="settings" db=0.2ms idle=13.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:21.592 [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 [] 17:11:21.593 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:21.594 [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] 17:11:21.596 [info] Sent 200 in 7ms 17:11:22.234 [info] GET /sources/1/media/201 17:11:22.234 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "201", "source_id" => "1"} Pipelines: [:browser] 17:11:22.235 [debug] QUERY OK source="media_items" db=0.2ms idle=643.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" = ?) [201] 17:11:22.235 [debug] QUERY OK source="tasks" db=0.3ms idle=643.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" [201] 17:11:22.236 [debug] QUERY OK source="sources" db=0.4ms idle=643.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:22.236 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=643.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" = ?) [205] 17:11:22.237 [debug] QUERY OK source="settings" db=0.1ms idle=642.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:22.237 [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 [] 17:11:22.237 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:22.239 [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] 17:11:22.241 [info] Sent 200 in 6ms 17:11:22.838 [info] GET /sources/1/media/200 17:11:22.839 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "200", "source_id" => "1"} Pipelines: [:browser] 17:11:22.839 [debug] QUERY OK source="media_items" db=0.3ms idle=602.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" = ?) [200] 17:11:22.840 [debug] QUERY OK source="tasks" db=0.2ms idle=602.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" [200] 17:11:22.840 [debug] QUERY OK source="sources" db=0.5ms idle=602.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:22.841 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=602.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" = ?) [204] 17:11:22.842 [debug] QUERY OK source="settings" db=0.5ms idle=262.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:22.843 [debug] QUERY OK source="settings" db=0.3ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:22.844 [debug] QUERY OK source="settings" db=0.3ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:22.846 [debug] QUERY OK source="media_profiles" db=0.8ms queue=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] 17:11:22.848 [info] Sent 200 in 9ms 17:11:23.400 [info] GET /sources/1/media/197 17:11:23.400 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "197", "source_id" => "1"} Pipelines: [:browser] 17:11:23.401 [debug] QUERY OK source="media_items" db=0.9ms idle=559.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" = ?) [197] 17:11:23.402 [debug] QUERY OK source="tasks" db=0.2ms idle=559.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" [197] 17:11:23.402 [debug] QUERY OK source="sources" db=0.4ms idle=559.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:11:23.403 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=558.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" = ?) [201] 17:11:23.403 [debug] QUERY OK source="settings" db=0.1ms idle=557.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:23.404 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:23.404 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:23.405 [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] 17:11:23.407 [info] Sent 200 in 7ms 17:11:23.903 [info] GET /sources/1/media/198 17:11:23.904 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "198", "source_id" => "1"} Pipelines: [:browser] 17:11:23.904 [debug] QUERY OK source="media_items" db=0.2ms idle=500.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" = ?) [198] 17:11:23.905 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=500.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" [198] 17:11:23.905 [debug] QUERY OK source="sources" db=0.4ms idle=500.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:23.906 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=500.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" = ?) [202] 17:11:23.906 [debug] QUERY OK source="settings" db=0.1ms idle=324.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:23.906 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:23.907 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:23.908 [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] 17:11:23.910 [info] Sent 200 in 6ms 17:11:24.433 [info] GET /sources/1/media/196 17:11:24.434 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "196", "source_id" => "1"} Pipelines: [:browser] 17:11:24.435 [debug] QUERY OK source="media_items" db=0.9ms idle=528.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" = ?) [196] 17:11:24.436 [debug] QUERY OK source="tasks" db=0.2ms idle=529.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" [196] 17:11:24.436 [debug] QUERY OK source="sources" db=0.3ms idle=528.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:24.436 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=529.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" = ?) [200] 17:11:24.437 [debug] QUERY OK source="settings" db=0.1ms idle=528.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:24.437 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:24.438 [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 [] 17:11:24.439 [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] 17:11:24.441 [info] Sent 200 in 7ms 17:11:24.931 [info] GET /sources/1/media/202 17:11:24.931 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "202", "source_id" => "1"} Pipelines: [:browser] 17:11:24.932 [debug] QUERY OK source="media_items" db=0.3ms idle=495.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" = ?) [202] 17:11:24.933 [debug] QUERY OK source="tasks" db=0.1ms idle=495.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" [202] 17:11:24.933 [debug] QUERY OK source="sources" db=0.3ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:11:24.933 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=494.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" = ?) [206] 17:11:24.934 [debug] QUERY OK source="settings" db=0.1ms idle=350.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:24.935 [debug] QUERY OK source="settings" db=0.1ms queue=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 [] 17:11:24.935 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:24.936 [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] 17:11:24.938 [info] Sent 200 in 7ms 17:11:25.459 [info] GET /sources/1/media/190 17:11:25.459 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "190", "source_id" => "1"} Pipelines: [:browser] 17:11:25.460 [debug] QUERY OK source="media_items" db=0.2ms idle=525.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" = ?) [190] 17:11:25.460 [debug] QUERY OK source="tasks" db=0.2ms idle=525.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" [190] 17:11:25.460 [debug] QUERY OK source="sources" db=0.4ms idle=525.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:25.461 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=525.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" = ?) [194] 17:11:25.461 [debug] QUERY OK source="settings" db=0.2ms idle=524.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:25.462 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:25.462 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:25.463 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:11:25.466 [info] Sent 200 in 7ms 17:11:25.960 [info] GET /sources/1/media/199 17:11:25.960 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "199", "source_id" => "1"} Pipelines: [:browser] 17:11:25.961 [debug] QUERY OK source="media_items" db=0.2ms idle=499.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" = ?) [199] 17:11:25.962 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=499.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" [199] 17:11:25.962 [debug] QUERY OK source="sources" db=0.5ms idle=498.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:11:25.962 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=498.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" = ?) [203] 17:11:25.964 [debug] QUERY OK source="settings" db=0.8ms idle=377.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:25.965 [debug] QUERY OK source="settings" db=0.7ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:25.965 [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 [] 17:11:25.966 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:11:25.969 [info] Sent 200 in 8ms 17:11:26.471 [info] GET /sources/1/ 17:11:26.471 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 17:11:26.472 [debug] QUERY OK source="sources" db=0.3ms idle=509.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:11:26.472 [debug] QUERY OK source="media_profiles" db=0.2ms idle=508.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] 17:11:26.477 [debug] QUERY OK source="tasks" db=4.2ms idle=508.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"] 17:11:26.477 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=511.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" = ?) [254] 17:11:26.478 [debug] QUERY OK source="settings" db=0.1ms idle=511.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:26.478 [debug] QUERY OK source="settings" db=0.1ms idle=6.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:26.479 [debug] QUERY OK source="settings" db=0.1ms idle=6.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:26.481 [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] 17:11:26.482 [debug] QUERY OK source="media_items" db=0.6ms idle=3.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 17:11:26.483 [debug] QUERY OK source="media_items" db=0.9ms idle=4.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] 17:11:26.484 [debug] QUERY OK source="sources" db=0.1ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:11:26.484 [debug] QUERY OK source="media_items" db=0.2ms idle=4.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 17:11:26.485 [debug] QUERY OK source="media_items" db=0.3ms idle=3.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 17:11:26.486 [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] 17:11:26.487 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=3.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 17:11:26.488 [debug] QUERY OK source="media_items" db=0.8ms idle=3.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 17:11:26.490 [info] Sent 200 in 19ms 17:11:26.986 [info] GET /sources/1/edit 17:11:26.986 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 17:11:26.987 [debug] QUERY OK source="sources" db=0.4ms idle=502.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:11:26.988 [debug] QUERY OK source="media_profiles" db=0.2ms idle=501.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" [] 17:11:26.988 [debug] QUERY OK source="settings" db=0.1ms idle=500.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:26.989 [debug] QUERY OK source="settings" db=0.1ms idle=500.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:26.989 [debug] QUERY OK source="settings" db=0.1ms idle=401.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:26.993 [info] Sent 200 in 7ms 17:11:27.508 [info] GET /sources/1/media/203/force_download 17:11:27.509 [debug] QUERY OK source="settings" db=0.2ms idle=521.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:27.509 [debug] QUERY OK source="settings" db=0.2ms idle=521.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:27.510 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:11:27.510 [error] #PID<0.3783.0> running PinchflatWeb.Endpoint (connection #PID<0.3782.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/203/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/203/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3782.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/203/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49060}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/203", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3783.0>, params: %{}, path_info: ["sources", "1", "media", "203", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/203"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/203/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFDm4SEnHMKioAADHC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3782.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/203/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49060}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/203", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/203/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3782.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/203/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49060}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/203", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assi (truncated) 17:11:28.022 [info] GET /sources/1/media/204/force_download 17:11:28.023 [debug] QUERY OK source="settings" db=1.0ms idle=1033.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:28.024 [debug] QUERY OK source="settings" db=0.1ms idle=1034.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:28.024 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:11:28.024 [error] #PID<0.3785.0> running PinchflatWeb.Endpoint (connection #PID<0.3784.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/204/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/204/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3784.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/204/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49064}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/204", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3785.0>, params: %{}, path_info: ["sources", "1", "media", "204", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/204"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/204/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFDoyv4EeYDRkAADYB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3784.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/204/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49064}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/204", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/204/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3784.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/204/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49064}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/204", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assi (truncated) 17:11:29.590 [info] GET /sources/1/media/205/force_download 17:11:29.590 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=998.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:29.591 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=236.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:29.591 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:11:29.592 [error] #PID<0.3787.0> running PinchflatWeb.Endpoint (connection #PID<0.3786.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/205/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/205/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3786.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/205/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49068}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/205", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3787.0>, params: %{}, path_info: ["sources", "1", "media", "205", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/205"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/205/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFDuogIxnXeh4AADYh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3786.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/205/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49068}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/205", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/205/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3786.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/205/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49068}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/205", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assi (truncated) 17:11:34.121 [info] GET /sources/1/media/195/force_download 17:11:34.122 [debug] QUERY OK source="settings" db=0.6ms idle=767.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:34.122 [debug] QUERY OK source="settings" db=0.2ms idle=767.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:34.122 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:11:34.123 [error] #PID<0.3789.0> running PinchflatWeb.Endpoint (connection #PID<0.3788.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/195/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/195/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3788.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/195/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49072}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/195", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3789.0>, params: %{}, path_info: ["sources", "1", "media", "195", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/195"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/195/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFD_gw9F4ikt0AADHi"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3788.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/195/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49072}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/195", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/195/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3788.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/195/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49072}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/195", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assi (truncated) 17:11:47.702 [info] GET /sources/1/media/200/force_download 17:11:47.703 [debug] QUERY OK source="settings" db=0.2ms idle=349.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:47.703 [debug] QUERY OK source="settings" db=0.2ms idle=349.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:11:47.704 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:11:47.704 [error] #PID<0.3791.0> running PinchflatWeb.Endpoint (connection #PID<0.3790.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/200/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/200/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3790.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/200/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49080}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/200", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3791.0>, params: %{}, path_info: ["sources", "1", "media", "200", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/200"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/200/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFEyG5Sgn7yEcAADZB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3790.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/200/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49080}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/200", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/200/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3790.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/200/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49080}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/200", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assi (truncated) 17:11:48.376 [info] {"source":"oban","duration":926,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:12:00.248 [info] {"source":"oban","duration":331,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:12:18.378 [info] {"source":"oban","duration":883,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:12:29.088 [info] GET /sources/1/media/192/force_download 17:12:29.088 [debug] QUERY OK source="settings" db=0.3ms idle=1734.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:12:29.089 [debug] QUERY OK source="settings" db=0.1ms idle=1734.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:12:29.089 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:12:29.090 [error] #PID<0.3797.0> running PinchflatWeb.Endpoint (connection #PID<0.3796.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/192/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/192/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3796.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/192/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49096}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/192", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3797.0>, params: %{}, path_info: ["sources", "1", "media", "192", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/192"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/192/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFHMR7tyOtJIIAADJC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3796.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/192/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49096}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/192", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/192/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3796.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/192/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49096}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/192", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assi (truncated) 17:12:48.380 [info] {"source":"oban","duration":980,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:13:00.249 [info] {"source":"oban","duration":389,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:13:18.383 [info] {"source":"oban","duration":1292,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:13:34.680 [info] GET /sources/1/media/202/force_download 17:13:34.682 [debug] QUERY OK source="settings" db=0.9ms idle=838.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:13:34.683 [debug] QUERY OK source="settings" db=0.8ms idle=328.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:13:34.683 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:13:34.684 [error] #PID<0.3804.0> running PinchflatWeb.Endpoint (connection #PID<0.3803.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/202/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/202/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3803.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/202/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49120}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/202", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3804.0>, params: %{}, path_info: ["sources", "1", "media", "202", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/202"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/202/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFLAocsnUVaRsAADZh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3803.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/202/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49120}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/202", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/202/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3803.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/202/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49120}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/202", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assi (truncated) 17:13:48.385 [info] {"source":"oban","duration":1066,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:14:00.250 [info] {"source":"oban","duration":421,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:14:18.386 [info] {"source":"oban","duration":929,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:14:37.309 [info] GET /sources/1/media/190/force_download 17:14:37.310 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=956.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:14:37.311 [debug] QUERY OK source="settings" db=0.8ms idle=956.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:14:37.311 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:14:37.312 [error] #PID<0.3810.0> running PinchflatWeb.Endpoint (connection #PID<0.3809.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/190/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/190/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3809.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/190/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49140}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/190", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3810.0>, params: %{}, path_info: ["sources", "1", "media", "190", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/190"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/190/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFOp8XriGfxOUAADbB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3809.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/190/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49140}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/190", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/190/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3809.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/190/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49140}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYbFVlR1pxVWJQYkQwU3NvcG93aEJEYXlN.buM3Fle9BH53ObdbiCowoIpquDWxva5dpKkGaqX988E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/190", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assi (truncated) 17:14:48.388 [info] {"source":"oban","duration":928,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:15:00.251 [info] {"source":"oban","duration":397,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:15:18.391 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:15:42.190 [info] GET /sources/1/media/191/force_download 17:15:42.191 [debug] QUERY OK source="settings" db=0.2ms idle=1837.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:15:42.191 [debug] QUERY OK source="settings" db=0.1ms idle=1837.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:15:42.192 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:15:42.192 [error] #PID<0.3817.0> running PinchflatWeb.Endpoint (connection #PID<0.3816.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/191/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/191/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3816.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/191/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49250}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/191", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3817.0>, params: %{}, path_info: ["sources", "1", "media", "191", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/191"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/191/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFSbpNVfQBfLMAADch"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3816.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/191/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49250}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/191", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/191/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3816.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/191/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49250}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/191", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3817.0>, params: %{}, path_info: ["sources", "1", "media", "191", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ (truncated) 17:15:48.393 [info] {"source":"oban","duration":1084,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:16:00.252 [info] {"source":"oban","duration":384,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:16:18.395 [info] {"source":"oban","duration":1059,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:16:46.458 [info] GET /sources/1/media/194/force_download 17:16:46.459 [debug] QUERY OK source="settings" db=0.2ms idle=1105.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:16:46.460 [debug] QUERY OK source="settings" db=0.1ms idle=230.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:16:46.460 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:16:46.460 [error] #PID<0.3824.0> running PinchflatWeb.Endpoint (connection #PID<0.3823.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/194/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/194/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3823.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/194/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49302}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/194", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3824.0>, params: %{}, path_info: ["sources", "1", "media", "194", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/194"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/194/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFWLD6VkRXRt4AADKi"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3823.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/194/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49302}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/194", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/194/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3823.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/194/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49302}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/194", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3824.0>, params: %{}, path_info: ["sources", "1", "media", "194", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ (truncated) 17:16:48.396 [info] {"source":"oban","duration":1037,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:17:00.253 [info] {"source":"oban","duration":229,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:17:18.398 [info] {"source":"oban","duration":947,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:17:48.401 [info] {"source":"oban","duration":1337,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:17:49.592 [info] GET /sources/1/media/199/force_download 17:17:49.593 [debug] QUERY OK source="settings" db=0.3ms idle=1238.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:17:49.593 [debug] QUERY OK source="settings" db=0.1ms idle=1239.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:17:49.593 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:17:49.594 [error] #PID<0.3830.0> running PinchflatWeb.Endpoint (connection #PID<0.3829.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/199/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/199/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3829.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/199/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49408}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/199", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3830.0>, params: %{}, path_info: ["sources", "1", "media", "199", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/199"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/199/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFZ2QImRB5ATAAADMC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3829.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/199/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49408}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/199", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/199/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3829.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/199/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49408}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/199", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3830.0>, params: %{}, path_info: ["sources", "1", "media", "199", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ (truncated) 17:18:00.254 [info] {"source":"oban","duration":507,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:18:18.403 [info] {"source":"oban","duration":1377,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:18:48.405 [info] {"source":"oban","duration":1076,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:18:51.874 [info] GET /sources/1/media/189/force_download 17:18:51.875 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=1521.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:18:51.876 [debug] QUERY OK source="settings" db=0.2ms idle=1521.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:18:51.876 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:18:51.877 [error] #PID<0.3837.0> running PinchflatWeb.Endpoint (connection #PID<0.3836.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/189/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/189/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3836.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/189/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49476}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/189", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3837.0>, params: %{}, path_info: ["sources", "1", "media", "189", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/189"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/189/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFdeRcgRETeLcAADeh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3836.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/189/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49476}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/189", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/189/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3836.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/189/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49476}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/189", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3837.0>, params: %{}, path_info: ["sources", "1", "media", "189", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ (truncated) 17:19:00.256 [info] {"source":"oban","duration":281,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:19:18.406 [info] {"source":"oban","duration":930,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:19:48.409 [info] {"source":"oban","duration":1003,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:19:52.278 [info] GET /sources/1/media/196/force_download 17:19:52.278 [debug] QUERY OK source="settings" db=0.2ms idle=1924.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:19:52.279 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=1679.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:19:52.279 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:19:52.279 [error] #PID<0.3843.0> running PinchflatWeb.Endpoint (connection #PID<0.3842.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/196/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/196/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3842.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/196/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49540}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/196", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3843.0>, params: %{}, path_info: ["sources", "1", "media", "196", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/196"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/196/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFg_SrEgjUqooAADgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3842.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/196/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49540}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/196", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/196/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3842.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/196/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49540}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/196", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3843.0>, params: %{}, path_info: ["sources", "1", "media", "196", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ (truncated) 17:20:00.258 [info] {"source":"oban","duration":317,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:20:18.410 [info] {"source":"oban","duration":927,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:20:48.413 [info] {"source":"oban","duration":1056,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:20:55.124 [info] GET /sources/1/media/201/force_download 17:20:55.125 [debug] QUERY OK source="settings" db=0.2ms idle=1770.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:20:55.125 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=1399.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:20:55.125 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:20:55.126 [error] #PID<0.3850.0> running PinchflatWeb.Endpoint (connection #PID<0.3849.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/201/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/201/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3849.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/201/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49562}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/201", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3850.0>, params: %{}, path_info: ["sources", "1", "media", "201", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/201"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/201/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFkpaWnvckkwcAADNC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3849.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/201/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49562}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/201", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/201/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3849.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/201/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49562}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/201", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3850.0>, params: %{}, path_info: ["sources", "1", "media", "201", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ (truncated) 17:21:00.259 [info] {"source":"oban","duration":369,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:21:18.414 [info] {"source":"oban","duration":950,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:21:48.417 [info] {"source":"oban","duration":994,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:21:58.113 [info] GET /sources/1/media/197/force_download 17:21:58.113 [debug] QUERY OK source="settings" db=0.2ms idle=1759.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:21:58.114 [debug] QUERY OK source="settings" db=0.1ms idle=1759.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:21:58.114 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:21:58.114 [error] #PID<0.3856.0> running PinchflatWeb.Endpoint (connection #PID<0.3855.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/197/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/197/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3855.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/197/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49586}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/197", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3856.0>, params: %{}, path_info: ["sources", "1", "media", "197", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/197"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/197/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFoUEEfnMYqsUAADih"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3855.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/197/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49586}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/197", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/197/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3855.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/197/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49586}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/197", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3856.0>, params: %{}, path_info: ["sources", "1", "media", "197", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ (truncated) 17:22:00.260 [info] {"source":"oban","duration":381,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:22:18.419 [info] {"source":"oban","duration":974,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:22:48.420 [info] {"source":"oban","duration":897,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:23:00.261 [info] {"source":"oban","duration":384,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:23:02.343 [info] GET /sources/1/media/198/force_download 17:23:02.344 [debug] QUERY OK source="settings" db=0.2ms idle=1989.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:23:02.344 [debug] QUERY OK source="settings" db=0.1ms idle=1363.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:23:02.345 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:23:02.345 [error] #PID<0.3863.0> running PinchflatWeb.Endpoint (connection #PID<0.3862.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/198/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/198/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3862.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/198/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49608}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/198", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3863.0>, params: %{}, path_info: ["sources", "1", "media", "198", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/198"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/198/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkFsDV3d4ldrewAADkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3862.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/198/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49608}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/198", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/198/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3862.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/198/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49608}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/198", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3863.0>, params: %{}, path_info: ["sources", "1", "media", "198", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ (truncated) 17:23:18.423 [info] {"source":"oban","duration":1076,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:23:48.425 [info] {"source":"oban","duration":1163,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:24:00.262 [info] {"source":"oban","duration":448,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:24:05.389 [info] GET /media_profiles/1/edit 17:24:05.390 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 17:24:05.390 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1036.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:24:05.391 [debug] QUERY OK source="settings" db=0.1ms idle=280.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:24:05.391 [debug] QUERY OK source="settings" db=0.1ms idle=37.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:24:05.392 [debug] QUERY OK source="settings" db=0.1ms idle=37.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:24:05.394 [info] Sent 200 in 4ms 17:24:18.427 [info] {"source":"oban","duration":1086,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:24:48.429 [info] {"source":"oban","duration":1099,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:25:00.263 [info] {"source":"oban","duration":239,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:25:06.859 [info] GET /sources/1/media/3 17:25:06.859 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "3", "source_id" => "1"} Pipelines: [:browser] 17:25:06.860 [debug] QUERY OK source="media_items" db=0.3ms idle=1506.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" = ?) [3] 17:25:06.861 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=1506.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" [3] 17:25:06.862 [debug] QUERY OK source="sources" db=1.3ms idle=1506.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:25:06.862 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=630.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" = ?) [7] 17:25:06.863 [debug] QUERY OK source="settings" db=0.2ms idle=509.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:25:06.863 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:25:06.864 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:25:06.865 [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] 17:25:06.868 [info] Sent 200 in 8ms 17:25:18.431 [info] {"source":"oban","duration":980,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:25:48.433 [info] {"source":"oban","duration":987,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:26:00.264 [info] {"source":"oban","duration":339,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:26:06.051 [info] GET /sources/1/media/2 17:26:06.051 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2", "source_id" => "1"} Pipelines: [:browser] 17:26:06.052 [debug] QUERY OK source="media_items" db=0.3ms idle=1697.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" = ?) [2] 17:26:06.053 [debug] QUERY OK source="tasks" db=0.8ms idle=1698.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" [2] 17:26:06.054 [debug] QUERY OK source="sources" db=1.0ms idle=1698.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:26:06.055 [debug] QUERY OK source="oban_jobs" db=0.8ms idle=704.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" = ?) [6] 17:26:06.055 [debug] QUERY OK source="settings" db=0.1ms idle=701.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:26:06.056 [debug] QUERY OK source="settings" db=0.1ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:26:06.056 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:26:06.057 [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] 17:26:06.060 [info] Sent 200 in 8ms 17:26:18.434 [info] {"source":"oban","duration":897,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:26:48.436 [info] {"source":"oban","duration":985,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:26:59.243 [info] GET /sources/1/media/194/edit 17:26:59.244 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "194", "source_id" => "1"} Pipelines: [:browser] 17:26:59.244 [debug] QUERY OK source="media_items" db=0.3ms idle=1889.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" = ?) [194] 17:26:59.246 [debug] QUERY OK source="settings" db=0.8ms idle=1789.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:26:59.246 [debug] QUERY OK source="settings" db=0.1ms idle=891.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:26:59.247 [debug] QUERY OK source="settings" db=0.3ms idle=892.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:26:59.248 [info] Sent 200 in 4ms 17:27:00.265 [info] {"source":"oban","duration":356,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:27:18.439 [info] {"source":"oban","duration":1258,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:27:44.840 [info] GET /sources/1/media/198/edit 17:27:44.840 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "198", "source_id" => "1"} Pipelines: [:browser] 17:27:44.842 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=486.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" = ?) [198] 17:27:44.842 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=488.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:27:44.843 [debug] QUERY OK source="settings" db=0.1ms idle=488.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:27:44.843 [debug] QUERY OK source="settings" db=0.1ms idle=489.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:27:44.845 [info] Sent 200 in 5ms 17:27:48.440 [info] {"source":"oban","duration":998,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:28:00.266 [info] {"source":"oban","duration":314,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:28:18.443 [info] {"source":"oban","duration":1062,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:28:26.585 [info] GET /sources/1/media/201/edit 17:28:26.585 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "201", "source_id" => "1"} Pipelines: [:browser] 17:28:26.586 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=953.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" = ?) [201] 17:28:26.587 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=232.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:28:26.587 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=232.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:28:26.588 [debug] QUERY OK source="settings" db=0.1ms idle=233.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:28:26.589 [info] Sent 200 in 4ms 17:28:48.445 [info] {"source":"oban","duration":1157,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:29:00.267 [info] {"source":"oban","duration":475,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:29:02.087 [info] GET /sources/1/media/197/edit 17:29:02.088 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "197", "source_id" => "1"} Pipelines: [:browser] 17:29:02.088 [debug] QUERY OK source="media_items" db=0.2ms idle=1734.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" = ?) [197] 17:29:02.089 [debug] QUERY OK source="settings" db=0.1ms idle=1735.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:29:02.089 [debug] QUERY OK source="settings" db=0.2ms idle=1387.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:29:02.090 [debug] QUERY OK source="settings" db=0.1ms idle=736.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:29:02.092 [info] Sent 200 in 4ms 17:29:18.446 [info] {"source":"oban","duration":994,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:29:35.372 [info] GET /sources/1/media/195/edit 17:29:35.373 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "195", "source_id" => "1"} Pipelines: [:browser] 17:29:35.373 [debug] QUERY OK source="media_items" db=0.3ms idle=1019.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" = ?) [195] 17:29:35.374 [debug] QUERY OK source="settings" db=0.2ms idle=603.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:29:35.374 [debug] QUERY OK source="settings" db=0.1ms 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 [] 17:29:35.375 [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 [] 17:29:35.376 [info] Sent 200 in 4ms 17:29:48.449 [info] {"source":"oban","duration":1128,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:30:00.269 [info] {"source":"oban","duration":281,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:30:05.814 [info] GET /sources/1/media/192/edit 17:30:05.815 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "192", "source_id" => "1"} Pipelines: [:browser] 17:30:05.815 [debug] QUERY OK source="media_items" db=0.3ms idle=984.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" = ?) [192] 17:30:05.816 [debug] QUERY OK source="settings" db=0.2ms idle=461.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:30:05.816 [debug] QUERY OK source="settings" db=0.1ms idle=462.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:30:05.817 [debug] QUERY OK source="settings" db=0.1ms idle=463.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:30:05.819 [info] Sent 200 in 4ms 17:30:18.450 [info] {"source":"oban","duration":994,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:30:33.762 [info] GET /sources/1/media/189/edit 17:30:33.762 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "189", "source_id" => "1"} Pipelines: [:browser] 17:30:33.763 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=1408.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" = ?) [189] 17:30:33.764 [debug] QUERY OK source="settings" db=0.2ms idle=876.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:30:33.764 [debug] QUERY OK source="settings" db=0.1ms idle=410.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:30:33.765 [debug] QUERY OK source="settings" db=0.1ms idle=410.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:30:33.766 [info] Sent 200 in 4ms 17:30:48.453 [info] {"source":"oban","duration":1289,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:30:57.715 [info] GET /sources/1/media/190/edit 17:30:57.715 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "190", "source_id" => "1"} Pipelines: [:browser] 17:30:57.717 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=1362.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" = ?) [190] 17:30:57.718 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=782.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:30:57.719 [debug] QUERY OK source="settings" db=0.1ms idle=364.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:30:57.719 [debug] QUERY OK source="settings" db=0.1ms idle=365.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:30:57.721 [info] Sent 200 in 5ms 17:31:00.271 [info] {"source":"oban","duration":472,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:31:18.455 [info] {"source":"oban","duration":1120,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:31:19.385 [info] GET /sources/1/media/199/edit 17:31:19.385 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "199", "source_id" => "1"} Pipelines: [:browser] 17:31:19.387 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=931.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" = ?) [199] 17:31:19.387 [debug] QUERY OK source="settings" db=0.1ms idle=408.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:31:19.388 [debug] QUERY OK source="settings" db=0.1ms idle=33.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:31:19.388 [debug] QUERY OK source="settings" db=0.1ms idle=34.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:31:19.390 [info] Sent 200 in 4ms 17:31:38.720 [info] GET /sources/1/media/196/edit 17:31:38.720 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "196", "source_id" => "1"} Pipelines: [:browser] 17:31:38.721 [debug] QUERY OK source="media_items" db=0.2ms idle=1366.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" = ?) [196] 17:31:38.721 [debug] QUERY OK source="settings" db=0.1ms idle=1367.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:31:38.722 [debug] QUERY OK source="settings" db=0.1ms idle=1367.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:31:38.722 [debug] QUERY OK source="settings" db=0.1ms idle=1368.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:31:38.724 [info] Sent 200 in 4ms 17:31:48.457 [info] {"source":"oban","duration":1060,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:31:55.684 [info] GET /sources/1/media/200/edit 17:31:55.684 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "200", "source_id" => "1"} Pipelines: [:browser] 17:31:55.685 [debug] QUERY OK source="media_items" db=0.2ms idle=1330.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" = ?) [200] 17:31:55.686 [debug] QUERY OK source="settings" db=0.1ms idle=1331.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:31:55.686 [debug] QUERY OK source="settings" db=0.1ms idle=1332.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:31:55.687 [debug] QUERY OK source="settings" db=0.1ms idle=1332.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:31:55.688 [info] Sent 200 in 4ms 17:32:00.273 [info] {"source":"oban","duration":369,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:32:11.548 [info] GET /sources/1/media/202/edit 17:32:11.549 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "202", "source_id" => "1"} Pipelines: [:browser] 17:32:11.549 [debug] QUERY OK source="media_items" db=0.3ms idle=1195.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" = ?) [202] 17:32:11.550 [debug] QUERY OK source="settings" db=0.1ms idle=467.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:32:11.550 [debug] QUERY OK source="settings" db=0.1ms idle=196.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:32:11.551 [debug] QUERY OK source="settings" db=0.1ms idle=196.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:32:11.552 [info] Sent 200 in 4ms 17:32:18.459 [info] {"source":"oban","duration":996,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:32:25.421 [info] GET /sources/1/media/204/edit 17:32:25.421 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "204", "source_id" => "1"} Pipelines: [:browser] 17:32:25.422 [debug] QUERY OK source="media_items" db=0.3ms idle=1067.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" = ?) [204] 17:32:25.423 [debug] QUERY OK source="settings" db=0.3ms idle=311.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:32:25.423 [debug] QUERY OK source="settings" db=0.1ms idle=69.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:32:25.424 [debug] QUERY OK source="settings" db=0.1ms idle=69.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:32:25.425 [info] Sent 200 in 4ms 17:32:38.719 [info] GET /sources/1/media/205/edit 17:32:38.719 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "205", "source_id" => "1"} Pipelines: [:browser] 17:32:38.720 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1365.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" = ?) [205] 17:32:38.721 [debug] QUERY OK source="settings" db=0.2ms idle=1366.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:32:38.722 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=1367.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:32:38.722 [debug] QUERY OK source="settings" db=0.2ms idle=1368.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:32:38.724 [info] Sent 200 in 5ms 17:32:48.461 [info] {"source":"oban","duration":1321,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:32:50.034 [info] GET /sources/1/media/203/edit 17:32:50.035 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "203", "source_id" => "1"} Pipelines: [:browser] 17:32:50.035 [debug] QUERY OK source="media_items" db=0.4ms idle=1680.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" = ?) [203] 17:32:50.036 [debug] QUERY OK source="settings" db=0.2ms idle=1681.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:32:50.036 [debug] QUERY OK source="settings" db=0.1ms idle=1682.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:32:50.037 [debug] QUERY OK source="settings" db=0.1ms idle=1575.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:32:50.038 [info] Sent 200 in 4ms 17:33:00.089 [info] GET /sources/1/force_index 17:33:00.090 [debug] QUERY OK source="settings" db=0.4ms idle=910.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:33:00.091 [debug] QUERY OK source="settings" db=0.1ms idle=736.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:33:00.091 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:33:00.091 [error] #PID<0.3952.0> running PinchflatWeb.Endpoint (connection #PID<0.3951.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/force_index ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_index", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49872}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3952.0>, params: %{}, path_info: ["sources", "1", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkGO2HmEBMlL3wAADVi"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_index", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49872}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3951.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_index", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49872}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXM (truncated) 17:33:00.274 [info] {"source":"oban","duration":314,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:33:09.317 [info] GET /sources/1/sync_files_on_disk 17:33:09.318 [debug] QUERY OK source="settings" db=0.9ms idle=1963.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:33:09.319 [debug] QUERY OK source="settings" db=0.5ms idle=1964.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:33:09.319 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:33:09.320 [error] #PID<0.3954.0> running PinchflatWeb.Endpoint (connection #PID<0.3953.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/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/1/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/sync_files_on_disk", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49880}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3954.0>, params: %{}, path_info: ["sources", "1", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkGPYfm805sQFsAAD4h"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/sync_files_on_disk", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49880}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3953.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/sync_files_on_disk", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49880}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "S (truncated) 17:33:18.462 [info] {"source":"oban","duration":1032,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:33:37.129 [info] GET /sources/1/force_redownload 17:33:37.130 [debug] QUERY OK source="settings" db=0.4ms idle=1775.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:33:37.130 [debug] QUERY OK source="settings" db=0.2ms idle=875.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:33:37.130 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:33:37.131 [error] #PID<0.3958.0> running PinchflatWeb.Endpoint (connection #PID<0.3957.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/force_redownload ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_redownload", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49892}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3958.0>, params: %{}, path_info: ["sources", "1", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkGRAGfmhz_NA4AAD5B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_redownload", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49892}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3957.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_redownload", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49892}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTDhVSG1ydWtXMjZTb0VmZ05qbUlNT2Nk.ldwkYQkANi50oRX5emDis0wX7SQi3R2HS70-KLmjqKU", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABb (truncated) 17:33:48.465 [info] {"source":"oban","duration":1074,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:33:51.972 [info] GET / 17:33:51.973 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 17:33:51.973 [debug] QUERY OK source="settings" db=0.2ms idle=1618.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:33:51.973 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1619.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 17:33:51.974 [debug] QUERY OK source="sources" db=0.1ms idle=1619.5ms SELECT count(s0."id") FROM "sources" AS s0 [] 17:33:51.974 [debug] QUERY OK source="media_items" db=0.2ms idle=1619.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 17:33:51.975 [debug] QUERY OK source="media_items" db=0.4ms idle=689.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 17:33:51.975 [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 [] 17:33:51.975 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:33:51.976 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:33:51.977 [debug] QUERY OK source="tasks" db=0.2ms idle=2.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 17:33:51.978 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 17:33:51.979 [debug] QUERY OK source="media_items" db=0.4ms idle=2.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] 17:33:51.979 [debug] QUERY OK source="sources" db=0.2ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:33:51.983 [debug] QUERY OK source="media_items" db=0.6ms idle=6.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 17:33:51.984 [debug] QUERY OK source="media_items" db=0.9ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 17:33:51.985 [info] Sent 200 in 12ms 17:34:00.275 [info] {"source":"oban","duration":364,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:34:18.467 [info] {"source":"oban","duration":1323,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:34:39.523 [info] GET /sources/1/force_metadata_refresh 17:34:39.524 [debug] QUERY OK source="settings" db=0.6ms idle=1169.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:34:39.525 [debug] QUERY OK source="settings" db=0.2ms idle=1145.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:34:39.525 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:34:39.525 [error] #PID<0.3968.0> running PinchflatWeb.Endpoint (connection #PID<0.3967.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/force_metadata_refresh ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3967.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_metadata_refresh", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49956}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3968.0>, params: %{}, path_info: ["sources", "1", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkGUoihpxSTiIQAAD6h"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3967.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_metadata_refresh", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49956}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3967.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_metadata_refresh", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49956}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3968.0>, params: %{}, path_info: ["sources", "1", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, defla (truncated) 17:34:48.469 [info] {"source":"oban","duration":996,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:35:00.276 [info] {"source":"oban","duration":303,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:35:18.471 [info] {"source":"oban","duration":1165,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:35:41.703 [info] GET /sources/1/force_download_pending 17:35:41.703 [debug] QUERY OK source="settings" db=0.2ms idle=1200.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:35:41.704 [debug] QUERY OK source="settings" db=0.2ms idle=349.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:35:41.704 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:35:41.705 [error] #PID<0.3975.0> running PinchflatWeb.Endpoint (connection #PID<0.3974.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/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/1/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3974.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_download_pending", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49988}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3975.0>, params: %{}, path_info: ["sources", "1", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkGYQLQUGe-R00AAD8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3974.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_download_pending", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49988}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3974.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_download_pending", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 49988}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3975.0>, params: %{}, path_info: ["sources", "1", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, defla (truncated) 17:35:48.473 [info] {"source":"oban","duration":1042,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:36:00.278 [info] {"source":"oban","duration":313,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:36:18.475 [info] {"source":"oban","duration":1017,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:36:43.156 [info] GET /sources/1/media/191/edit 17:36:43.156 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "191", "source_id" => "1"} Pipelines: [:browser] 17:36:43.157 [debug] QUERY OK source="media_items" db=0.3ms idle=1802.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" = ?) [191] 17:36:43.158 [debug] QUERY OK source="settings" db=0.1ms idle=1803.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:36:43.158 [debug] QUERY OK source="settings" db=0.1ms idle=1532.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:36:43.159 [debug] QUERY OK source="settings" db=0.2ms idle=804.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:36:43.160 [info] Sent 200 in 4ms 17:36:48.477 [info] {"source":"oban","duration":1326,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:37:00.280 [info] {"source":"oban","duration":281,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:37:18.479 [info] {"source":"oban","duration":1358,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:37:48.481 [info] {"source":"oban","duration":1329,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:37:48.602 [info] GET /sources/1/media/1/force_download 17:37:48.603 [debug] QUERY OK source="settings" db=0.2ms idle=249.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:37:48.603 [debug] QUERY OK source="settings" db=0.2ms idle=249.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:37:48.603 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:37:48.604 [error] #PID<0.3988.0> running PinchflatWeb.Endpoint (connection #PID<0.3987.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/1/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/1/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3987.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/1/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50078}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUkx5cFNsM253WlpvYldqZ1BGQU1KYUpz.fHj93D3eVgSFP4ZPk4DzEggreE5qPf34KFG0yhmxc6E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUkx5cFNsM253WlpvYldqZ1BGQU1KYUpz.fHj93D3eVgSFP4ZPk4DzEggreE5qPf34KFG0yhmxc6E" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.3988.0>, params: %{}, path_info: ["sources", "1", "media", "1", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUkx5cFNsM253WlpvYldqZ1BGQU1KYUpz.fHj93D3eVgSFP4ZPk4DzEggreE5qPf34KFG0yhmxc6E" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUkx5cFNsM253WlpvYldqZ1BGQU1KYUpz.fHj93D3eVgSFP4ZPk4DzEggreE5qPf34KFG0yhmxc6E"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/1/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkGfo6cX99NemgAAD-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.3987.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/1/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50078}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUkx5cFNsM253WlpvYldqZ1BGQU1KYUpz.fHj93D3eVgSFP4ZPk4DzEggreE5qPf34KFG0yhmxc6E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/1/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3987.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/1/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50078}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUkx5cFNsM253WlpvYldqZ1BGQU1KYUpz.fHj93D3eVgSFP4ZPk4DzEggreE5qPf34KFG0yhmxc6E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body (truncated) 17:38:00.281 [info] {"source":"oban","duration":276,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:38:18.483 [info] {"source":"oban","duration":1346,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:38:43.219 [info] GET /sources/1/media/3/edit 17:38:43.220 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "3", "source_id" => "1"} Pipelines: [:browser] 17:38:43.220 [debug] QUERY OK source="media_items" db=0.3ms idle=866.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" = ?) [3] 17:38:43.221 [debug] QUERY OK source="settings" db=0.1ms idle=866.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:38:43.221 [debug] QUERY OK source="settings" db=0.1ms 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 [] 17:38:43.223 [debug] QUERY OK source="settings" db=1.2ms idle=867.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:38:43.225 [info] Sent 200 in 5ms 17:38:48.485 [info] {"source":"oban","duration":1057,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:39:00.282 [info] {"source":"oban","duration":296,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:39:18.487 [info] {"source":"oban","duration":1242,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:39:48.024 [info] GET /sources/1/media/2/edit 17:39:48.024 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "2", "source_id" => "1"} Pipelines: [:browser] 17:39:48.025 [debug] QUERY OK source="media_items" db=0.2ms idle=1670.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" = ?) [2] 17:39:48.025 [debug] QUERY OK source="settings" db=0.1ms idle=1671.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:39:48.026 [debug] QUERY OK source="settings" db=0.1ms idle=1671.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:39:48.026 [debug] QUERY OK source="settings" db=0.1ms idle=1028.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:39:48.028 [info] Sent 200 in 4ms 17:39:48.489 [info] {"source":"oban","duration":1068,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:40:00.283 [info] {"source":"oban","duration":270,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:40:18.491 [info] {"source":"oban","duration":1007,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:40:45.484 [info] GET /sources/1/media/1/edit 17:40:45.484 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "1", "source_id" => "1"} Pipelines: [:browser] 17:40:45.485 [debug] QUERY OK source="media_items" db=0.3ms idle=1131.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" = ?) [1] 17:40:45.486 [debug] QUERY OK source="settings" db=0.2ms idle=370.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:40:45.486 [debug] QUERY OK source="settings" db=0.1ms idle=132.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:40:45.487 [debug] QUERY OK source="settings" db=0.1ms idle=133.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:40:45.488 [info] Sent 200 in 4ms 17:40:48.492 [info] {"source":"oban","duration":960,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:41:00.284 [info] {"source":"oban","duration":333,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:41:18.495 [info] {"source":"oban","duration":1121,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:41:38.468 [info] GET /sources/1/media/3/force_download 17:41:38.470 [debug] QUERY OK source="settings" db=0.9ms idle=1115.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:41:38.470 [debug] QUERY OK source="settings" db=0.2ms idle=1116.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:41:38.470 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:41:38.471 [error] #PID<0.4014.0> running PinchflatWeb.Endpoint (connection #PID<0.4013.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/3/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/3/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4013.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/3/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50162}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUkx5cFNsM253WlpvYldqZ1BGQU1KYUpz.fHj93D3eVgSFP4ZPk4DzEggreE5qPf34KFG0yhmxc6E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUkx5cFNsM253WlpvYldqZ1BGQU1KYUpz.fHj93D3eVgSFP4ZPk4DzEggreE5qPf34KFG0yhmxc6E" }, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4014.0>, params: %{}, path_info: ["sources", "1", "media", "3", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUkx5cFNsM253WlpvYldqZ1BGQU1KYUpz.fHj93D3eVgSFP4ZPk4DzEggreE5qPf34KFG0yhmxc6E" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUkx5cFNsM253WlpvYldqZ1BGQU1KYUpz.fHj93D3eVgSFP4ZPk4DzEggreE5qPf34KFG0yhmxc6E"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/3"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/3/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkGtBOzffbrv8UAAEDh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4013.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/3/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50162}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUkx5cFNsM253WlpvYldqZ1BGQU1KYUpz.fHj93D3eVgSFP4ZPk4DzEggreE5qPf34KFG0yhmxc6E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/3/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4013.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/3/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50162}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYUkx5cFNsM253WlpvYldqZ1BGQU1KYUpz.fHj93D3eVgSFP4ZPk4DzEggreE5qPf34KFG0yhmxc6E", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body (truncated) 17:41:48.497 [info] {"source":"oban","duration":1300,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:42:00.285 [info] {"source":"oban","duration":400,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:42:18.500 [info] {"source":"oban","duration":1076,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:42:24.159 [info] GET /sources/1/media/2/force_download 17:42:24.160 [debug] QUERY OK source="settings" db=0.8ms idle=1805.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:42:24.161 [debug] QUERY OK source="settings" db=0.7ms idle=1806.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:42:24.161 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:42:24.162 [error] #PID<0.4018.0> running PinchflatWeb.Endpoint (connection #PID<0.4017.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /sources/1/media/2/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/2/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4017.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/2/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50182}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4018.0>, params: %{}, path_info: ["sources", "1", "media", "2", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"from", "gptbot(at)openai.com"}, {"host", "pinch.msdlx.de"}, {"referer", "https://pinch.msdlx.de/sources/1/media/2"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-openai-host-hash", "552980497"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/sources/1/media/2/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkGvrcPrs_r42cAAEEh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4017.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/2/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50182}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/2/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4017.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/2/force_download", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50182}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "from" => "gptbot(at)openai.com", "host" => "pinch.msdlx.de", "referer" => "https://pinch.msdlx.de/sources/1/media/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-openai-host-hash" => "552980497", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4018.0>, params: %{}, path_info: ["sources", "1", "media", "2", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, (truncated) 17:42:48.501 [info] {"source":"oban","duration":958,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:43:00.286 [info] {"source":"oban","duration":444,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:43:18.503 [info] {"source":"oban","duration":958,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:43:27.977 [info] GET /sources/7cbab813-adee-4d74-87e4-8c12965489f4/feed.xml 17:43:27.977 [debug] Processing with PinchflatWeb.Podcasts.PodcastController.rss_feed/2 Parameters: %{"uuid" => "7cbab813-adee-4d74-87e4-8c12965489f4"} Pipelines: [:maybe_basic_auth] 17:43:27.979 [debug] QUERY OK source="sources" db=0.3ms queue=0.8ms idle=1624.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", 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" = ?) ["7cbab813-adee-4d74-87e4-8c12965489f4"] 17:43:27.981 [debug] QUERY OK source="media_items" db=1.9ms queue=0.2ms idle=1625.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" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? [1, 2000] 17:43:27.991 [debug] QUERY OK source="source_metadata" db=0.2ms idle=1552.5ms SELECT s0."id", s0."metadata_filepath", s0."fanart_filepath", s0."poster_filepath", s0."banner_filepath", s0."source_id", s0."inserted_at", s0."updated_at", s0."source_id" FROM "source_metadata" AS s0 WHERE (s0."source_id" = ?) [1] 17:43:27.991 [debug] QUERY OK source="media_metadata" db=0.4ms idle=637.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [189] 17:43:27.992 [info] Sent 200 in 14ms 17:43:48.505 [info] {"source":"oban","duration":800,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:44:00.287 [info] {"source":"oban","duration":374,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:44:18.507 [info] {"source":"oban","duration":1047,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:44:33.491 [info] GET /media_profiles/new 17:44:33.491 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.new/2 Parameters: %{"template_id" => "1"} Pipelines: [:browser] 17:44:33.492 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1137.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:44:33.492 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=922.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:44:33.493 [debug] QUERY OK source="settings" db=0.1ms idle=138.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:44:33.493 [debug] QUERY OK source="settings" db=0.1ms idle=138.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:44:33.494 [debug] QUERY OK source="settings" db=0.1ms idle=139.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:44:33.494 [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 [] 17:44:33.497 [info] Sent 200 in 5ms 17:44:48.508 [info] {"source":"oban","duration":880,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:45:00.289 [info] {"source":"oban","duration":368,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:45:18.511 [info] {"source":"oban","duration":1077,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:45:29.859 [info] GET /sources/1 17:45:29.860 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "1"} Pipelines: [:browser] 17:45:29.860 [debug] QUERY OK source="sources" db=0.2ms idle=1178.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:45:29.861 [debug] QUERY OK source="media_profiles" db=0.2ms idle=506.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] 17:45:29.861 [debug] QUERY OK source="tasks" db=0.3ms idle=507.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 (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 17:45:29.863 [debug] QUERY OK source="oban_jobs" db=0.8ms queue=0.1ms idle=508.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" = ?) [254] 17:45:29.863 [debug] QUERY OK source="settings" db=0.1ms idle=179.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:45:29.863 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:45:29.864 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:45:29.866 [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" = ?) [1] 17:45:29.867 [debug] QUERY OK source="media_items" db=0.6ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 17:45:29.868 [debug] QUERY OK source="media_items" db=0.9ms idle=4.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 17:45:29.869 [debug] QUERY OK source="sources" db=0.2ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:45:29.870 [debug] QUERY OK source="media_items" db=0.1ms idle=5.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 17:45:29.870 [debug] QUERY OK source="media_items" db=0.4ms idle=3.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 17:45:29.872 [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" = ?) [1] 17:45:29.873 [debug] QUERY OK source="media_items" db=0.5ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 17:45:29.875 [debug] QUERY OK source="media_items" db=1.3ms idle=3.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 17:45:29.877 [info] Sent 200 in 17ms 17:45:48.513 [info] {"source":"oban","duration":1046,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:46:00.291 [info] {"source":"oban","duration":265,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:46:18.515 [info] {"source":"oban","duration":982,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:46:22.919 [info] GET /sources/1/media/196 17:46:22.919 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "196", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:46:22.920 [debug] QUERY OK source="media_items" db=0.2ms idle=1565.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" = ?) [196] 17:46:22.920 [debug] QUERY OK source="tasks" db=0.3ms idle=1566.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" [196] 17:46:22.921 [debug] QUERY OK source="sources" db=0.3ms idle=1132.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:46:22.921 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=567.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" = ?) [200] 17:46:22.922 [debug] QUERY OK source="settings" db=0.8ms idle=131.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:46:22.923 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:46:22.923 [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 [] 17:46:22.924 [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] 17:46:22.927 [info] Sent 200 in 7ms 17:46:48.517 [info] {"source":"oban","duration":1075,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:47:00.292 [info] {"source":"oban","duration":334,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:47:08.449 [info] GET /sources/1/media/192 17:47:08.449 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "192", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:47:08.450 [debug] QUERY OK source="media_items" db=0.3ms idle=1095.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" = ?) [192] 17:47:08.451 [debug] QUERY OK source="tasks" db=1.0ms idle=570.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" [192] 17:47:08.451 [debug] QUERY OK source="sources" db=1.1ms idle=96.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:47:08.452 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=98.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" = ?) [196] 17:47:08.453 [debug] QUERY OK source="settings" db=0.1ms idle=98.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:47:08.453 [debug] QUERY OK source="settings" db=0.2ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:47:08.454 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:47:08.455 [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] 17:47:08.457 [info] Sent 200 in 8ms 17:47:18.519 [info] {"source":"oban","duration":1043,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:47:48.437 [info] GET /sources/1/media/204 17:47:48.437 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "204", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:47:48.438 [debug] QUERY OK source="media_items" db=0.2ms idle=477.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" = ?) [204] 17:47:48.438 [debug] QUERY OK source="tasks" db=0.3ms idle=84.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" [204] 17:47:48.439 [debug] QUERY OK source="sources" db=0.4ms idle=84.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:47:48.439 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=85.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" = ?) [208] 17:47:48.440 [debug] QUERY OK source="settings" db=0.3ms idle=85.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:47:48.440 [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 [] 17:47:48.441 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:47:48.442 [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] 17:47:48.444 [info] Sent 200 in 7ms 17:47:48.521 [info] {"source":"oban","duration":1035,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:48:00.294 [info] {"source":"oban","duration":363,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:48:18.523 [info] {"source":"oban","duration":1064,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:48:27.373 [info] GET /sources/1/media/203 17:48:27.373 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "203", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:48:27.374 [debug] QUERY OK source="media_items" db=0.2ms idle=1019.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" = ?) [203] 17:48:27.374 [debug] QUERY OK source="tasks" db=0.2ms idle=1020.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" [203] 17:48:27.374 [debug] QUERY OK source="sources" db=0.4ms idle=1020.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:48:27.375 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1021.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" = ?) [207] 17:48:27.375 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=338.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:48:27.376 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:48:27.376 [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 [] 17:48:27.377 [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] 17:48:27.380 [info] Sent 200 in 7ms 17:48:48.525 [info] {"source":"oban","duration":1268,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:49:00.296 [info] {"source":"oban","duration":332,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:49:00.556 [info] GET /sources/1/media/200 17:49:00.556 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "200", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:49:00.557 [debug] QUERY OK source="media_items" db=0.3ms idle=1202.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" = ?) [200] 17:49:00.558 [debug] QUERY OK source="tasks" db=0.3ms idle=1203.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" [200] 17:49:00.558 [debug] QUERY OK source="sources" db=0.4ms idle=1203.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:49:00.558 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=455.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" = ?) [204] 17:49:00.559 [debug] QUERY OK source="settings" db=0.2ms idle=262.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:49:00.559 [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 [] 17:49:00.560 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:49:00.561 [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] 17:49:00.563 [info] Sent 200 in 7ms 17:49:18.527 [info] {"source":"oban","duration":1192,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:49:30.456 [info] GET /sources/1/media/202 17:49:30.456 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "202", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:49:30.457 [debug] QUERY OK source="media_items" db=0.4ms idle=293.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" = ?) [202] 17:49:30.457 [debug] QUERY OK source="tasks" db=0.1ms idle=103.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" [202] 17:49:30.458 [debug] QUERY OK source="sources" db=0.6ms idle=103.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:49:30.458 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=104.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" = ?) [206] 17:49:30.459 [debug] QUERY OK source="settings" db=0.2ms idle=104.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:49:30.460 [debug] QUERY OK source="settings" db=0.3ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:49:30.460 [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 [] 17:49:30.461 [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] 17:49:30.463 [info] Sent 200 in 7ms 17:49:48.528 [info] {"source":"oban","duration":966,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:49:58.585 [info] GET /sources/1/media/190 17:49:58.585 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "190", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:49:58.586 [debug] QUERY OK source="media_items" db=0.8ms idle=365.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" = ?) [190] 17:49:58.587 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=233.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" [190] 17:49:58.587 [debug] QUERY OK source="sources" db=0.7ms idle=233.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:49:58.588 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=234.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" = ?) [194] 17:49:58.588 [debug] QUERY OK source="settings" db=0.1ms idle=234.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:49:58.589 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:49:58.590 [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 [] 17:49:58.591 [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] 17:49:58.593 [info] Sent 200 in 8ms 17:50:00.298 [info] {"source":"oban","duration":309,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:50:18.530 [info] {"source":"oban","duration":1003,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:50:23.421 [info] GET /sources/1/media/205 17:50:23.421 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "205", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:50:23.422 [debug] QUERY OK source="media_items" db=0.2ms idle=1067.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" = ?) [205] 17:50:23.423 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=1068.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" [205] 17:50:23.423 [debug] QUERY OK source="sources" db=0.5ms idle=1068.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:50:23.423 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1069.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" = ?) [209] 17:50:23.424 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=151.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:50:23.425 [debug] QUERY OK source="settings" db=0.8ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:50:23.426 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:50:23.427 [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] 17:50:23.429 [info] Sent 200 in 7ms 17:50:45.444 [info] GET /sources/1/media/201 17:50:45.444 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "201", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:50:45.445 [debug] QUERY OK source="media_items" db=0.2ms idle=128.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" = ?) [201] 17:50:45.445 [debug] QUERY OK source="tasks" db=0.5ms idle=90.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" [201] 17:50:45.446 [debug] QUERY OK source="sources" db=0.6ms idle=91.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:50:45.446 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=92.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" = ?) [205] 17:50:45.447 [debug] QUERY OK source="settings" db=0.1ms idle=92.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:50:45.447 [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 [] 17:50:45.448 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:50:45.449 [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] 17:50:45.451 [info] Sent 200 in 7ms 17:50:48.533 [info] {"source":"oban","duration":1086,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:51:00.299 [info] {"source":"oban","duration":499,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:51:04.375 [info] GET /sources/1/media/197 17:51:04.375 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "197", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:51:04.376 [debug] QUERY OK source="media_items" db=0.3ms idle=1022.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" = ?) [197] 17:51:04.377 [debug] QUERY OK source="sources" db=0.3ms idle=1022.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:51:04.378 [debug] QUERY OK source="tasks" db=1.3ms queue=0.1ms idle=1022.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" [197] 17:51:04.378 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1024.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" = ?) [201] 17:51:04.379 [debug] QUERY OK source="settings" db=0.2ms idle=25.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:51:04.379 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:51:04.380 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:51:04.381 [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] 17:51:04.383 [info] Sent 200 in 8ms 17:51:18.535 [info] {"source":"oban","duration":983,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:51:21.910 [info] GET /sources/1/media/194 17:51:21.911 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "194", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:51:21.912 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=1557.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" = ?) [194] 17:51:21.913 [debug] QUERY OK source="tasks" db=0.3ms idle=1558.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" [194] 17:51:21.913 [debug] QUERY OK source="sources" db=0.6ms idle=1558.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:51:21.914 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1528.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" = ?) [198] 17:51:21.914 [debug] QUERY OK source="settings" db=0.2ms idle=526.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:51:21.915 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:51:21.915 [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 [] 17:51:21.916 [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] 17:51:21.919 [info] Sent 200 in 8ms 17:51:37.982 [info] GET /sources/1/media/198 17:51:37.982 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "198", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:51:37.983 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=628.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" = ?) [198] 17:51:37.984 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=630.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" [198] 17:51:37.984 [debug] QUERY OK source="sources" db=0.5ms idle=630.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:51:37.985 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=631.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" = ?) [202] 17:51:37.985 [debug] QUERY OK source="settings" db=0.1ms idle=565.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:51:37.986 [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 [] 17:51:37.987 [debug] QUERY OK source="settings" db=0.8ms 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 [] 17:51:37.988 [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] 17:51:37.990 [info] Sent 200 in 8ms 17:51:48.536 [info] {"source":"oban","duration":913,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:51:52.317 [info] GET /sources/1/media/193 17:51:52.317 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "193", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:51:52.318 [debug] QUERY OK source="media_items" db=0.3ms idle=1871.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" = ?) [193] 17:51:52.319 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=964.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" [193] 17:51:52.320 [debug] QUERY OK source="sources" db=1.3ms idle=964.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:51:52.320 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=966.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" = ?) [197] 17:51:52.321 [debug] QUERY OK source="settings" db=0.1ms idle=872.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:51:52.321 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:51:52.322 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:51:52.323 [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] 17:51:52.325 [info] Sent 200 in 8ms 17:52:00.300 [info] {"source":"oban","duration":350,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:52:05.788 [info] GET /sources/1/media/189 17:52:05.789 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "189", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:52:05.789 [debug] QUERY OK source="media_items" db=0.3ms idle=435.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" = ?) [189] 17:52:05.790 [debug] QUERY OK source="tasks" db=0.1ms queue=0.1ms idle=436.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" [189] 17:52:05.791 [debug] QUERY OK source="sources" db=1.5ms idle=436.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:52:05.792 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=438.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" = ?) [193] 17:52:05.793 [debug] QUERY OK source="settings" db=0.2ms 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 [] 17:52:05.793 [debug] QUERY OK source="settings" db=0.1ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:52:05.794 [debug] QUERY OK source="settings" db=0.1ms 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 [] 17:52:05.794 [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] 17:52:05.797 [info] Sent 200 in 8ms 17:52:17.385 [info] GET /sources/1/media/195 17:52:17.385 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "195", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:52:17.386 [debug] QUERY OK source="media_items" db=0.2ms idle=886.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" = ?) [195] 17:52:17.386 [debug] QUERY OK source="sources" db=0.2ms idle=32.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:52:17.388 [debug] QUERY OK source="tasks" db=1.3ms idle=32.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" [195] 17:52:17.388 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=33.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" = ?) [199] 17:52:17.389 [debug] QUERY OK source="settings" db=0.1ms idle=34.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:52:17.389 [debug] QUERY OK source="settings" db=0.2ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:52:17.390 [debug] QUERY OK source="settings" db=0.2ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:52:17.391 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:52:17.393 [info] Sent 200 in 8ms 17:52:18.539 [info] {"source":"oban","duration":1329,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:52:28.034 [info] GET /sources/1/media/191 17:52:28.034 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "191", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:52:28.035 [debug] QUERY OK source="media_items" db=0.2ms idle=1515.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" = ?) [191] 17:52:28.036 [debug] QUERY OK source="tasks" db=0.7ms idle=681.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" [191] 17:52:28.036 [debug] QUERY OK source="sources" db=0.9ms idle=681.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:52:28.037 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=682.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" = ?) [195] 17:52:28.037 [debug] QUERY OK source="settings" db=0.2ms idle=516.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:52:28.038 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:52:28.038 [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 [] 17:52:28.039 [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] 17:52:28.042 [info] Sent 200 in 8ms 17:52:37.829 [info] GET /sources/1/media/199 17:52:37.829 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "199", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:52:37.830 [debug] QUERY OK source="media_items" db=0.3ms idle=476.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" = ?) [199] 17:52:37.831 [debug] QUERY OK source="tasks" db=0.2ms idle=477.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" [199] 17:52:37.831 [debug] QUERY OK source="sources" db=0.5ms idle=477.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:52:37.832 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=477.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" = ?) [203] 17:52:37.832 [debug] QUERY OK source="settings" db=0.2ms idle=291.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:52:37.833 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:52:37.833 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:52:37.834 [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] 17:52:37.836 [info] Sent 200 in 7ms 17:52:46.549 [info] GET /media/147d02f0-616c-4dc6-be67-727cda417292/stream 17:52:46.549 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "147d02f0-616c-4dc6-be67-727cda417292", "v" => "1776956142"} Pipelines: [:maybe_basic_auth] 17:52:46.550 [debug] QUERY OK source="media_items" db=0.2ms queue=0.2ms idle=1195.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" = ?) ["147d02f0-616c-4dc6-be67-727cda417292"] 17:52:46.550 [debug] Invalid range request for media item: 147d02f0-616c-4dc6-be67-727cda417292 - serving full file 17:52:46.550 [info] Sent 200 in 1ms 17:52:48.540 [info] {"source":"oban","duration":944,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:52:54.395 [info] GET /media/0a9e6b45-3954-405b-a395-784881dbe01a/stream 17:52:54.395 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "0a9e6b45-3954-405b-a395-784881dbe01a", "v" => "1776956189"} Pipelines: [:maybe_basic_auth] 17:52:54.396 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=1041.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["0a9e6b45-3954-405b-a395-784881dbe01a"] 17:52:54.397 [debug] Invalid range request for media item: 0a9e6b45-3954-405b-a395-784881dbe01a - serving full file 17:52:54.397 [info] Sent 200 in 2ms 17:53:00.302 [info] {"source":"oban","duration":279,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:53:01.361 [info] GET /media/09b271c4-5750-4e1e-970b-daf599312051/stream 17:53:01.361 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "09b271c4-5750-4e1e-970b-daf599312051", "v" => "1776956127"} Pipelines: [:maybe_basic_auth] 17:53:01.363 [debug] QUERY OK source="media_items" db=0.4ms queue=0.7ms idle=1008.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["09b271c4-5750-4e1e-970b-daf599312051"] 17:53:01.363 [debug] Invalid range request for media item: 09b271c4-5750-4e1e-970b-daf599312051 - serving full file 17:53:01.363 [info] Sent 200 in 2ms 17:53:07.318 [info] GET /sources/new 17:53:07.318 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "1"} Pipelines: [:browser] 17:53:07.319 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1964.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:53:07.320 [debug] QUERY OK source="media_profiles" db=0.5ms idle=1965.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" [] 17:53:07.321 [debug] QUERY OK source="settings" db=0.8ms queue=0.1ms idle=1723.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:07.322 [debug] QUERY OK source="settings" db=0.1ms idle=967.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:07.323 [debug] QUERY OK source="settings" db=0.8ms idle=723.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:07.324 [debug] QUERY OK source="settings" db=0.9ms 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 [] 17:53:07.325 [debug] QUERY OK source="settings" db=0.2ms 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 [] 17:53:07.329 [info] Sent 200 in 11ms 17:53:13.000 [info] GET /media/31374eea-7e7b-4705-9f33-1653fae66082/stream 17:53:13.000 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "31374eea-7e7b-4705-9f33-1653fae66082", "v" => "1776955094"} Pipelines: [:maybe_basic_auth] 17:53:13.001 [debug] QUERY OK source="media_items" db=0.3ms idle=646.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" = ?) ["31374eea-7e7b-4705-9f33-1653fae66082"] 17:53:13.001 [debug] Invalid range request for media item: 31374eea-7e7b-4705-9f33-1653fae66082 - serving full file 17:53:13.002 [info] Sent 200 in 1ms 17:53:18.542 [info] {"source":"oban","duration":1043,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:53:39.319 [info] GET /media_profiles/1 17:53:39.319 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"delete_files" => "true", "id" => "1"} Pipelines: [:browser] 17:53:39.320 [debug] QUERY OK source="media_profiles" db=0.2ms idle=966.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:53:39.321 [debug] QUERY OK source="sources" db=0.3ms idle=966.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."media_profile_id" = ?) ORDER BY s0."custom_name" [1] 17:53:39.322 [debug] QUERY OK source="settings" db=0.7ms idle=967.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:39.323 [debug] QUERY OK source="settings" db=0.8ms idle=968.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:39.324 [debug] QUERY OK source="settings" db=0.2ms idle=658.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:39.325 [info] Sent 200 in 6ms 17:53:44.024 [info] GET /media/ee5d6d06-3215-4f50-95b4-b849468e89dc/stream 17:53:44.025 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "ee5d6d06-3215-4f50-95b4-b849468e89dc", "v" => "1776956186"} Pipelines: [:maybe_basic_auth] 17:53:44.025 [debug] QUERY OK source="media_items" db=0.3ms idle=1671.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["ee5d6d06-3215-4f50-95b4-b849468e89dc"] 17:53:44.026 [debug] Invalid range request for media item: ee5d6d06-3215-4f50-95b4-b849468e89dc - serving full file 17:53:44.026 [info] Sent 200 in 1ms 17:53:48.132 [info] GET /media/e098068b-8aec-4534-9916-d57f78275c3f/stream 17:53:48.132 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "e098068b-8aec-4534-9916-d57f78275c3f", "v" => "1776956146"} Pipelines: [:maybe_basic_auth] 17:53:48.133 [debug] QUERY OK source="media_items" db=0.3ms idle=1778.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" = ?) ["e098068b-8aec-4534-9916-d57f78275c3f"] 17:53:48.134 [debug] Invalid range request for media item: e098068b-8aec-4534-9916-d57f78275c3f - serving full file 17:53:48.134 [info] Sent 200 in 1ms 17:53:48.545 [info] {"source":"oban","duration":1116,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:53:51.764 [info] GET /sources/1/media/2 17:53:51.765 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "2", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:53:51.765 [debug] QUERY OK source="media_items" db=0.3ms idle=1411.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" = ?) [2] 17:53:51.766 [debug] QUERY OK source="sources" db=0.2ms 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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:53:51.767 [debug] QUERY OK source="tasks" db=1.4ms idle=1412.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] 17:53:51.768 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=413.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" = ?) [6] 17:53:51.768 [debug] QUERY OK source="settings" db=0.1ms idle=77.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:51.769 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:51.769 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:51.770 [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] 17:53:51.773 [info] Sent 200 in 8ms 17:53:54.903 [info] GET /sources/1/media/3 17:53:54.903 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "3", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:53:54.904 [debug] QUERY OK source="media_items" db=0.2ms idle=1549.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" = ?) [3] 17:53:54.904 [debug] QUERY OK source="tasks" db=0.2ms idle=1550.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" [3] 17:53:54.905 [debug] QUERY OK source="sources" db=1.1ms idle=1550.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:53:54.906 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1210.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" = ?) [7] 17:53:54.906 [debug] QUERY OK source="settings" db=0.1ms idle=209.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:54.907 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:54.907 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:54.908 [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] 17:53:54.912 [info] Sent 200 in 9ms 17:53:58.024 [info] GET /sources/1/media/1 17:53:58.025 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "1", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 17:53:58.025 [debug] QUERY OK source="media_items" db=0.3ms idle=1671.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" = ?) [1] 17:53:58.026 [debug] QUERY OK source="sources" db=0.3ms idle=1672.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 17:53:58.027 [debug] QUERY OK source="tasks" db=1.3ms queue=0.1ms idle=1672.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" [1] 17:53:58.028 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=1327.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" = ?) [5] 17:53:58.029 [debug] QUERY OK source="settings" db=0.8ms idle=325.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:58.030 [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 [] 17:53:58.031 [debug] QUERY OK source="settings" db=0.1ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:53:58.032 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 17:53:58.035 [info] Sent 200 in 10ms 17:54:00.303 [info] {"source":"oban","duration":410,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:54:00.839 [info] GET /media/d920cff0-1303-43d3-969d-229b14ab6cf7/stream 17:54:00.840 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "d920cff0-1303-43d3-969d-229b14ab6cf7", "v" => "1776955089"} Pipelines: [:maybe_basic_auth] 17:54:00.840 [debug] QUERY OK source="media_items" db=0.3ms idle=1485.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" = ?) ["d920cff0-1303-43d3-969d-229b14ab6cf7"] 17:54:00.841 [debug] Invalid range request for media item: d920cff0-1303-43d3-969d-229b14ab6cf7 - serving full file 17:54:00.841 [info] Sent 200 in 1ms 17:54:18.546 [info] {"source":"oban","duration":890,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:54:25.063 [info] GET /sources/opml.xml 17:54:25.063 [debug] Processing with PinchflatWeb.Podcasts.PodcastController.opml_feed/2 Parameters: %{"route_token" => "38270c9b-7827-4dd8-b9b8-de3fd4addaa9"} Pipelines: [:maybe_basic_auth, :token_protected_route] 17:54:25.064 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=1709.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:54:25.064 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1309.6ms SELECT s0."custom_name", s0."uuid" FROM "sources" AS s0 WHERE (s0."marked_for_deletion_at" IS NULL) ORDER BY s0."custom_name" [] 17:54:25.064 [info] Sent 200 in 1ms 17:54:27.164 [info] GET /media/aadbd9eb-737a-4cde-87b8-ce26c4c5f9b9/stream 17:54:27.164 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "aadbd9eb-737a-4cde-87b8-ce26c4c5f9b9", "v" => "1776955127"} Pipelines: [:maybe_basic_auth] 17:54:27.165 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=810.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" = ?) ["aadbd9eb-737a-4cde-87b8-ce26c4c5f9b9"] 17:54:27.165 [debug] Invalid range request for media item: aadbd9eb-737a-4cde-87b8-ce26c4c5f9b9 - serving full file 17:54:27.165 [info] Sent 200 in 1ms 17:54:46.045 [info] GET /media/a44c4f6d-6b89-4f0d-b29b-8e85a363ccb3/stream 17:54:46.045 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "a44c4f6d-6b89-4f0d-b29b-8e85a363ccb3", "v" => "1776956165"} Pipelines: [:maybe_basic_auth] 17:54:46.046 [debug] QUERY OK source="media_items" db=0.3ms idle=1692.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["a44c4f6d-6b89-4f0d-b29b-8e85a363ccb3"] 17:54:46.046 [debug] Invalid range request for media item: a44c4f6d-6b89-4f0d-b29b-8e85a363ccb3 - serving full file 17:54:46.047 [info] Sent 200 in 1ms 17:54:47.834 [info] GET /media/b221d29c-110a-42b3-bab9-7cf7b853ad69/stream 17:54:47.834 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "b221d29c-110a-42b3-bab9-7cf7b853ad69", "v" => "1776956168"} Pipelines: [:maybe_basic_auth] 17:54:47.835 [debug] QUERY OK source="media_items" db=0.3ms idle=1480.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["b221d29c-110a-42b3-bab9-7cf7b853ad69"] 17:54:47.835 [debug] Invalid range request for media item: b221d29c-110a-42b3-bab9-7cf7b853ad69 - serving full file 17:54:47.835 [info] Sent 200 in 1ms 17:54:48.549 [info] {"source":"oban","duration":1088,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:55:00.305 [info] {"source":"oban","duration":361,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:55:18.552 [info] {"source":"oban","duration":1117,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:55:48.554 [info] {"source":"oban","duration":1009,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:56:00.307 [info] {"source":"oban","duration":349,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:56:18.556 [info] {"source":"oban","duration":980,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:56:48.557 [info] {"source":"oban","duration":871,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:57:00.308 [info] {"source":"oban","duration":351,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:57:18.560 [info] {"source":"oban","duration":951,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:57:48.561 [info] {"source":"oban","duration":926,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:58:00.309 [info] {"source":"oban","duration":471,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:58:16.942 [info] GET / 17:58:16.942 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 17:58:16.943 [debug] QUERY OK source="settings" db=0.2ms idle=1588.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:16.944 [debug] QUERY OK source="media_profiles" db=0.7ms idle=724.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 17:58:16.945 [debug] QUERY OK source="sources" db=0.7ms idle=590.1ms SELECT count(s0."id") FROM "sources" AS s0 [] 17:58:16.945 [debug] QUERY OK source="media_items" db=0.2ms idle=591.1ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 17:58:16.945 [debug] QUERY OK source="media_items" db=0.1ms idle=591.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 17:58:16.946 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:16.946 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:16.947 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:16.948 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 17:58:16.949 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 17:58:16.949 [debug] QUERY OK source="media_items" db=0.5ms idle=2.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] 17:58:16.950 [debug] QUERY OK source="sources" db=0.1ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 17:58:16.953 [debug] QUERY OK source="media_items" db=0.6ms idle=6.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 17:58:16.955 [debug] QUERY OK source="media_items" db=1.0ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "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] 17:58:16.956 [info] Sent 200 in 13ms 17:58:17.096 [info] GET /static/style/protect/index.js 17:58:17.096 [debug] QUERY OK source="settings" db=0.2ms idle=147.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.097 [debug] QUERY OK source="settings" db=0.2ms idle=147.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.097 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:58:17.097 [error] #PID<0.4286.0> running PinchflatWeb.Endpoint (connection #PID<0.4285.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /static/style/protect/index.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 /static/style/protect/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4285.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/protect/index.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50798}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4286.0>, params: %{}, path_info: ["static", "style", "protect", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"host", "pinch.msdlx.de"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/static/style/protect/index.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkHnJaGJPjHakwAAEph"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4285.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/protect/index.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50798}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /static/style/protect/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4285.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/protect/index.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50798}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4286.0>, params: %{}, path_info: ["static", "style", "protect", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, (truncated) 17:58:17.147 [info] GET /bot-connect.js 17:58:17.148 [debug] QUERY OK source="settings" db=0.2ms idle=197.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.148 [debug] QUERY OK source="settings" db=0.5ms idle=194.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.148 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:58:17.149 [error] #PID<0.4290.0> running PinchflatWeb.Endpoint (connection #PID<0.4289.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /bot-connect.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 /bot-connect (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4289.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bot-connect.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50806}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4290.0>, params: %{}, path_info: ["bot-connect"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"host", "pinch.msdlx.de"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/bot-connect.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkHnJmTooFUKswAAEqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4289.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bot-connect.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50806}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bot-connect (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4289.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bot-connect.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50806}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4290.0>, params: %{}, path_info: ["bot-connect"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", (truncated) 17:58:17.199 [info] GET /js/lkk_ch.js 17:58:17.200 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=245.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.201 [debug] QUERY OK source="settings" db=0.1ms idle=104.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.201 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:58:17.201 [error] #PID<0.4294.0> running PinchflatWeb.Endpoint (connection #PID<0.4293.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /js/lkk_ch.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/lkk_ch (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4293.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/lkk_ch.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50814}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4294.0>, params: %{}, path_info: ["js", "lkk_ch"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"host", "pinch.msdlx.de"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/js/lkk_ch.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkHnJy2tCnNiIUAAEqh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4293.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/lkk_ch.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50814}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /js/lkk_ch (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4293.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/lkk_ch.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50814}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4294.0>, params: %{}, path_info: ["js", "lkk_ch"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: (truncated) 17:58:17.296 [info] GET /assets/js/qr_modal.js 17:58:17.297 [debug] QUERY OK source="settings" db=0.2ms 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 [] 17:58:17.297 [debug] QUERY OK source="settings" db=0.1ms idle=148.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.297 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:58:17.298 [error] #PID<0.4298.0> running PinchflatWeb.Endpoint (connection #PID<0.4297.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /assets/js/qr_modal.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 /assets/js/qr_modal (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4297.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/qr_modal.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50822}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4298.0>, params: %{}, path_info: ["assets", "js", "qr_modal"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"host", "pinch.msdlx.de"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/assets/js/qr_modal.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkHnKJ16g-F4XsAAErB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4297.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/qr_modal.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50822}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/qr_modal (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4297.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/qr_modal.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50822}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4298.0>, params: %{}, path_info: ["assets", "js", "qr_modal"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} (truncated) 17:58:17.318 [info] GET /js/twint_ch.js 17:58:17.319 [debug] QUERY OK source="settings" db=0.2ms idle=117.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.319 [debug] QUERY OK source="settings" db=0.1ms idle=118.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.319 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:58:17.320 [error] #PID<0.4300.0> running PinchflatWeb.Endpoint (connection #PID<0.4299.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /js/twint_ch.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/twint_ch (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4299.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/twint_ch.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50826}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4300.0>, params: %{}, path_info: ["js", "twint_ch"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"host", "pinch.msdlx.de"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/js/twint_ch.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkHnKPEopitYAgAAErh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4299.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/twint_ch.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50826}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /js/twint_ch (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4299.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/twint_ch.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50826}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4300.0>, params: %{}, path_info: ["js", "twint_ch"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", (truncated) 17:58:17.344 [info] GET /assets/js/auth.js 17:58:17.345 [debug] QUERY OK source="settings" db=0.2ms idle=123.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.345 [debug] QUERY OK source="settings" db=0.1ms idle=48.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.345 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:58:17.346 [error] #PID<0.4302.0> running PinchflatWeb.Endpoint (connection #PID<0.4301.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /assets/js/auth.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 /assets/js/auth (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4301.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/auth.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50830}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4302.0>, params: %{}, path_info: ["assets", "js", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"host", "pinch.msdlx.de"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/assets/js/auth.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkHnKVRziYUd98AAEsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4301.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/auth.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50830}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/auth (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4301.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/auth.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50830}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4302.0>, params: %{}, path_info: ["assets", "js", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{} (truncated) 17:58:17.367 [info] GET /css/support_parent.css 17:58:17.369 [debug] QUERY OK source="settings" db=0.8ms idle=70.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.369 [debug] QUERY OK source="settings" db=0.2ms 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 [] 17:58:17.369 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:58:17.370 [error] #PID<0.4304.0> running PinchflatWeb.Endpoint (connection #PID<0.4303.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /css/support_parent.css ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /css/support_parent (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4303.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/css/support_parent.css", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50834}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4304.0>, params: %{}, path_info: ["css", "support_parent"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"host", "pinch.msdlx.de"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/css/support_parent.css", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkHnKa2HpivO2UAAEsh"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4303.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/css/support_parent.css", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50834}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /css/support_parent (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4303.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/css/support_parent.css", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50834}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4304.0>, params: %{}, path_info: ["css", "support_parent"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} (truncated) 17:58:17.391 [info] GET /static/style/sys_files/index.js 17:58:17.392 [debug] QUERY OK source="settings" db=0.3ms idle=72.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.392 [debug] QUERY OK source="settings" db=0.3ms idle=47.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.392 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:58:17.393 [error] #PID<0.4306.0> running PinchflatWeb.Endpoint (connection #PID<0.4305.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /static/style/sys_files/index.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 /static/style/sys_files/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4305.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/sys_files/index.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50838}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4306.0>, params: %{}, path_info: ["static", "style", "sys_files", "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://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"host", "pinch.msdlx.de"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/static/style/sys_files/index.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkHnKgdhTBFc4sAAEtB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4305.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/sys_files/index.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50838}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /static/style/sys_files/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4305.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/sys_files/index.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50838}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4306.0>, params: %{}, path_info: ["static", "style", "sys_files", "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://pinch.msdlx.de", :phoenix_router => Pinch (truncated) 17:58:17.414 [info] GET /assets/js/message.js 17:58:17.415 [debug] QUERY OK source="settings" db=0.5ms idle=69.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.416 [debug] QUERY OK source="settings" db=0.4ms idle=47.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 17:58:17.416 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 17:58:17.417 [error] #PID<0.4308.0> running PinchflatWeb.Endpoint (connection #PID<0.4307.0>, stream id 1) terminated Server: pinch.msdlx.de:80 (http) Request: GET /assets/js/message.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 /assets/js/message (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4307.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/message.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50842}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4308.0>, params: %{}, path_info: ["assets", "js", "message"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {172, 18, 0, 1}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"host", "pinch.msdlx.de"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "172.24.0.1"}, {"x-forwarded-proto", "https"}, {"x-forwarded-scheme", "https"}, {"x-real-ip", "172.24.0.1"} ], request_path: "/assets/js/message.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKkHnKmGCAvTQBYAAEth"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4307.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/message.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50842}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/message (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4307.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/message.js", host: "pinch.msdlx.de", peer: {{172, 18, 0, 1}, 50842}, bindings: %{}, sock: {{172, 18, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "host" => "pinch.msdlx.de", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "172.24.0.1", "x-forwarded-proto" => "https", "x-forwarded-scheme" => "https", "x-real-ip" => "172.24.0.1" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinch.msdlx.de", method: "GET", owner: #PID<0.4308.0>, params: %{}, path_info: ["assets", "js", "message"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinch.msdlx.de", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, (truncated) 17:58:18.563 [info] {"source":"oban","duration":1017,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:58:48.565 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:59:00.311 [info] {"source":"oban","duration":305,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 17:59:18.568 [info] {"source":"oban","duration":1034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 17:59:48.569 [info] {"source":"oban","duration":900,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:00:00.312 [info] {"source":"oban","duration":327,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:00:18.572 [info] {"source":"oban","duration":1005,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:00:48.574 [info] {"source":"oban","duration":1516,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:01:00.314 [info] {"source":"oban","duration":457,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:01:18.576 [info] {"source":"oban","duration":1274,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:01:48.577 [info] {"source":"oban","duration":991,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:02:00.316 [info] {"source":"oban","duration":336,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:02:18.580 [info] {"source":"oban","duration":1029,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:02:48.582 [info] {"source":"oban","duration":1145,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:03:00.317 [info] {"source":"oban","duration":250,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:03:18.584 [info] {"source":"oban","duration":1071,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:03:48.586 [info] {"source":"oban","duration":1366,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:04:00.318 [info] {"source":"oban","duration":432,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:04:18.588 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:04:48.589 [info] {"source":"oban","duration":1005,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:05:00.319 [info] {"source":"oban","duration":376,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:05:18.592 [info] {"source":"oban","duration":1010,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:05:48.593 [info] {"source":"oban","duration":999,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:06:00.320 [info] {"source":"oban","duration":388,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:06:18.596 [info] {"source":"oban","duration":1150,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:06:48.598 [info] {"source":"oban","duration":1171,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:07:00.321 [info] {"source":"oban","duration":380,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:07:18.600 [info] {"source":"oban","duration":1079,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:07:48.602 [info] {"source":"oban","duration":1036,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:08:00.322 [info] {"source":"oban","duration":256,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:08:18.604 [info] {"source":"oban","duration":1174,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:08:48.606 [info] {"source":"oban","duration":1012,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:09:00.323 [info] {"source":"oban","duration":365,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:09:18.608 [info] {"source":"oban","duration":1017,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:09:48.609 [info] {"source":"oban","duration":581,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:10:00.325 [info] {"source":"oban","duration":303,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:10:18.610 [info] {"source":"oban","duration":961,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:10:48.613 [info] {"source":"oban","duration":1049,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:11:00.326 [info] {"source":"oban","duration":340,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:11:18.614 [info] {"source":"oban","duration":913,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:11:48.617 [info] {"source":"oban","duration":1125,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:12:00.328 [info] {"source":"oban","duration":388,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:12:18.619 [info] {"source":"oban","duration":1159,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:12:48.620 [info] {"source":"oban","duration":1090,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:13:00.329 [info] {"source":"oban","duration":317,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:13:18.622 [info] {"source":"oban","duration":1020,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:13:48.625 [info] {"source":"oban","duration":1089,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:14:00.330 [info] {"source":"oban","duration":364,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:14:18.627 [info] {"source":"oban","duration":1051,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:14:48.629 [info] {"source":"oban","duration":1385,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:15:00.332 [info] {"source":"oban","duration":367,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:15:18.630 [info] {"source":"oban","duration":975,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:15:48.632 [info] {"source":"oban","duration":1034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:16:00.334 [info] {"source":"oban","duration":477,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:16:18.635 [info] {"source":"oban","duration":1164,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:16:48.637 [info] {"source":"oban","duration":1003,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:17:00.336 [info] {"source":"oban","duration":321,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:17:18.639 [info] {"source":"oban","duration":1016,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:17:48.641 [info] {"source":"oban","duration":1107,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:18:00.338 [info] {"source":"oban","duration":359,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:18:18.643 [info] {"source":"oban","duration":999,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:18:48.644 [info] {"source":"oban","duration":975,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:19:00.340 [info] {"source":"oban","duration":374,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:19:18.647 [info] {"source":"oban","duration":1013,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:19:48.649 [info] {"source":"oban","duration":1066,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:20:00.341 [info] {"source":"oban","duration":345,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:20:18.651 [info] {"source":"oban","duration":973,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:20:48.653 [info] {"source":"oban","duration":1004,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:21:00.342 [info] {"source":"oban","duration":390,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:21:18.655 [info] {"source":"oban","duration":1064,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:21:48.657 [info] {"source":"oban","duration":1400,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:22:00.343 [info] {"source":"oban","duration":328,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:22:05.355 [info] GET / 18:22:05.355 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 18:22:05.355 [debug] QUERY OK source="settings" db=0.2ms idle=1001.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:22:05.356 [debug] QUERY OK source="media_profiles" db=0.4ms idle=1001.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 18:22:05.357 [debug] QUERY OK source="sources" db=0.7ms idle=1002.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 18:22:05.358 [info] GET / 18:22:05.358 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 18:22:05.358 [debug] QUERY OK source="media_items" db=0.8ms idle=273.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:22:05.358 [debug] QUERY OK source="settings" db=0.3ms idle=4.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:22:05.359 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 18:22:05.359 [debug] QUERY OK source="sources" db=0.1ms idle=1.7ms SELECT count(s0."id") FROM "sources" AS s0 [] 18:22:05.359 [debug] QUERY OK source="media_items" db=0.2ms idle=0.9ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:22:05.360 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:22:05.360 [debug] QUERY OK source="media_items" db=1.7ms idle=2.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:22:05.360 [debug] QUERY OK source="settings" db=0.2ms 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 [] 18:22:05.361 [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 [] 18:22:05.361 [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 [] 18:22:05.362 [debug] QUERY OK source="settings" db=2.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 [] 18:22:05.364 [debug] QUERY OK source="tasks" db=1.2ms idle=2.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 18:22:05.364 [debug] QUERY OK source="settings" db=1.5ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:22:05.364 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:22:05.366 [debug] QUERY OK source="settings" db=1.0ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:22:05.366 [debug] QUERY OK source="media_items" db=1.5ms 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] 18:22:05.368 [debug] QUERY OK source="tasks" db=1.1ms idle=2.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 18:22:05.368 [debug] QUERY OK source="sources" db=1.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" = ?) [1] 18:22:05.368 [debug] QUERY OK source="media_items" db=0.2ms 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 (m0."media_filepath" IS NULL)) [] 18:22:05.369 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=2.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] 18:22:05.370 [debug] QUERY OK source="sources" db=0.4ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 18:22:05.371 [debug] QUERY OK source="media_items" db=0.7ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:22:05.373 [debug] QUERY OK source="media_items" db=1.4ms idle=3.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 18:22:05.374 [debug] QUERY OK source="media_items" db=1.1ms idle=4.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"))) [] 18:22:05.374 [info] Sent 200 in 19ms 18:22:05.376 [debug] QUERY OK source="media_items" db=1.7ms idle=5.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] 18:22:05.378 [info] Sent 200 in 19ms 18:22:18.659 [info] {"source":"oban","duration":975,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:22:48.661 [info] {"source":"oban","duration":1004,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:23:00.344 [info] {"source":"oban","duration":395,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:23:18.663 [info] {"source":"oban","duration":1090,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:23:48.664 [info] {"source":"oban","duration":975,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:24:00.345 [info] {"source":"oban","duration":325,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:24:18.666 [info] {"source":"oban","duration":979,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:24:48.668 [info] {"source":"oban","duration":932,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:25:00.346 [info] {"source":"oban","duration":287,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:25:18.670 [info] {"source":"oban","duration":955,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:25:48.673 [info] {"source":"oban","duration":1055,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:26:00.347 [info] {"source":"oban","duration":330,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:26:18.675 [info] {"source":"oban","duration":1003,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:26:48.677 [info] {"source":"oban","duration":990,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:27:00.348 [info] {"source":"oban","duration":409,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:27:18.678 [info] {"source":"oban","duration":929,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:27:48.680 [info] {"source":"oban","duration":947,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:27:56.557 [info] GET / 18:27:56.557 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 18:27:56.558 [debug] QUERY OK source="settings" db=0.2ms idle=771.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:27:56.559 [debug] QUERY OK source="media_profiles" db=0.8ms idle=205.0ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 18:27:56.562 [debug] QUERY OK source="sources" db=2.2ms idle=206.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 18:27:56.563 [debug] QUERY OK source="media_items" db=1.0ms idle=208.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:27:56.565 [debug] QUERY OK source="media_items" db=1.5ms idle=209.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:27:56.565 [debug] QUERY OK source="settings" db=0.1ms idle=6.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:27:56.565 [debug] QUERY OK source="settings" db=0.1ms idle=5.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:27:56.566 [debug] QUERY OK source="settings" db=0.1ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:27:56.567 [debug] QUERY OK source="tasks" db=0.2ms idle=3.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"] 18:27:56.568 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:27:56.569 [debug] QUERY OK source="media_items" db=0.4ms idle=2.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] 18:27:56.569 [debug] QUERY OK source="sources" db=0.2ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 18:27:56.573 [debug] QUERY OK source="media_items" db=0.6ms idle=6.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"))) [] 18:27:56.574 [debug] QUERY OK source="media_items" db=1.0ms idle=6.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 18:27:56.575 [info] Sent 200 in 18ms 18:27:58.883 [info] CONNECTED TO Phoenix.LiveView.Socket in 39µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "NFskaQUSPD81DR9FKkktJxgEMSQDPg8Bgih9pvzoOjUry8XN-lFLmpy4", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinch.msdlx.de/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinch.msdlx.de/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 18:27:59.086 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "S2LPudFPzgJ7Squi5hwhnNv5", "media_state" => "downloaded"} 18:27:59.086 [debug] QUERY OK source="media_items" db=0.3ms idle=732.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)) [] 18:27:59.087 [debug] QUERY OK source="media_items" db=0.7ms idle=732.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] 18:27:59.088 [debug] QUERY OK source="sources" db=0.3ms idle=733.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 18:27:59.088 [debug] Replied in 2ms 18:27:59.092 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "S2LPudFPzgJ7Squi5hwhnNv5", "media_state" => "pending"} 18:27:59.093 [debug] QUERY OK source="media_items" db=0.6ms idle=738.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"))) [] 18:27:59.095 [debug] QUERY OK source="media_items" db=1.4ms idle=301.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] 18:27:59.095 [debug] Replied in 2ms 18:27:59.096 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "S2LPudFPzgJ7Squi5hwhnNv5"} 18:27:59.096 [debug] QUERY OK source="tasks" db=0.3ms idle=9.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"] 18:27:59.097 [debug] Replied in 872µs 18:27:59.097 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "S2LPudFPzgJ7Squi5hwhnNv5"} 18:27:59.097 [debug] Replied in 129µs 18:28:00.349 [info] {"source":"oban","duration":368,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:28:03.975 [info] GET / 18:28:03.975 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 18:28:03.976 [debug] QUERY OK source="settings" db=0.2ms idle=1621.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 18:28:03.976 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1622.0ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 18:28:03.976 [debug] QUERY OK source="sources" db=0.0ms idle=1176.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 18:28:03.977 [debug] QUERY OK source="media_items" db=0.2ms idle=622.8ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:28:03.977 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=175.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:28:03.977 [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 [] 18:28:03.978 [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 [] 18:28:03.978 [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 [] 18:28:03.979 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 18:28:03.980 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:28:03.981 [debug] QUERY OK source="media_items" db=0.4ms idle=2.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] 18:28:03.982 [debug] QUERY OK source="sources" db=0.2ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 18:28:03.985 [debug] QUERY OK source="media_items" db=0.6ms idle=6.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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:28:03.986 [debug] QUERY OK source="media_items" db=0.9ms idle=5.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 18:28:03.987 [info] Sent 200 in 12ms 18:28:05.774 [info] CONNECTED TO Phoenix.LiveView.Socket in 39µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "LhwWEQQsOzQXLTRdHxtbMho7VDAlLWcihYgbWBYGSNFpN6bHHR9ASiJx", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinch.msdlx.de/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinch.msdlx.de/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 18:28:05.999 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "FEqsSnbsDcr-Q-9zRimqvD-Z", "media_state" => "downloaded"} 18:28:06.000 [debug] QUERY OK source="media_items" db=0.3ms idle=645.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 18:28:06.001 [debug] QUERY OK source="media_items" db=0.5ms idle=646.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] 18:28:06.001 [debug] QUERY OK source="sources" db=0.2ms idle=647.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 18:28:06.002 [debug] Replied in 2ms 18:28:06.005 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "FEqsSnbsDcr-Q-9zRimqvD-Z", "media_state" => "pending"} 18:28:06.006 [debug] QUERY OK source="media_items" db=0.6ms idle=651.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"))) [] 18:28:06.007 [debug] QUERY OK source="media_items" db=0.9ms idle=200.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] 18:28:06.008 [debug] Replied in 2ms 18:28:06.008 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "FEqsSnbsDcr-Q-9zRimqvD-Z"} 18:28:06.009 [debug] QUERY OK source="tasks" db=0.3ms idle=8.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"] 18:28:06.009 [debug] Replied in 887µs 18:28:06.010 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "FEqsSnbsDcr-Q-9zRimqvD-Z"} 18:28:06.010 [debug] Replied in 121µs 18:28:18.682 [info] {"source":"oban","duration":967,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:28:48.684 [info] {"source":"oban","duration":1009,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:29:00.351 [info] {"source":"oban","duration":346,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:29:18.686 [info] {"source":"oban","duration":916,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:29:48.689 [info] {"source":"oban","duration":1068,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:30:00.352 [info] {"source":"oban","duration":236,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:30:18.691 [info] {"source":"oban","duration":992,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:30:48.693 [info] {"source":"oban","duration":1030,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:31:00.353 [info] {"source":"oban","duration":477,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:31:18.694 [info] {"source":"oban","duration":1004,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:31:48.697 [info] {"source":"oban","duration":1096,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:32:00.354 [info] {"source":"oban","duration":254,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:32:18.699 [info] {"source":"oban","duration":1078,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:32:48.700 [info] {"source":"oban","duration":930,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:33:00.356 [info] {"source":"oban","duration":244,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:33:18.703 [info] {"source":"oban","duration":989,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:33:48.705 [info] {"source":"oban","duration":992,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:34:00.357 [info] {"source":"oban","duration":362,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:34:18.707 [info] {"source":"oban","duration":991,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:34:48.708 [info] {"source":"oban","duration":894,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:35:00.359 [info] {"source":"oban","duration":367,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:35:18.711 [info] {"source":"oban","duration":989,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:35:48.713 [info] {"source":"oban","duration":1016,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:36:00.360 [info] {"source":"oban","duration":382,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:36:18.715 [info] {"source":"oban","duration":1129,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:36:48.716 [info] {"source":"oban","duration":989,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:37:00.361 [info] {"source":"oban","duration":485,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:37:18.719 [info] {"source":"oban","duration":1330,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:37:48.721 [info] {"source":"oban","duration":1283,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:38:00.363 [info] {"source":"oban","duration":469,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:38:18.722 [info] {"source":"oban","duration":913,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:38:48.725 [info] {"source":"oban","duration":1359,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:39:00.365 [info] {"source":"oban","duration":493,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:39:18.727 [info] {"source":"oban","duration":1363,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:39:48.728 [info] {"source":"oban","duration":918,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:40:00.367 [info] {"source":"oban","duration":399,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:40:18.731 [info] {"source":"oban","duration":982,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:40:48.733 [info] {"source":"oban","duration":1272,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:41:00.368 [info] {"source":"oban","duration":283,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:41:18.734 [info] {"source":"oban","duration":922,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:41:48.736 [info] {"source":"oban","duration":923,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:42:00.369 [info] {"source":"oban","duration":355,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:42:18.738 [info] {"source":"oban","duration":984,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:42:48.741 [info] {"source":"oban","duration":1009,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:43:00.370 [info] {"source":"oban","duration":349,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:43:18.743 [info] {"source":"oban","duration":1090,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:43:48.745 [info] {"source":"oban","duration":1358,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:44:00.371 [info] {"source":"oban","duration":352,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:44:18.748 [info] {"source":"oban","duration":1041,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:44:48.749 [info] {"source":"oban","duration":961,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:45:00.372 [info] {"source":"oban","duration":342,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:45:18.751 [info] {"source":"oban","duration":937,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:45:48.753 [info] {"source":"oban","duration":961,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:46:00.373 [info] {"source":"oban","duration":306,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:46:18.755 [info] {"source":"oban","duration":1053,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:46:48.758 [info] {"source":"oban","duration":1376,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:47:00.374 [info] {"source":"oban","duration":355,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:47:18.760 [info] {"source":"oban","duration":1130,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:47:48.762 [info] {"source":"oban","duration":1434,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:48:00.375 [info] {"source":"oban","duration":354,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:48:18.763 [info] {"source":"oban","duration":924,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:48:48.765 [info] {"source":"oban","duration":960,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:49:00.376 [info] {"source":"oban","duration":449,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:49:18.768 [info] {"source":"oban","duration":1098,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:49:48.770 [info] {"source":"oban","duration":979,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:50:00.377 [info] {"source":"oban","duration":322,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:50:18.771 [info] {"source":"oban","duration":983,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:50:48.774 [info] {"source":"oban","duration":969,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:51:00.378 [info] {"source":"oban","duration":279,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:51:18.776 [info] {"source":"oban","duration":1040,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:51:48.777 [info] {"source":"oban","duration":919,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:52:00.379 [info] {"source":"oban","duration":401,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:52:18.780 [info] {"source":"oban","duration":1051,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:52:48.782 [info] {"source":"oban","duration":1570,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:53:00.380 [info] {"source":"oban","duration":266,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:53:18.785 [info] {"source":"oban","duration":1118,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:53:48.787 [info] {"source":"oban","duration":1070,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:54:00.381 [info] {"source":"oban","duration":369,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:54:18.789 [info] {"source":"oban","duration":1067,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:54:48.791 [info] {"source":"oban","duration":1061,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:55:00.382 [info] {"source":"oban","duration":351,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:55:18.793 [info] {"source":"oban","duration":1009,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:55:48.795 [info] {"source":"oban","duration":1419,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:56:00.384 [info] {"source":"oban","duration":390,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:56:18.797 [info] {"source":"oban","duration":1002,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:56:48.798 [info] {"source":"oban","duration":937,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:57:00.386 [info] {"source":"oban","duration":273,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:57:18.800 [info] {"source":"oban","duration":1043,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:57:48.803 [info] {"source":"oban","duration":1247,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:58:00.387 [info] {"source":"oban","duration":414,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:58:18.804 [info] {"source":"oban","duration":936,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:58:48.807 [info] {"source":"oban","duration":1028,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:59:00.389 [info] {"source":"oban","duration":479,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 18:59:18.809 [info] {"source":"oban","duration":1332,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 18:59:48.811 [info] {"source":"oban","duration":1117,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:00:00.391 [info] {"source":"oban","duration":364,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:00:18.813 [info] {"source":"oban","duration":1088,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:00:48.815 [info] {"source":"oban","duration":1010,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:01:00.393 [info] {"source":"oban","duration":349,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:01:18.816 [info] {"source":"oban","duration":749,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:01:48.817 [info] {"source":"oban","duration":1046,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:01:57.283 [info] GET /sources/1/media/195 19:01:57.283 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "195", "source_id" => "1"} Pipelines: [:browser] 19:01:57.283 [debug] QUERY OK source="media_items" db=0.4ms idle=929.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" = ?) [195] 19:01:57.284 [debug] QUERY OK source="tasks" db=0.2ms idle=930.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" [195] 19:01:57.285 [debug] QUERY OK source="sources" db=1.3ms idle=930.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:01:57.286 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=932.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" = ?) [199] 19:01:57.287 [debug] QUERY OK source="settings" db=0.2ms idle=404.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:57.288 [debug] QUERY OK source="settings" db=0.8ms 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 [] 19:01:57.288 [debug] QUERY OK source="settings" db=0.1ms idle=3.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:01:57.289 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:01:57.292 [info] Sent 200 in 9ms 19:02:00.395 [info] {"source":"oban","duration":413,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:02:18.820 [info] {"source":"oban","duration":1109,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:02:38.891 [info] GET /sources/1/media/191 19:02:38.891 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "191", "source_id" => "1"} Pipelines: [:browser] 19:02:38.892 [debug] QUERY OK source="media_items" db=0.3ms idle=926.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" = ?) [191] 19:02:38.893 [debug] QUERY OK source="tasks" db=0.2ms idle=538.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" [191] 19:02:38.894 [debug] QUERY OK source="sources" db=1.3ms idle=538.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:02:38.894 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=540.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" = ?) [195] 19:02:38.895 [debug] QUERY OK source="settings" db=0.2ms idle=540.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:38.895 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:38.896 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:02:38.897 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:02:38.899 [info] Sent 200 in 8ms 19:02:48.822 [info] {"source":"oban","duration":972,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:03:00.396 [info] {"source":"oban","duration":306,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:03:18.823 [info] {"source":"oban","duration":952,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:03:35.279 [info] GET /app_info 19:03:35.279 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 19:03:35.281 [debug] QUERY OK source="settings" db=1.1ms idle=925.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:35.282 [debug] QUERY OK source="settings" db=0.4ms idle=927.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:35.282 [debug] QUERY OK source="settings" db=0.3ms idle=928.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:35.283 [debug] QUERY OK source="settings" db=0.2ms idle=929.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:35.284 [debug] QUERY OK source="settings" db=0.8ms idle=203.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:03:35.285 [info] Sent 200 in 6ms 19:03:48.826 [info] {"source":"oban","duration":1296,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:04:00.398 [info] {"source":"oban","duration":406,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:04:07.397 [info] GET /settings 19:04:07.397 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 19:04:07.397 [debug] QUERY OK source="settings" db=0.2ms idle=1043.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:04:07.398 [debug] QUERY OK source="settings" db=0.2ms 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 [] 19:04:07.398 [debug] QUERY OK source="settings" db=0.1ms idle=1044.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:04:07.399 [debug] QUERY OK source="settings" db=0.1ms idle=1045.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:04:07.401 [info] Sent 200 in 4ms 19:04:18.828 [info] {"source":"oban","duration":1031,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:04:48.830 [info] {"source":"oban","duration":1019,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:05:00.400 [info] {"source":"oban","duration":308,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:05:18.832 [info] {"source":"oban","duration":1109,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:05:48.833 [info] {"source":"oban","duration":907,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:06:00.401 [info] {"source":"oban","duration":291,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:06:15.383 [info] GET /sources/1/media/194 19:06:15.384 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "194", "source_id" => "1"} Pipelines: [:browser] 19:06:15.384 [debug] QUERY OK source="media_items" db=0.3ms idle=1030.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" = ?) [194] 19:06:15.385 [debug] QUERY OK source="tasks" db=0.3ms idle=1031.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" [194] 19:06:15.386 [debug] QUERY OK source="sources" db=0.5ms idle=1031.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:06:15.386 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1032.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" = ?) [198] 19:06:15.387 [debug] QUERY OK source="settings" db=0.1ms idle=987.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:06:15.387 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:06:15.387 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:06:15.389 [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] 19:06:15.391 [info] Sent 200 in 7ms 19:06:18.836 [info] {"source":"oban","duration":1083,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:06:48.837 [info] {"source":"oban","duration":952,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:07:00.402 [info] {"source":"oban","duration":384,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:07:17.668 [info] GET /media_profiles 19:07:17.668 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 19:07:17.669 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=1314.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 19:07:17.669 [debug] QUERY OK source="settings" db=0.1ms idle=1315.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:07:17.670 [debug] QUERY OK source="settings" db=0.1ms idle=1146.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:07:17.670 [debug] QUERY OK source="settings" db=0.1ms idle=316.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:07:17.672 [info] Sent 200 in 4ms 19:07:18.840 [info] {"source":"oban","duration":984,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:07:48.842 [info] {"source":"oban","duration":1043,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:08:00.403 [info] {"source":"oban","duration":364,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:08:04.514 [info] GET /sources/1/media/193 19:08:04.514 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "193", "source_id" => "1"} Pipelines: [:browser] 19:08:04.516 [debug] QUERY OK source="media_items" db=1.5ms idle=1160.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" = ?) [193] 19:08:04.518 [debug] QUERY OK source="tasks" db=1.0ms idle=899.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" [193] 19:08:04.518 [debug] QUERY OK source="sources" db=1.1ms idle=163.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:08:04.518 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=164.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" = ?) [197] 19:08:04.519 [debug] QUERY OK source="settings" db=0.1ms idle=165.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:04.519 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:04.520 [debug] QUERY OK source="settings" db=0.3ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:04.521 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:08:04.524 [info] Sent 200 in 9ms 19:08:18.844 [info] {"source":"oban","duration":1150,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:08:48.846 [info] {"source":"oban","duration":1037,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:08:49.784 [info] GET /sources/1/media/192 19:08:49.784 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "192", "source_id" => "1"} Pipelines: [:browser] 19:08:49.784 [debug] QUERY OK source="media_items" db=0.2ms idle=1430.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" = ?) [192] 19:08:49.785 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=1430.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" [192] 19:08:49.785 [debug] QUERY OK source="sources" db=0.5ms idle=1077.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:08:49.786 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=940.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" = ?) [196] 19:08:49.786 [debug] QUERY OK source="settings" db=0.1ms idle=76.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:49.788 [debug] QUERY OK source="settings" db=0.9ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:49.788 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:08:49.789 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:08:49.792 [info] Sent 200 in 8ms 19:09:00.404 [info] {"source":"oban","duration":277,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:09:18.848 [info] {"source":"oban","duration":996,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:09:48.850 [info] {"source":"oban","duration":999,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:09:52.821 [info] GET /sources/1 19:09:52.821 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 19:09:52.823 [debug] QUERY OK source="sources" db=0.3ms idle=1468.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 19:09:52.823 [debug] QUERY OK source="media_profiles" db=0.2ms idle=989.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 19:09:52.824 [debug] QUERY OK source="tasks" db=0.2ms idle=469.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 19:09:52.824 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=470.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" = ?) [254] 19:09:52.825 [debug] QUERY OK source="settings" db=0.1ms idle=470.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:09:52.825 [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 [] 19:09:52.826 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:09:52.828 [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" = ?) [1] 19:09:52.829 [debug] QUERY OK source="media_items" db=0.5ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 19:09:52.830 [debug] QUERY OK source="media_items" db=0.9ms idle=4.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 19:09:52.831 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 19:09:52.832 [debug] QUERY OK source="media_items" db=0.3ms idle=5.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 19:09:52.832 [debug] QUERY OK source="media_items" db=0.5ms idle=3.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 19:09:52.834 [debug] QUERY OK source="sources" db=0.2ms idle=4.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 19:09:52.835 [debug] QUERY OK source="media_items" db=0.8ms 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 ((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] 19:09:52.837 [debug] QUERY OK source="media_items" db=1.4ms idle=3.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_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] 19:09:52.839 [info] Sent 200 in 18ms 19:10:00.405 [info] {"source":"oban","duration":374,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:10:03.907 [info] GET /sources 19:10:03.907 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 19:10:03.908 [debug] QUERY OK source="settings" db=0.2ms idle=1553.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:03.908 [debug] QUERY OK source="settings" db=0.1ms idle=1554.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:03.909 [debug] QUERY OK source="settings" db=0.1ms idle=1554.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:03.910 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=1053.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:03.910 [debug] QUERY OK source="settings" db=0.1ms 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 [] 19:10:03.912 [debug] QUERY OK source="sources" db=0.9ms idle=2.8ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 19:10:03.914 [debug] QUERY OK source="sources" db=1.6ms 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", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 19:10:03.916 [info] Sent 200 in 8ms 19:10:18.852 [info] {"source":"oban","duration":1138,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:10:38.448 [info] GET / 19:10:38.448 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 19:10:38.449 [debug] QUERY OK source="settings" db=0.2ms 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 [] 19:10:38.449 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1095.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 19:10:38.450 [debug] QUERY OK source="sources" db=0.1ms idle=1095.8ms SELECT count(s0."id") FROM "sources" AS s0 [] 19:10:38.450 [debug] QUERY OK source="media_items" db=0.2ms idle=522.8ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:10:38.450 [debug] QUERY OK source="media_items" db=0.1ms idle=96.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:10:38.451 [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 [] 19:10:38.451 [debug] QUERY OK source="settings" db=0.2ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:38.452 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:38.453 [debug] QUERY OK source="tasks" db=0.3ms idle=2.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 19:10:38.454 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:10:38.455 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 19:10:38.455 [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", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 19:10:38.459 [debug] QUERY OK source="media_items" db=0.9ms idle=6.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"))) [] 19:10:38.461 [debug] QUERY OK source="media_items" db=1.4ms 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] 19:10:38.462 [info] Sent 200 in 13ms 19:10:38.836 [info] GET / 19:10:38.836 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 19:10:38.837 [debug] QUERY OK source="settings" db=0.2ms idle=382.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:38.837 [debug] QUERY OK source="media_profiles" db=0.1ms idle=382.6ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 19:10:38.838 [debug] QUERY OK source="sources" db=0.0ms idle=382.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 19:10:38.838 [debug] QUERY OK source="media_items" db=0.2ms idle=378.4ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:10:38.838 [debug] QUERY OK source="media_items" db=0.1ms idle=377.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:10:38.839 [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 [] 19:10:38.839 [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 [] 19:10:38.840 [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 [] 19:10:38.841 [debug] QUERY OK source="tasks" db=0.2ms idle=2.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 19:10:38.842 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:10:38.842 [debug] QUERY OK source="media_items" db=0.4ms idle=3.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 19:10:38.843 [debug] QUERY OK source="sources" db=0.2ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 19:10:38.847 [debug] QUERY OK source="media_items" db=0.6ms idle=6.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 19:10:38.848 [debug] QUERY OK source="media_items" db=1.0ms idle=5.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 19:10:38.849 [info] Sent 200 in 12ms 19:10:39.142 [info] CONNECTED TO Phoenix.LiveView.Socket in 42µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DAoEHjw3MzUPdzIOD2RhOCBfLRsHFSIvOGQfMfqLW2jmP4QsxfWAwmja", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinch.msdlx.de/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinch.msdlx.de/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 19:10:39.175 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "CMUxqQByXEXc_P0KX9zZpxHN", "media_state" => "downloaded"} 19:10:39.176 [debug] QUERY OK source="media_items" db=0.2ms idle=333.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:10:39.177 [debug] QUERY OK source="media_items" db=0.5ms idle=333.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] 19:10:39.177 [debug] QUERY OK source="sources" db=0.2ms idle=330.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", 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] 19:10:39.177 [debug] Replied in 2ms 19:10:39.181 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "CMUxqQByXEXc_P0KX9zZpxHN", "media_state" => "pending"} 19:10:39.182 [debug] QUERY OK source="media_items" db=0.6ms idle=333.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"))) [] 19:10:39.183 [debug] QUERY OK source="media_items" db=1.0ms idle=253.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 19:10:39.183 [debug] Replied in 2ms 19:10:39.184 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "CMUxqQByXEXc_P0KX9zZpxHN"} 19:10:39.185 [debug] QUERY OK source="tasks" db=0.3ms idle=8.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"] 19:10:39.185 [debug] Replied in 855µs 19:10:39.186 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "CMUxqQByXEXc_P0KX9zZpxHN"} 19:10:39.186 [debug] Replied in 107µs 19:10:39.572 [info] GET / 19:10:39.572 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 19:10:39.573 [debug] QUERY OK source="settings" db=0.2ms idle=395.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 19:10:39.573 [debug] QUERY OK source="media_profiles" db=0.1ms idle=395.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 19:10:39.573 [debug] QUERY OK source="sources" db=0.1ms idle=390.9ms SELECT count(s0."id") FROM "sources" AS s0 [] 19:10:39.574 [debug] QUERY OK source="media_items" db=0.2ms idle=390.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:10:39.574 [debug] QUERY OK source="media_items" db=0.1ms idle=388.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:10:39.574 [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 [] 19:10:39.575 [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 [] 19:10:39.575 [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 [] 19:10:39.576 [debug] QUERY OK source="tasks" db=0.2ms idle=2.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 19:10:39.577 [debug] QUERY OK source="media_items" db=0.2ms idle=2.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 19:10:39.578 [debug] QUERY OK source="media_items" db=0.4ms idle=2.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] 19:10:39.578 [debug] QUERY OK source="sources" db=0.1ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 19:10:39.582 [debug] QUERY OK source="media_items" db=0.6ms idle=6.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 19:10:39.583 [debug] QUERY OK source="media_items" db=0.9ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 19:10:39.584 [info] Sent 200 in 12ms 19:10:48.853 [info] {"source":"oban","duration":913,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:11:00.406 [info] {"source":"oban","duration":289,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:11:18.856 [info] {"source":"oban","duration":1063,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:11:48.858 [info] {"source":"oban","duration":1026,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:12:00.407 [info] {"source":"oban","duration":407,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:12:18.860 [info] {"source":"oban","duration":1366,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:12:48.861 [info] {"source":"oban","duration":1006,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:13:00.408 [info] {"source":"oban","duration":342,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:13:18.864 [info] {"source":"oban","duration":1337,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:13:48.866 [info] {"source":"oban","duration":1046,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:14:00.409 [info] {"source":"oban","duration":344,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:14:18.868 [info] {"source":"oban","duration":989,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:14:48.870 [info] {"source":"oban","duration":1146,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:15:00.410 [info] {"source":"oban","duration":429,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:15:18.872 [info] {"source":"oban","duration":1007,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:15:48.874 [info] {"source":"oban","duration":983,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:16:00.411 [info] {"source":"oban","duration":433,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:16:18.876 [info] {"source":"oban","duration":1156,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:16:48.878 [info] {"source":"oban","duration":1047,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:17:00.413 [info] {"source":"oban","duration":332,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:17:18.879 [info] {"source":"oban","duration":964,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:17:48.882 [info] {"source":"oban","duration":1080,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:18:00.414 [info] {"source":"oban","duration":411,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:18:18.884 [info] {"source":"oban","duration":1159,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:18:48.886 [info] {"source":"oban","duration":1019,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:19:00.416 [info] {"source":"oban","duration":293,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:19:18.888 [info] {"source":"oban","duration":1064,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:19:48.890 [info] {"source":"oban","duration":1057,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:20:00.417 [info] {"source":"oban","duration":354,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:20:18.891 [info] {"source":"oban","duration":941,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:20:48.894 [info] {"source":"oban","duration":1105,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:21:00.419 [info] {"source":"oban","duration":404,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:21:18.896 [info] {"source":"oban","duration":1028,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:21:48.898 [info] {"source":"oban","duration":1016,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:22:00.421 [info] {"source":"oban","duration":420,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:22:18.900 [info] {"source":"oban","duration":1077,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:22:48.901 [info] {"source":"oban","duration":967,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:23:00.423 [info] {"source":"oban","duration":297,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:23:18.904 [info] {"source":"oban","duration":1419,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:23:48.906 [info] {"source":"oban","duration":1315,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:24:00.424 [info] {"source":"oban","duration":344,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:24:18.908 [info] {"source":"oban","duration":1052,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:24:48.910 [info] {"source":"oban","duration":1048,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:25:00.425 [info] {"source":"oban","duration":327,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:25:18.912 [info] {"source":"oban","duration":1034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:25:48.914 [info] {"source":"oban","duration":1018,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:26:00.426 [info] {"source":"oban","duration":343,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:26:18.916 [info] {"source":"oban","duration":1054,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:26:48.918 [info] {"source":"oban","duration":971,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:27:00.427 [info] {"source":"oban","duration":353,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:27:18.920 [info] {"source":"oban","duration":999,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:27:48.922 [info] {"source":"oban","duration":1041,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:28:00.428 [info] {"source":"oban","duration":343,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:28:18.923 [info] {"source":"oban","duration":966,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:28:48.926 [info] {"source":"oban","duration":1130,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:29:00.429 [info] {"source":"oban","duration":486,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:29:18.927 [info] {"source":"oban","duration":974,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:29:48.929 [info] {"source":"oban","duration":910,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:30:00.431 [info] {"source":"oban","duration":343,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:30:18.931 [info] {"source":"oban","duration":982,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:30:48.934 [info] {"source":"oban","duration":1001,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:31:00.432 [info] {"source":"oban","duration":273,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:31:18.936 [info] {"source":"oban","duration":1032,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:31:48.937 [info] {"source":"oban","duration":933,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:32:00.433 [info] {"source":"oban","duration":290,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:32:18.939 [info] {"source":"oban","duration":1023,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:32:48.942 [info] {"source":"oban","duration":1344,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:33:00.434 [info] {"source":"oban","duration":371,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:33:18.944 [info] {"source":"oban","duration":997,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:33:48.945 [info] {"source":"oban","duration":949,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:34:00.435 [info] {"source":"oban","duration":505,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:34:18.948 [info] {"source":"oban","duration":1392,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:34:48.949 [info] {"source":"oban","duration":910,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:35:00.437 [info] {"source":"oban","duration":412,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:35:18.952 [info] {"source":"oban","duration":1326,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:35:48.954 [info] {"source":"oban","duration":1315,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:36:00.438 [info] {"source":"oban","duration":325,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:36:18.956 [info] {"source":"oban","duration":1078,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:36:48.957 [info] {"source":"oban","duration":941,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:37:00.439 [info] {"source":"oban","duration":430,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:37:18.960 [info] {"source":"oban","duration":1178,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:37:48.962 [info] {"source":"oban","duration":1094,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:38:00.441 [info] {"source":"oban","duration":364,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:38:18.964 [info] {"source":"oban","duration":1085,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:38:48.966 [info] {"source":"oban","duration":1032,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:39:00.443 [info] {"source":"oban","duration":327,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:39:18.967 [info] {"source":"oban","duration":936,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:39:48.970 [info] {"source":"oban","duration":981,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:40:00.444 [info] {"source":"oban","duration":369,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:40:18.972 [info] {"source":"oban","duration":1338,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:40:48.974 [info] {"source":"oban","duration":1039,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:41:00.445 [info] {"source":"oban","duration":280,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:41:18.976 [info] {"source":"oban","duration":1118,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:41:48.977 [info] {"source":"oban","duration":921,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:42:00.447 [info] {"source":"oban","duration":353,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:42:18.980 [info] {"source":"oban","duration":1039,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:42:48.982 [info] {"source":"oban","duration":1121,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:43:00.448 [info] {"source":"oban","duration":388,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:43:18.983 [info] {"source":"oban","duration":969,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:43:48.986 [info] {"source":"oban","duration":1026,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:44:00.449 [info] {"source":"oban","duration":432,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:44:18.988 [info] {"source":"oban","duration":1367,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:44:48.990 [info] {"source":"oban","duration":1067,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:45:00.451 [info] {"source":"oban","duration":438,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:45:18.992 [info] {"source":"oban","duration":1099,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:45:48.994 [info] {"source":"oban","duration":1052,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:46:00.452 [info] {"source":"oban","duration":414,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:46:18.996 [info] {"source":"oban","duration":1068,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:46:48.998 [info] {"source":"oban","duration":1084,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:47:00.454 [info] {"source":"oban","duration":368,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:47:18.999 [info] {"source":"oban","duration":930,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:47:49.002 [info] {"source":"oban","duration":1104,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:48:00.455 [info] {"source":"oban","duration":276,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:48:19.004 [info] {"source":"oban","duration":1040,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:48:49.006 [info] {"source":"oban","duration":1124,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:49:00.456 [info] {"source":"oban","duration":282,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:49:19.008 [info] {"source":"oban","duration":1293,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:49:49.010 [info] {"source":"oban","duration":1296,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:50:00.457 [info] {"source":"oban","duration":281,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:50:19.013 [info] {"source":"oban","duration":983,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:50:49.015 [info] {"source":"oban","duration":952,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:51:00.458 [info] {"source":"oban","duration":480,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:51:19.017 [info] {"source":"oban","duration":997,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:51:49.018 [info] {"source":"oban","duration":988,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:52:00.460 [info] {"source":"oban","duration":267,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:52:19.021 [info] {"source":"oban","duration":1173,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:52:49.022 [info] {"source":"oban","duration":590,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:53:00.461 [info] {"source":"oban","duration":293,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:53:19.024 [info] {"source":"oban","duration":1048,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:53:49.026 [info] {"source":"oban","duration":1064,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:54:00.462 [info] {"source":"oban","duration":443,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:54:19.028 [info] {"source":"oban","duration":1125,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:54:49.029 [info] {"source":"oban","duration":999,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:55:00.464 [info] {"source":"oban","duration":370,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:55:19.032 [info] {"source":"oban","duration":977,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:55:49.034 [info] {"source":"oban","duration":971,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:56:00.465 [info] {"source":"oban","duration":279,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:56:19.035 [info] {"source":"oban","duration":1013,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:56:49.038 [info] {"source":"oban","duration":1034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:57:00.467 [info] {"source":"oban","duration":401,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:57:19.039 [info] {"source":"oban","duration":926,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:57:49.042 [info] {"source":"oban","duration":1059,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:58:00.468 [info] {"source":"oban","duration":383,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:58:19.044 [info] {"source":"oban","duration":1144,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:58:49.045 [info] {"source":"oban","duration":1000,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:59:00.469 [info] {"source":"oban","duration":401,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 19:59:19.048 [info] {"source":"oban","duration":1040,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 19:59:49.050 [info] {"source":"oban","duration":1160,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:00:00.471 [info] {"source":"oban","duration":428,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:00:19.052 [info] {"source":"oban","duration":1036,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:00:49.054 [info] {"source":"oban","duration":1043,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:01:00.473 [info] {"source":"oban","duration":432,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:01:19.056 [info] {"source":"oban","duration":1319,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:01:49.058 [info] {"source":"oban","duration":1073,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:02:00.474 [info] {"source":"oban","duration":405,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:02:19.060 [info] {"source":"oban","duration":1099,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:02:49.062 [info] {"source":"oban","duration":1071,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:03:00.476 [info] {"source":"oban","duration":347,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:03:19.064 [info] {"source":"oban","duration":1133,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:03:49.065 [info] {"source":"oban","duration":980,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:04:00.478 [info] {"source":"oban","duration":372,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:04:19.068 [info] {"source":"oban","duration":1308,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:04:49.069 [info] {"source":"oban","duration":942,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:05:00.479 [info] {"source":"oban","duration":430,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:05:19.071 [info] {"source":"oban","duration":1080,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:05:49.074 [info] {"source":"oban","duration":981,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:06:00.481 [info] {"source":"oban","duration":268,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:06:19.076 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:06:49.077 [info] {"source":"oban","duration":935,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:07:00.482 [info] {"source":"oban","duration":295,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:07:19.080 [info] {"source":"oban","duration":1023,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:07:49.082 [info] {"source":"oban","duration":1207,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:08:00.483 [info] {"source":"oban","duration":405,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:08:19.084 [info] {"source":"oban","duration":1005,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:08:49.086 [info] {"source":"oban","duration":1028,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:09:00.485 [info] {"source":"oban","duration":360,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:09:19.088 [info] {"source":"oban","duration":963,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:09:49.090 [info] {"source":"oban","duration":989,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:10:00.487 [info] {"source":"oban","duration":423,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:10:19.091 [info] {"source":"oban","duration":971,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:10:49.094 [info] {"source":"oban","duration":990,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:11:00.488 [info] {"source":"oban","duration":286,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:11:19.096 [info] {"source":"oban","duration":984,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:11:49.098 [info] {"source":"oban","duration":1034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:12:00.489 [info] {"source":"oban","duration":324,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:12:19.100 [info] {"source":"oban","duration":969,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:12:49.101 [info] {"source":"oban","duration":941,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:13:00.490 [info] {"source":"oban","duration":350,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:13:19.104 [info] {"source":"oban","duration":1087,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:13:49.106 [info] {"source":"oban","duration":1034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:14:00.491 [info] {"source":"oban","duration":339,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:14:19.108 [info] {"source":"oban","duration":1026,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:14:49.110 [info] {"source":"oban","duration":980,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:15:00.492 [info] {"source":"oban","duration":360,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:15:19.112 [info] {"source":"oban","duration":986,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:15:49.114 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:16:00.494 [info] {"source":"oban","duration":346,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:16:19.116 [info] {"source":"oban","duration":984,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:16:49.117 [info] {"source":"oban","duration":929,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:17:00.495 [info] {"source":"oban","duration":345,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:17:19.120 [info] {"source":"oban","duration":1067,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:17:49.122 [info] {"source":"oban","duration":1065,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:18:00.496 [info] {"source":"oban","duration":288,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:18:19.124 [info] {"source":"oban","duration":967,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:18:49.126 [info] {"source":"oban","duration":1043,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:19:00.497 [info] {"source":"oban","duration":350,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:19:19.128 [info] {"source":"oban","duration":1125,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:19:49.130 [info] {"source":"oban","duration":985,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:20:00.498 [info] {"source":"oban","duration":299,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:20:19.132 [info] {"source":"oban","duration":1004,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:20:49.134 [info] {"source":"oban","duration":1136,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:21:00.499 [info] {"source":"oban","duration":305,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:21:03.101 [info] GET / 20:21:03.101 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 20:21:03.102 [debug] QUERY OK source="settings" db=0.2ms idle=747.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:21:03.102 [debug] QUERY OK source="media_profiles" db=0.1ms idle=748.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 20:21:03.102 [debug] QUERY OK source="sources" db=0.1ms idle=748.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 20:21:03.103 [debug] QUERY OK source="media_items" db=0.2ms idle=748.9ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:21:03.103 [debug] QUERY OK source="media_items" db=0.1ms idle=699.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:21:03.104 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:21:03.104 [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 [] 20:21:03.105 [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 [] 20:21:03.106 [debug] QUERY OK source="tasks" db=0.3ms idle=2.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:21:03.107 [debug] QUERY OK source="media_items" db=0.3ms 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 (m0."media_filepath" IS NULL)) [] 20:21:03.108 [debug] QUERY OK source="media_items" db=0.6ms idle=3.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:21:03.108 [debug] QUERY OK source="sources" db=0.1ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:21:03.112 [debug] QUERY OK source="media_items" db=0.6ms idle=6.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:21:03.113 [debug] QUERY OK source="media_items" db=0.9ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:21:03.114 [info] Sent 200 in 13ms 20:21:19.136 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:21:49.138 [info] {"source":"oban","duration":973,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:22:00.500 [info] {"source":"oban","duration":335,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:22:19.140 [info] {"source":"oban","duration":1032,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:22:49.141 [info] {"source":"oban","duration":944,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:23:00.501 [info] {"source":"oban","duration":275,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:23:19.144 [info] {"source":"oban","duration":976,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:23:49.146 [info] {"source":"oban","duration":961,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:24:00.502 [info] {"source":"oban","duration":304,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:24:19.148 [info] {"source":"oban","duration":1111,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:24:49.149 [info] {"source":"oban","duration":990,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:25:00.503 [info] {"source":"oban","duration":281,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:25:19.152 [info] {"source":"oban","duration":970,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:25:49.153 [info] {"source":"oban","duration":912,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:26:00.504 [info] {"source":"oban","duration":317,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:26:19.155 [info] {"source":"oban","duration":952,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:26:49.158 [info] {"source":"oban","duration":1327,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:27:00.505 [info] {"source":"oban","duration":275,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:27:19.160 [info] {"source":"oban","duration":1574,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:27:49.162 [info] {"source":"oban","duration":1124,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:28:00.506 [info] {"source":"oban","duration":281,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:28:19.164 [info] {"source":"oban","duration":1044,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:28:49.166 [info] {"source":"oban","duration":972,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:29:00.507 [info] {"source":"oban","duration":449,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:29:19.167 [info] {"source":"oban","duration":920,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:29:49.170 [info] {"source":"oban","duration":1354,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:30:00.509 [info] {"source":"oban","duration":349,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:30:19.172 [info] {"source":"oban","duration":1259,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:30:49.174 [info] {"source":"oban","duration":1018,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:31:00.510 [info] {"source":"oban","duration":295,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:31:19.176 [info] {"source":"oban","duration":1270,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:31:49.178 [info] {"source":"oban","duration":1030,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:32:00.511 [info] {"source":"oban","duration":548,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:32:19.180 [info] {"source":"oban","duration":974,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:32:49.182 [info] {"source":"oban","duration":1017,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:33:00.512 [info] {"source":"oban","duration":251,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:33:19.184 [info] {"source":"oban","duration":1299,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:33:49.186 [info] {"source":"oban","duration":1073,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:34:00.513 [info] {"source":"oban","duration":362,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"} 20:34:19.188 [info] {"source":"oban","duration":960,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:34:49.190 [info] {"source":"oban","duration":1484,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:35:00.515 [info] {"source":"oban","duration":392,"event":"plugin:stop","jobs":[],"plugin":"Oban.Plugins.Cron"}